Moved 'x264enc' from -bad to -ugly
authorJan Schmidt <thaytan@noraisin.net>
Fri, 5 Jun 2009 18:25:54 +0000 (19:25 +0100)
committerJan Schmidt <thaytan@noraisin.net>
Fri, 5 Jun 2009 18:25:54 +0000 (19:25 +0100)
configure.ac
docs/plugins/Makefile.am
docs/plugins/gst-plugins-ugly-plugins-docs.sgml
docs/plugins/gst-plugins-ugly-plugins-sections.txt
docs/plugins/inspect/plugin-x264.xml [new file with mode: 0644]
ext/Makefile.am
gst-plugins-ugly.spec.in
tests/check/Makefile.am
tests/check/elements/.gitignore

index 3579b64..b9cefe8 100644 (file)
@@ -377,6 +377,29 @@ AG_GST_CHECK_FEATURE(TWOLAME, [twolame], twolame, [
   AC_SUBST(TWOLAME_LIBS)
 ])
 
+dnl *** x264 (MPEG-4 part 10/h.264/AVC encoder) ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_X264, true)
+AG_GST_CHECK_FEATURE(X264, [x264 plug-in], x264, [
+  AG_GST_CHECK_LIBHEADER(X264, x264, x264_nal_encode, -lm, x264.h,
+      AC_MSG_CHECKING([for uptodate x264 API version])
+      dnl _stdint not yet generated, so no compiling
+      AC_TRY_CPP([
+        #include <x264.h>
+        #if X264_BUILD < 55
+        #error "x264 build too old"
+        #endif
+      ], [
+        AC_MSG_RESULT(yes)
+        X264_LIBS="$LDFLAGS -lx264 -lm"
+        X264_CFLAGS="$CFLAGS"
+        AC_SUBST(X264_LIBS)
+        AC_SUBST(X264_CFLAGS)
+      ], [
+        AC_MSG_RESULT(no)
+        HAVE_X264=no
+      ]))
+])
+
 else
 
 dnl not building plugins with external dependencies,
@@ -393,6 +416,7 @@ AM_CONDITIONAL(USE_MAD, false)
 AM_CONDITIONAL(USE_MPEG2DEC, false)
 AM_CONDITIONAL(USE_SIDPLAY, false)
 AM_CONDITIONAL(USE_TWOLAME, false)
+AM_CONDITIONAL(USE_X264, false)
 
 fi dnl of EXT plugins
 
@@ -479,6 +503,7 @@ ext/mad/Makefile
 ext/mpeg2dec/Makefile
 ext/sidplay/Makefile
 ext/twolame/Makefile
+ext/x264/Makefile
 docs/Makefile
 docs/plugins/Makefile
 docs/version.entities
index 094edbf..f0be950 100644 (file)
@@ -93,6 +93,7 @@ EXTRA_HFILES = \
        $(top_srcdir)/ext/mad/gstmad.h \
        $(top_srcdir)/ext/sidplay/gstsiddec.h \
        $(top_srcdir)/ext/twolame/gsttwolame.h \
+       $(top_srcdir)/ext/x264/gstx264enc.h \
        $(top_srcdir)/gst/asfdemux/gstrtspwms.h \
        $(top_srcdir)/gst/mpegaudioparse/gstxingmux.h \
        $(top_srcdir)/gst/realmedia/rademux.h \
index 5917986..6b60370 100644 (file)
@@ -32,6 +32,7 @@
     <xi:include href="xml/element-siddec.xml" />
     <xi:include href="xml/element-twolame.xml" />
     <xi:include href="xml/element-synaesthesia.xml" />
+    <xi:include href="xml/element-x264enc.xml" />
     <xi:include href="xml/element-xingmux.xml" />
   </chapter>
 
@@ -56,5 +57,6 @@
     <xi:include href="xml/plugin-siddec.xml" />
     <xi:include href="xml/plugin-synaesthesia.xml" />
     <xi:include href="xml/plugin-twolame.xml" />
+    <xi:include href="xml/plugin-x264.xml" />
   </chapter>
 </book>
index 0bf6288..26e7c50 100644 (file)
@@ -219,6 +219,20 @@ GST_TYPE_TWO_LAME
 gst_two_lame_get_type
 </SECTION>
 
+
+<SECTION>
+<FILE>element-x264enc</FILE>
+<TITLE>x264enc</TITLE>
+GstX264Enc
+<SUBSECTION Standard>
+GstX264EncClass
+GST_X264_ENC
+GST_X264_ENC_CLASS
+GST_IS_X264_ENC
+GST_IS_X264_ENC_CLASS
+GST_TYPE_X264_ENC
+</SECTION>
+
 <SECTION>
 <FILE>element-xingmux</FILE>
 <TITLE>xingmux</TITLE>
diff --git a/docs/plugins/inspect/plugin-x264.xml b/docs/plugins/inspect/plugin-x264.xml
new file mode 100644 (file)
index 0000000..b2e5018
--- /dev/null
@@ -0,0 +1,34 @@
+<plugin>
+  <name>x264</name>
+  <description>libx264-based H264 plugins</description>
+  <filename>../../ext/x264/.libs/libgstx264.so</filename>
+  <basename>libgstx264.so</basename>
+  <version>0.10.11.1</version>
+  <license>GPL</license>
+  <source>gst-plugins-ugly</source>
+  <package>GStreamer Ugly Plug-ins git/prerelease</package>
+  <origin>Unknown package origin</origin>
+  <elements>
+    <element>
+      <name>x264enc</name>
+      <longname>x264enc</longname>
+      <class>Codec/Encoder/Video</class>
+      <description>H264 Encoder</description>
+      <author>Josef Zlomek &lt;josef.zlomek@itonis.tv&gt;, Mark Nauwelaerts &lt;mnauw@users.sf.net&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>video/x-h264, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]</details>
+        </caps>
+      </pads>
+    </element>
+  </elements>
+</plugin>
\ No newline at end of file
index 6634c1b..6b2f7e1 100644 (file)
@@ -58,6 +58,12 @@ else
 TWOLAME_DIR =
 endif
 
+if USE_X264
+X264_DIR=x264
+else
+X264_DIR=
+endif
+
 SUBDIRS = \
        $(A52DEC_DIR) \
        $(AMRNB_DIR) \
@@ -68,7 +74,8 @@ SUBDIRS = \
        $(MAD_DIR) \
        $(MPEG2DEC_DIR) \
        $(SIDPLAY_DIR) \
-       $(TWOLAME_DIR)
+       $(TWOLAME_DIR) \
+       $(X264_DIR)
 
 DIST_SUBDIRS = \
        a52dec \
@@ -80,4 +87,5 @@ DIST_SUBDIRS = \
        mad \
        mpeg2dec \
        sidplay \
-       twolame
+       twolame \
+       x264
index 24fa6c4..8d4dc9d 100644 (file)
@@ -36,6 +36,8 @@ BuildRequires:  gcc-c++
 @USE_DVDREAD_TRUE@Provides:       gstreamer-dvdread = %{version}-%{release}
 @USE_MPEG2DEC_TRUE@Provides:       gstreamer-mpeg2dec = %{version}-%{release}
 
+@USE_X264_TRUE@Requires: x264
+
 %description
 GStreamer is a streaming media framework, based on graphs of elements which
 operate on media data.
@@ -111,8 +113,13 @@ rm -rf $RPM_BUILD_ROOT
 @USE_MPEG2DEC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmpeg2dec.so
 @USE_TWOLAME_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgsttwolame.so
 %doc %{_datadir}/gtk-doc/html/gst-plugins-ugly-plugins-%{majorminor}/*
+@USE_X264_TRUE@%{_datadir}/gstreamer-%{majorminor}/presets/GstX264Enc.prs
+@USE_X264_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstx264.so
 
 %changelog
+* Fri Jun 5 2009 Jan Schmidt <thaytan at mad dot scientist dot com>
+- Move x264enc plugin from -bad
+
 * Fri Dec 15 2006 Thomas Vander Stichele <thomas at apestaart dot org>
 - further cleanup
 - add .doap file
index c1867b9..522d0c5 100644 (file)
@@ -36,11 +36,18 @@ else
 MPEG2DEC =
 endif
 
+if USE_X264
+check_x264enc=elements/x264enc
+else
+check_x264enc=
+endif
+
 check_PROGRAMS = \
        generic/states \
        $(AMRNB) \
        $(LAME) \
        $(MPEG2DEC) \
+       $(check_x264enc) \
        elements/xingmux
 
 # these tests don't even pass
@@ -52,7 +59,7 @@ AM_CFLAGS = $(GST_OBJ_CFLAGS) $(GST_CHECK_CFLAGS) $(CHECK_CFLAGS)
 LDADD = $(GST_OBJ_LIBS) $(GST_CHECK_LIBS) $(CHECK_LIBS)
 
 # valgrind testing
-VALGRIND_TESTS_DISABLE =
+VALGRIND_TESTS_DISABLE = elements/x264enc
 
 SUPPRESSIONS = $(top_srcdir)/common/gst.supp $(srcdir)/gst-plugins-ugly.supp
 
index ace3948..c2c4108 100644 (file)
@@ -1,4 +1,5 @@
 amrnbenc
 mpeg2dec
+x264enc
 xingmux
 .dirstamp