From: Jakub Bogusz Date: Wed, 1 Feb 2012 17:39:42 +0000 (+0000) Subject: - new, probably non-distributable package X-Git-Url: https://git.pld-linux.org/gitweb.cgi?p=packages%2FXIMEA.git;a=commitdiff_plain;h=29f487e2fefe71d8bdc51c5f9b40f761b9d8c5e0 - new, probably non-distributable package - glib patch to fix C++ type conflicts with current glib 2.x - gcc patch to convert SSE assembler from intel/masm compiler to gcc syntax Changed files: XIMEA-gcc.patch -> 1.1 XIMEA-glib.patch -> 1.1 XIMEA.spec -> 1.1 --- 29f487e2fefe71d8bdc51c5f9b40f761b9d8c5e0 diff --git a/XIMEA-gcc.patch b/XIMEA-gcc.patch new file mode 100644 index 0000000..bd42ee0 --- /dev/null +++ b/XIMEA-gcc.patch @@ -0,0 +1,44 @@ +--- XIMEA-1.04/examples/vaViewer/acquisition.cpp.orig 2011-11-29 22:53:23.000000000 +0100 ++++ XIMEA-1.04/examples/vaViewer/acquisition.cpp 2012-02-01 18:16:03.439775467 +0100 +@@ -204,23 +204,24 @@ + char * byte_data = surface_p+surface_image.offsets[0]+i*surface_image.pitches[0]; + int bitshift = lps->sgf.curBPP - 8; + int cnt = (lps->sgf.curCX * sizeof(WORD)) / 32; +- _asm{ +- mov esi, [data] ; +- mov edi, [byte_data] ; +- movd xmm2, [bitshift] ; +-t00: +- movdqa xmm0, [esi] ; +- movdqa xmm1, [esi+16] ; +- psrlw xmm0, xmm2 ; +- psrlw xmm1, xmm2 ; +- packuswb xmm0, xmm1 ; +- movntdq [edi], xmm0 ; +- add edi, 16 ; +- add esi, 32 ; +- +- sub [cnt], 1 ; +- ja t00 ; +- } ++ __asm__( ++ "movl (%1), %%esi\n" // mov esi, [data] ++ "movl (%2), %%edi\n" // mov edi, [byte_data] ++ "movd (%3), %%xmm2\n" // movd xmm2, [bitshift] ++ "1: movdqa (%%esi), %%xmm0\n" // movdqa xmm0, [esi] ++ "movdqa $16(%%esi), %%xmm1\n" // movdqa xmm1, [esi+16] ++ "psrlw %%xmm2, %%xmm0\n" // psrlw xmm0, xmm2 ++ "psrlw %%xmm2, %%xmm1\n" // psrlw xmm1, xmm2 ++ "packuswb %%xmm1, %%xmm0\n" // packuswb xmm0, xmm1 ++ "movntdq %%xmm0, (%%edi)\n" // movntdq [edi], xmm0 ++ "addl $16, %%edi\n" // add edi, 16 ++ "addl $32, %%esi\n" // add esi, 32 ++ "sub $1, (%0)\n" // sub [cnt], 1 ++ "ja 1b\n" ++ : "=&r"(cnt) ++ : "mr"(data), "mr"(byte_data), "mr"(bitshift) ++ : "memory", "cc", "esi", "edi" ++ ); + } else { + memcpy(surface_p+surface_image.offsets[0]+i*surface_image.pitches[0], (char*)lps->sgf.bp+i*surface_width, surface_width); + } diff --git a/XIMEA-glib.patch b/XIMEA-glib.patch new file mode 100644 index 0000000..98bca39 --- /dev/null +++ b/XIMEA-glib.patch @@ -0,0 +1,20 @@ +--- XIMEA-1.04/examples/vaViewer/main.cpp.orig 2011-11-29 22:53:23.000000000 +0100 ++++ XIMEA-1.04/examples/vaViewer/main.cpp 2012-02-01 18:36:06.409815747 +0100 +@@ -390,7 +390,7 @@ + return TRUE; + } + startLive(); +- g_signal_handlers_block_matched(ctrl->mode, G_SIGNAL_MATCH_FUNC, 0, 0, 0, G_CALLBACK(update_mode),0); ++ g_signal_handlers_block_matched(ctrl->mode, G_SIGNAL_MATCH_FUNC, 0, 0, 0, (gpointer)(update_mode),0); + while(gtk_combo_box_get_active_text(GTK_COMBO_BOX(ctrl->mode))) { + gtk_combo_box_remove_text(GTK_COMBO_BOX(ctrl->mode), 0); + gtk_combo_box_set_active(GTK_COMBO_BOX(ctrl->mode), 0); +@@ -402,7 +402,7 @@ + gtk_combo_box_append_text(GTK_COMBO_BOX(ctrl->mode), szMode); + } + gtk_combo_box_set_active(GTK_COMBO_BOX(ctrl->mode), 0); +- g_signal_handlers_unblock_matched(ctrl->mode, G_SIGNAL_MATCH_FUNC, 0, 0, 0, G_CALLBACK(update_mode),0); ++ g_signal_handlers_unblock_matched(ctrl->mode, G_SIGNAL_MATCH_FUNC, 0, 0, 0, (gpointer)(update_mode),0); + } else { + stopLive(); + } diff --git a/XIMEA.spec b/XIMEA.spec new file mode 100644 index 0000000..b498984 --- /dev/null +++ b/XIMEA.spec @@ -0,0 +1,104 @@ +Summary: XIMEA API Software Package for Linux +Summary(pl.UTF-8): Pakiet XIMEA API dla Linuksa +Name: XIMEA +# see version_LINUX_SP.txt +Version: 1.04 +Release: 1 +# probably non-distributable: contains some mix of binaries and sources with no licensing information; +# there is also binary .ko module (probably for some particular Ubuntu kernel) with license=GPL +# and no sources included +License: unknown +Group: Libraries +Source0: http://www.ximea.com/support/attachments/271/XIMEA_Linux_SP.tgz +# NoSource0-md5: 2dabc84fe3a9bd5d31f5882c9d0aff21 +NoSource: 0 +Patch0: %{name}-gcc.patch +Patch1: %{name}-glib.patch +URL: http://www.ximea.com/support/wiki/currera/XIMEA_Linux_Software_Package +BuildRequires: gtk+2-devel +BuildRequires: libva-devel +BuildRequires: libstdc++-devel +BuildRequires: pkgconfig +BuildArch: %{ix86} +BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) + +%description +XIMEA Linux Software Package contains of + * Kernel Driver of CURRERA-R cameras for Ubuntu 10.04 + * xiAPI + * Examples: + * xiSample - sample showing basic image acquisition in xiAPI + * vaViewer - camera live image viewer for picture check + +%description -l pl.UTF-8 +Pakiet XIMEA Linux Software Package składa się z: + - modułu jądra dla kamer CURRERA-R dla Ubuntu 10.04 + - biblioteki xiAPI + - przykładów: + - xiSample - przykładu pokazującego proste ściąganie obrazu przy + użyciu xiAPI + - vaViewer - podgląd kamery na żywo + +%package devel +Summary: Header files for xiAPI library +Summary(pl.UTF-8): Pliki nagłówkowe biblioteki xiAPI +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel +Header files for xiAPI library. + +%description devel -l pl.UTF-8 +Pliki nagłówkowe biblioteki xiAPI. + +%package viewer +Summary: XIMEA vaViewer utility +Summary(pl.UTF-8): Narzędzie vaViewer dla urządzeń XIMEA +Group: X11/Applications/Graphics +Requires: %{name}-devel = %{version}-%{release} + +%description viewer +XIMEA vaViewer utility. + +%description viewer -l pl.UTF-8 +Narzędzie vaViewer dla urządzeń XIMEA. + +%prep +%setup -q -c +%patch0 -p1 +%patch1 -p1 + +%build +cd examples/vaViewer + +CXXFLAGS="%{rpmcxxflags} %{rpmcppflags} $(pkg-config --cflags libva libva-x11 gtk+-2.0) -I ../../include" +%{__cxx} $CXXFLAGS -c acquisition.cpp +%{__cxx} $CXXFLAGS -c main.cpp +%{__cxx} %{rpmldflags} %{rpmcxxflags} -o vaViewer acquisition.o main.o $(pkg-config --libs libva libva-x11 gtk+-2.0) -L../../api -lm3api + +%install +rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT{%{_libdir},%{_bindir},%{_includedir}/ximea} + +cp -p include/*.h $RPM_BUILD_ROOT%{_includedir}/ximea +install api/libm3api.so $RPM_BUILD_ROOT%{_libdir} +install examples/vaViewer/vaViewer $RPM_BUILD_ROOT%{_bindir} + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(644,root,root,755) +%doc README +%attr(755,root,root) %{_libdir}/libm3api.so + +%files devel +%defattr(644,root,root,755) +%{_includedir}/ximea + +%files viewer +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/vaViewer