diff --git a/README.md b/README.md index ca713c7..4a40bce 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # mjpegtools +The MJPEG-tools are a basic set of utilities for recording, editing, playing back and encoding (to mpeg) video under linux. +Recording can be done with zoran-based MJPEG-boards (LML33, Iomega Buz, Pinnacle DC10(+), Marvel G200/G400), these can also playback video using the hardware. +With the rest of the tools, this video can be edited and encoded into mpeg1/2 or divx video. + diff --git a/mjpegtools-1.8.0-gcc42.patch b/mjpegtools-1.8.0-gcc42.patch new file mode 100644 index 0000000..dd5f63e --- /dev/null +++ b/mjpegtools-1.8.0-gcc42.patch @@ -0,0 +1,12 @@ +diff -Nru mjpegtools-1.8.0.orig/jpeg-mmx/jquant_x86simd.c mjpegtools-1.8.0/jpeg-mmx/jquant_x86simd.c +--- mjpegtools-1.8.0.orig/jpeg-mmx/jquant_x86simd.c 2003-08-02 06:31:28.000000000 +0200 ++++ mjpegtools-1.8.0/jpeg-mmx/jquant_x86simd.c 2008-06-01 16:38:25.000000000 +0200 +@@ -104,7 +104,7 @@ + + /* Initialise zero block flags */ + /* Set up SSE rounding mode */ +- __asm__ ( "ldmxcsr %0\n" : : "X" (trunc_mxcsr) ); ++ __asm__ ( "ldmxcsr %0\n" : : "m" (*&trunc_mxcsr) ); + + for (i=0; i < 64 ; i+=4) + { diff --git a/mjpegtools-1.8.0-libquicktime.patch b/mjpegtools-1.8.0-libquicktime.patch new file mode 100644 index 0000000..54be667 --- /dev/null +++ b/mjpegtools-1.8.0-libquicktime.patch @@ -0,0 +1,11 @@ +--- mjpegtools-1.8.0/lavtools/lav_io.c.orig 2006-10-09 12:15:55.000000000 +0200 ++++ mjpegtools-1.8.0/lavtools/lav_io.c 2006-10-09 12:19:35.000000000 +0200 +@@ -1367,7 +1367,7 @@ + break; + #ifdef HAVE_LIBQUICKTIME + case 'q': +- res = fileno(((quicktime_t *)lav_file->qt_fd)->stream); ++ res = lqt_fileno((quicktime_t *)lav_file->qt_fd); + break; + #endif + default: diff --git a/mjpegtools-1.9.0-kernel-2.6.38.patch b/mjpegtools-1.9.0-kernel-2.6.38.patch new file mode 100644 index 0000000..dcb0ecf --- /dev/null +++ b/mjpegtools-1.9.0-kernel-2.6.38.patch @@ -0,0 +1,184 @@ +diff -ur mjpegtools-1.9.0.orig/configure.ac mjpegtools-1.9.0/configure.ac +--- mjpegtools-1.9.0.orig/configure.ac 2011-07-07 11:07:45.211089635 +0200 ++++ mjpegtools-1.9.0/configure.ac 2011-07-07 11:18:42.513089556 +0200 +@@ -155,11 +155,11 @@ + have_video4linux=false + case $host in + *-*-linux*) +- AC_CHECK_HEADER(linux/videodev.h, ++ AC_CHECK_HEADER(libv4l1-videodev.h, + [have_video4linux=true + AC_DEFINE(HAVE_V4L, 1, + [Building for Linux - using the video4linux API])], +- [AC_MSG_ERROR([videodev.h not found - please install the linux kernel headers])]) ++ [AC_MSG_ERROR([libv4l1-videodev.h not found - please install the v4l-utils devel package])]) + ;; + esac + AM_CONDITIONAL(HAVE_V4L, test x$have_video4linux = xtrue) +diff -ur mjpegtools-1.9.0.orig/lavtools/lavvideo.c mjpegtools-1.9.0/lavtools/lavvideo.c +--- mjpegtools-1.9.0.orig/lavtools/lavvideo.c 2011-07-07 11:07:45.220089635 +0200 ++++ mjpegtools-1.9.0/lavtools/lavvideo.c 2011-07-07 11:18:27.601089556 +0200 +@@ -63,7 +63,7 @@ + * errors here, check your linux/time.h && sys/time.h header setup. + */ + #define _LINUX_TIME_H +-#include ++#include + + #include + #include +diff -ur mjpegtools-1.9.0.orig/lavtools/liblavplay.c mjpegtools-1.9.0/lavtools/liblavplay.c +--- mjpegtools-1.9.0.orig/lavtools/liblavplay.c 2011-07-07 11:07:45.221089635 +0200 ++++ mjpegtools-1.9.0/lavtools/liblavplay.c 2011-07-07 11:16:01.227089575 +0200 +@@ -68,7 +68,8 @@ + * errors here, check your linux/time.h && sys/time.h header setup. + */ + #define _LINUX_TIME_H +-#include ++#include ++#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */ + #else + #define VIDEO_MODE_PAL 0 + #define VIDEO_MODE_NTSC 1 +diff -ur mjpegtools-1.9.0.orig/lavtools/liblavrec.c mjpegtools-1.9.0/lavtools/liblavrec.c +--- mjpegtools-1.9.0.orig/lavtools/liblavrec.c 2011-07-07 11:07:45.221089635 +0200 ++++ mjpegtools-1.9.0/lavtools/liblavrec.c 2011-07-07 11:16:18.362089573 +0200 +@@ -63,7 +63,8 @@ + * errors here, check your linux/time.h && sys/time.h header setup. + */ + #define _LINUX_TIME_H +-#include ++#include ++#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */ + #ifdef HAVE_SYS_SOUNDCARD_H + #include + #endif +diff -ur mjpegtools-1.9.0.orig/lavtools/testrec.c mjpegtools-1.9.0/lavtools/testrec.c +--- mjpegtools-1.9.0.orig/lavtools/testrec.c 2011-07-07 11:07:45.220089635 +0200 ++++ mjpegtools-1.9.0/lavtools/testrec.c 2011-07-07 11:19:56.128089546 +0200 +@@ -89,7 +89,7 @@ + * errors here, check your linux/time.h && sys/time.h header setup. + */ + #define _LINUX_TIME_H +-#include ++#include + #include + + /* These are explicit prototypes for the compiler, to prepare separation of audiolib.c */ +diff -Nru mjpegtools-1.9.0.orig/configure mjpegtools-1.9.0/configure +--- mjpegtools-1.9.0.orig/configure 2009-01-06 07:49:27.000000000 +0100 ++++ mjpegtools-1.9.0/configure 2011-12-16 13:56:41.747369367 +0100 +@@ -22636,8 +22636,8 @@ + case $host in + *-*-linux*) + if test "${ac_cv_header_linux_videodev_h+set}" = set; then +- { echo "$as_me:$LINENO: checking for linux/videodev.h" >&5 +-echo $ECHO_N "checking for linux/videodev.h... $ECHO_C" >&6; } ++ { echo "$as_me:$LINENO: checking for libv4l1-videodev.h" >&5 ++echo $ECHO_N "checking for libv4l1-videodev.h... $ECHO_C" >&6; } + if test "${ac_cv_header_linux_videodev_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + fi +@@ -22645,8 +22645,8 @@ + echo "${ECHO_T}$ac_cv_header_linux_videodev_h" >&6; } + else + # Is the header compilable? +-{ echo "$as_me:$LINENO: checking linux/videodev.h usability" >&5 +-echo $ECHO_N "checking linux/videodev.h usability... $ECHO_C" >&6; } ++{ echo "$as_me:$LINENO: checking libv4l1-videodev.h usability" >&5 ++echo $ECHO_N "checking libv4l1-videodev.h usability... $ECHO_C" >&6; } + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF +@@ -22654,7 +22654,7 @@ + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + $ac_includes_default +-#include ++#include + _ACEOF + rm -f conftest.$ac_objext + if { (ac_try="$ac_compile" +@@ -22686,15 +22686,15 @@ + echo "${ECHO_T}$ac_header_compiler" >&6; } + + # Is the header present? +-{ echo "$as_me:$LINENO: checking linux/videodev.h presence" >&5 +-echo $ECHO_N "checking linux/videodev.h presence... $ECHO_C" >&6; } ++{ echo "$as_me:$LINENO: checking libv4l1-videodev.h presence" >&5 ++echo $ECHO_N "checking libv4l1-videodev.h presence... $ECHO_C" >&6; } + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ +-#include ++#include + _ACEOF + if { (ac_try="$ac_cpp conftest.$ac_ext" + case "(($ac_try" in +@@ -22727,25 +22727,25 @@ + # So? What about this header? + case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) +- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: accepted by the compiler, rejected by the preprocessor!" >&5 +-echo "$as_me: WARNING: linux/videodev.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: proceeding with the compiler's result" >&5 +-echo "$as_me: WARNING: linux/videodev.h: proceeding with the compiler's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: accepted by the compiler, rejected by the preprocessor!" >&5 ++echo "$as_me: WARNING: libv4l1-videodev.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: libv4l1-videodev.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) +- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: present but cannot be compiled" >&5 +-echo "$as_me: WARNING: linux/videodev.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: linux/videodev.h: check for missing prerequisite headers?" >&2;} +- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: see the Autoconf documentation" >&5 +-echo "$as_me: WARNING: linux/videodev.h: see the Autoconf documentation" >&2;} +- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: section \"Present But Cannot Be Compiled\"" >&5 +-echo "$as_me: WARNING: linux/videodev.h: section \"Present But Cannot Be Compiled\"" >&2;} +- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: linux/videodev.h: proceeding with the preprocessor's result" >&2;} +- { echo "$as_me:$LINENO: WARNING: linux/videodev.h: in the future, the compiler will take precedence" >&5 +-echo "$as_me: WARNING: linux/videodev.h: in the future, the compiler will take precedence" >&2;} ++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: present but cannot be compiled" >&5 ++echo "$as_me: WARNING: libv4l1-videodev.h: present but cannot be compiled" >&2;} ++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: libv4l1-videodev.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: libv4l1-videodev.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: libv4l1-videodev.h: section \"Present But Cannot Be Compiled\"" >&2;} ++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: proceeding with the preprocessor's result" >&5 ++echo "$as_me: WARNING: libv4l1-videodev.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: libv4l1-videodev.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: libv4l1-videodev.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX + ## ---------------------------------------------------- ## + ## Report this to mjpeg-developer@lists.sourceforge.net ## +@@ -22754,8 +22754,8 @@ + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; + esac +-{ echo "$as_me:$LINENO: checking for linux/videodev.h" >&5 +-echo $ECHO_N "checking for linux/videodev.h... $ECHO_C" >&6; } ++{ echo "$as_me:$LINENO: checking for libv4l1-videodev.h" >&5 ++echo $ECHO_N "checking for libv4l1-videodev.h... $ECHO_C" >&6; } + if test "${ac_cv_header_linux_videodev_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +@@ -22773,8 +22773,8 @@ + _ACEOF + + else +- { { echo "$as_me:$LINENO: error: videodev.h not found - please install the linux kernel headers" >&5 +-echo "$as_me: error: videodev.h not found - please install the linux kernel headers" >&2;} ++ { { echo "$as_me:$LINENO: error: libv4l1-videodev.h not found - please install the linux kernel headers" >&5 ++echo "$as_me: error: libv4l1-videodev.h not found - please install the linux kernel headers" >&2;} + { (exit 1); exit 1; }; } + fi + diff --git a/mjpegtools.spec b/mjpegtools.spec new file mode 100644 index 0000000..743e9f0 --- /dev/null +++ b/mjpegtools.spec @@ -0,0 +1,197 @@ +%define jpegmmx_version 0.1.6 + +Name: mjpegtools +Version: 2.0.0 +Release: 2mamba +Summary: Tools for recording, editing, playing and encoding mpeg video +Group: Applications/Multimedia +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://mjpeg.sourceforge.net/ +Source0: http://downloads.sourceforge.net/sourceforge/mjpeg/mjpegtools-%{version}.tar.gz +Source1: http://downloads.sourceforge.net/sourceforge/mjpeg/jpeg-mmx-%{jpegmmx_version}.tar.gz +Patch: %{name}-1.8.0-libquicktime.patch +Patch1: %{name}-1.8.0-gcc42.patch +Patch2: %{name}-1.9.0-kernel-2.6.38.patch +License: GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libatk-devel +BuildRequires: libbzip2-devel +BuildRequires: libcairo-devel +BuildRequires: libdirectfb-devel +BuildRequires: libdv-devel +BuildRequires: libexpat-devel +BuildRequires: libffi-devel +BuildRequires: libfontconfig-devel +BuildRequires: libfreetype-devel +BuildRequires: libgcc +BuildRequires: libgdk-pixbuf-devel +BuildRequires: libGL-devel +BuildRequires: libglib-devel +BuildRequires: libgtk2-devel +BuildRequires: libjpeg-devel +BuildRequires: libpango-devel +BuildRequires: libpixman-devel +BuildRequires: libpng-devel +BuildRequires: libpthread-stubs-devel +BuildRequires: libquicktime-devel +BuildRequires: libSDL-devel +BuildRequires: libSDL_gfx-devel +BuildRequires: libselinux-devel +BuildRequires: libstdc++6-devel +BuildRequires: libts-devel +BuildRequires: libX11-devel +BuildRequires: libXau-devel +BuildRequires: libxcb-devel +BuildRequires: libXdmcp-devel +BuildRequires: libXrender-devel +BuildRequires: libz-devel +BuildRequires: pkg-config +BuildRequires: udev-devel +## AUTOBUILDREQ-END +BuildRequires: nasm +BuildRoot: %{_tmppath}/%{name}-%{version}-root +Requires(post):%{__install_info} + +%description +The MJPEG-tools are a basic set of utilities for recording, editing, playing back and encoding (to mpeg) video under linux. +Recording can be done with zoran-based MJPEG-boards (LML33, Iomega Buz, Pinnacle DC10(+), Marvel G200/G400), these can also playback video using the hardware. +With the rest of the tools, this video can be edited and encoded into mpeg1/2 or divx video. + +%package -n libmjpegtools +Summary: Development headers and libraries for the mjpegtools +Group: System/Libraries + +%description -n libmjpegtools +The MJPEG-tools are a basic set of utilities for recording, editing, playing back and encoding (to mpeg) video under linux. +Recording can be done with zoran-based MJPEG-boards (LML33, Iomega Buz, Pinnacle DC10(+), Marvel G200/G400), these can also playback video using the hardware. +With the rest of the tools, this video can be edited and encoded into mpeg1/2 or divx video. + +%package -n libmjpegtools-devel +Summary: Development headers and libraries for the mjpegtools +Group: Development/Libraries +Requires: libmjpegtools-devel = %{?epoch:%epoch:}%{version}-%{release} +Provides: mjpegtools-devel +Obsoletes: mjpegtools-devel + +%description -n libmjpegtools-devel +This package contains static libraries and C system header files needed to compile applications that use part of the libraries of the m jpegtools package. + +%prep +%setup -q +%ifarch %{ix86} +%setup -q -a1 +%patch1 -p1 +%endif +#%patch2 -p1 + +%build +%ifarch %{ix86} +pushd jpeg-mmx +%configure +%make -j1 +popd +%endif + +%configure \ + --with-quicktime \ + --with-dv=%{_prefix} \ + --with-dv-yv12 \ +%ifarch %{ix86} + --with-jpeg-mmx="`pwd`/jpeg-mmx-%{jpegmmx_version}" \ +%endif + --enable-shared \ + --enable-large-file \ + --enable-cmov-extension \ + --enable-xfree-ext \ + --enable-simd-accel +# --enable-zalpha + +%ifarch %{ix86} +find ./ -name Makefile \ + -exec sed -i "s/\(.*\)-mcpu=[^ ]*\(.*\)/\1-mtune=%{_target_cpu}\2/g" {} \; \ + -exec sed -i "s/\(.*-march=\)[^ ]*\(.*\)/\1%{_target_cpu}\2/g" {} \; +%endif + +%make -j1 CPPFLAGS="-fpermissive" + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +%makeinstall + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%post +/sbin/ldconfig +%install_info mjpeg-howto.info + +%preun +/sbin/ldconfig +%uninstall_info mjpeg-howto.info +exit 0 + +%files +%defattr(-, root, root) +%{_bindir}/* +%{_infodir}/* +%{_mandir}/man?/* + +%files -n libmjpegtools +%defattr(-, root, root) +%{_libdir}/*.so.* +%doc AUTHORS ChangeLog + +%files -n libmjpegtools-devel +%defattr(-, root, root) +%dir %{_includedir}/mjpegtools/ +%{_includedir}/mjpegtools/* +%{_libdir}/*.a +%{_libdir}/*.la +%{_libdir}/*.so +%{_libdir}/pkgconfig/*.pc +%doc BUGS CHANGES COPYING HINTS PLANS README* TODO + +%changelog +* Mon Jul 15 2013 Silvan Calarco 2.0.0-2mamba +- rebuilt with libSDL_gfx 2.0.24 + +* Wed Sep 05 2012 Silvan Calarco 2.0.0-1mamba +- update to 2.0.0 + +* Fri Dec 16 2011 Silvan Calarco 1.9.0-6mamba +- rebuilt with libSDL_gdx 2.0.23 + +* Sun Aug 22 2010 Automatic Build System 1.9.0-5mamba +- automatic rebuild by autodist + +* Mon Jun 29 2009 Automatic Build System 1.9.0-4mamba +- automatic rebuild by autodist + +* Thu May 21 2009 Automatic Build System 1.9.0-3mamba +- automatic rebuild by autodist + +* Sun Mar 08 2009 Silvan Calarco 1.9.0-2mamba +- added library subpackage + +* Sat Mar 07 2009 Silvan Calarco 1.9.0-1mamba +- automatic update by autodist + +* Sun Jun 01 2008 Silvan Calarco 1.8.0-2mamba +- specfile updated + +* Mon Oct 09 2006 Stefano Cotta Ramusino 1.8.0-1qilnx +- update to version 1.8.0 by autospec + +* Tue Aug 02 2005 Davide Madrisan 1.6.2-3qilnx +- rebuilt + +* Sun Oct 03 2004 Davide Madrisan 1.6.2-2qilnx +- specfile modified to match QiLinux standards +- added patches to compile jpeg-mmx and mjpegtools with gcc-3.4.x +- added hack to force the compilation for %{_target_cpu} cpus + +* Tue Sep 14 2004 Matteo Bernasconi 1.6.2-1qilnx +- first build