x264 and ffmpeg updates coming to rawhide

Dominik 'Rathann' Mierzejewski dominik at greysector.net
Mon Dec 15 01:01:19 CET 2008


On Thursday, 04 December 2008 at 21:31, Dominik 'Rathann' Mierzejewski wrote:
> On Thursday, 04 December 2008 at 21:15, Dominik 'Rathann' Mierzejewski wrote:
> > On Thursday, 04 December 2008 at 14:17, Dominik 'Rathann' Mierzejewski wrote:
> > > On Wednesday, 03 December 2008 at 19:06, Dominik 'Rathann' Mierzejewski wrote:
> > > > In the long-standing tradition of breaking stuff right after a new release,
> > > > I'm going to update x264 and ffmpeg in the devel branch.
> > > > 
> > > > x264 brings ABI and API changes (albeit minor). I haven't checked ffmpeg
> > > > yet, but there's certainly an ABI version bump in libavcodec and probably
> > > > some API changes as well.
> > > > 
> > > > Right now x264 is blocked on some ppc compilation issue which I'm currently
> > > > trying to fix with the help of one x264 developer. I'll keep you posted.
> > > 
> > > OK, x264 build succeeded. Could someone test it on ppc/ppc64?
> > 
> > ffmpeg build coming soon, too. It brings libavcodec ABI version bump and some
> > API changes.
> 
> Affected packages:
[...]
> gstreamer-ffmpeg

This needs the attached patch to build. I'm not sure what to do with the
removed CODEC_FLAG_TRELLIS_QUANT option, but see this mail:
http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2008-December/018101.html

Regards,
R.

-- 
Fedora http://fedoraproject.org/wiki/User:Rathann
RPMFusion http://rpmfusion.org | MPlayer http://mplayerhq.hu
"Faith manages."
        -- Delenn to Lennier in Babylon 5:"Confessions and Lamentations"
-------------- next part --------------
diff -up gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegcfg.c.lavc gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegcfg.c
--- gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegcfg.c.lavc	2008-12-14 23:18:49.000000000 +0100
+++ gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegcfg.c	2008-12-15 00:58:18.000000000 +0100
@@ -272,7 +272,6 @@ gst_ffmpeg_flags_get_type (void)
       {CODEC_FLAG_GRAY, "Only decode/encode grayscale", "gray"},
       {CODEC_FLAG_NORMALIZE_AQP,
           "Normalize Adaptive Quantization (masking, etc)", "aqp"},
-      {CODEC_FLAG_TRELLIS_QUANT, "Trellis Quantization", "trellis"},
       {CODEC_FLAG_GLOBAL_HEADER,
             "Global headers in extradata instead of every keyframe",
           "global-headers"},
diff -up gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegcodecmap.c.lavc gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegcodecmap.c
--- gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegcodecmap.c.lavc	2008-12-14 23:18:49.000000000 +0100
+++ gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegcodecmap.c	2008-12-14 23:22:14.000000000 +0100
@@ -368,7 +368,7 @@ gst_ffmpeg_codecid_to_caps (enum CodecID
           NULL);
       if (context) {
         gst_caps_set_simple (caps,
-            "depth", G_TYPE_INT, context->bits_per_sample, NULL);
+            "depth", G_TYPE_INT, context->bits_per_coded_sample, NULL);
       }
       break;
 
@@ -547,7 +547,7 @@ gst_ffmpeg_codecid_to_caps (enum CodecID
       caps = gst_ff_vid_caps_new (context, codec_id, "video/x-huffyuv", NULL);
       if (context) {
         gst_caps_set_simple (caps,
-            "bpp", G_TYPE_INT, context->bits_per_sample, NULL);
+            "bpp", G_TYPE_INT, context->bits_per_coded_sample, NULL);
       }
       break;
 
@@ -663,7 +663,7 @@ gst_ffmpeg_codecid_to_caps (enum CodecID
           "layout", G_TYPE_STRING, "microsoft", NULL);
       if (context) {
         gst_caps_set_simple (caps,
-            "depth", G_TYPE_INT, (gint) context->bits_per_sample, NULL);
+            "depth", G_TYPE_INT, (gint) context->bits_per_coded_sample, NULL);
       } else {
         gst_caps_set_simple (caps, "depth", GST_TYPE_INT_RANGE, 1, 64, NULL);
       }
@@ -674,7 +674,7 @@ gst_ffmpeg_codecid_to_caps (enum CodecID
           "layout", G_TYPE_STRING, "quicktime", NULL);
       if (context) {
         gst_caps_set_simple (caps,
-            "depth", G_TYPE_INT, (gint) context->bits_per_sample, NULL);
+            "depth", G_TYPE_INT, (gint) context->bits_per_coded_sample, NULL);
       } else {
         gst_caps_set_simple (caps, "depth", GST_TYPE_INT_RANGE, 1, 64, NULL);
       }
@@ -724,7 +724,7 @@ gst_ffmpeg_codecid_to_caps (enum CodecID
       caps = gst_ff_vid_caps_new (context, codec_id, "video/x-camtasia", NULL);
       if (context) {
         gst_caps_set_simple (caps,
-            "depth", G_TYPE_INT, (gint) context->bits_per_sample, NULL);
+            "depth", G_TYPE_INT, (gint) context->bits_per_coded_sample, NULL);
       } else {
         gst_caps_set_simple (caps, "depth", GST_TYPE_INT_RANGE, 8, 32, NULL);
       }
@@ -1077,7 +1077,7 @@ gst_ffmpeg_codecid_to_caps (enum CodecID
       caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-alac", NULL);
       if (context) {
         gst_caps_set_simple (caps,
-            "samplesize", G_TYPE_INT, context->bits_per_sample, NULL);
+            "samplesize", G_TYPE_INT, context->bits_per_coded_sample, NULL);
       }
       break;
 
@@ -1100,7 +1100,7 @@ gst_ffmpeg_codecid_to_caps (enum CodecID
       caps = gst_ff_aud_caps_new (context, codec_id, "audio/x-tta", NULL);
       if (context) {
         gst_caps_set_simple (caps,
-            "samplesize", G_TYPE_INT, context->bits_per_sample, NULL);
+            "samplesize", G_TYPE_INT, context->bits_per_coded_sample, NULL);
       }
       break;
     default:
@@ -1473,7 +1473,7 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
 
   gst_structure_get_int (structure, "width", &context->width);
   gst_structure_get_int (structure, "height", &context->height);
-  gst_structure_get_int (structure, "bpp", &context->bits_per_sample);
+  gst_structure_get_int (structure, "bpp", &context->bits_per_coded_sample);
 
   fps = gst_structure_get_value (structure, "framerate");
   if (fps != NULL && GST_VALUE_HOLDS_FRACTION (fps)) {
@@ -1717,7 +1717,7 @@ gst_ffmpeg_caps_with_codecid (enum Codec
       gint depth;
 
       if (gst_structure_get_int (str, "depth", &depth)) {
-        context->bits_per_sample = depth;
+        context->bits_per_coded_sample = depth;
       } else {
         GST_WARNING ("No depth field in caps %" GST_PTR_FORMAT, caps);
       }
@@ -1750,7 +1750,7 @@ gst_ffmpeg_caps_with_codecid (enum Codec
         context->bit_rate = bitrate;
     }
     case CODEC_ID_ALAC:
-      gst_structure_get_int (str, "samplesize", &context->bits_per_sample);
+      gst_structure_get_int (str, "samplesize", &context->bits_per_coded_sample);
       break;
 
     case CODEC_ID_DVVIDEO:
diff -up gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegdec.c.lavc gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegdec.c
--- gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegdec.c.lavc	2008-12-14 23:18:49.000000000 +0100
+++ gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegdec.c	2008-12-15 00:48:19.000000000 +0100
@@ -696,7 +696,7 @@ gst_ffmpegdec_setcaps (GstPad * pad, Gst
 
   /* workaround encoder bugs */
   ffmpegdec->context->workaround_bugs |= FF_BUG_AUTODETECT;
-  ffmpegdec->context->error_resilience = 1;
+  ffmpegdec->context->error_recognition = 1;
 
   /* for slow cpus */
   ffmpegdec->context->lowres = ffmpegdec->lowres;
@@ -2425,7 +2425,7 @@ gst_ffmpegdec_register (GstPlugin * plug
   AVCodec *in_plugin;
   gint rank;
 
-  in_plugin = first_avcodec;
+  in_plugin = av_codec_next(NULL);
 
   GST_LOG ("Registering decoders");
 
diff -up gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegenc.c.lavc gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegenc.c
--- gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegenc.c.lavc	2008-12-14 23:18:50.000000000 +0100
+++ gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegenc.c	2008-12-15 00:46:38.000000000 +0100
@@ -45,6 +45,10 @@
 #define DEFAULT_VIDEO_GOP_SIZE 15
 #define DEFAULT_AUDIO_BITRATE 128000
 
+#ifndef DEFAULT_FRAME_RATE_BASE
+#define DEFAULT_FRAME_RATE_BASE 1001000
+#endif
+
 #define DEFAULT_WIDTH 352
 #define DEFAULT_HEIGHT 288
 
@@ -408,7 +412,6 @@ gst_ffmpegenc_setcaps (GstPad * pad, Gst
 
   /* RTP payload used for GOB production (for Asterisk) */
   if (ffmpegenc->rtp_payload_size) {
-    ffmpegenc->context->rtp_mode = 1;
     ffmpegenc->context->rtp_payload_size = ffmpegenc->rtp_payload_size;
   }
 
@@ -973,7 +976,7 @@ gst_ffmpegenc_register (GstPlugin * plug
   GType type;
   AVCodec *in_plugin;
 
-  in_plugin = first_avcodec;
+  in_plugin = av_codec_next(NULL);
 
   GST_LOG ("Registering encoders");
 
diff -up gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegprotocol.c.lavc gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegprotocol.c
--- gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegprotocol.c.lavc	2008-12-14 23:18:50.000000000 +0100
+++ gst-ffmpeg-0.10.5/ext/ffmpeg/gstffmpegprotocol.c	2008-12-14 23:35:09.000000000 +0100
@@ -175,8 +175,8 @@ gst_ffmpegdata_write (URLContext * h, un
   return size;
 }
 
-static offset_t
-gst_ffmpegdata_seek (URLContext * h, offset_t pos, int whence)
+static int64_t
+gst_ffmpegdata_seek (URLContext * h, int64_t pos, int whence)
 {
   GstProtocolInfo *info;
   guint64 newpos;


More information about the rpmfusion-developers mailing list