gstffmpegdec: Disable direct-rendering for svq1/vp56 decoders.
authorEdward Hervey <bilboed@bilboed.com>
Wed, 3 Mar 2010 17:46:25 +0000 (18:46 +0100)
committerEdward Hervey <bilboed@bilboed.com>
Wed, 3 Mar 2010 18:03:19 +0000 (19:03 +0100)
They use a non-standard stride which we can't support.

Fixes #610613

ext/ffmpeg/gstffmpegdec.c

index ca35563..d1a868c 100644 (file)
@@ -789,6 +789,16 @@ gst_ffmpegdec_setcaps (GstPad * pad, GstCaps * caps)
         /* does not work, many stuff reads outside of the planes */
         ffmpegdec->current_dr = FALSE;
         ffmpegdec->extra_ref = TRUE;
+      } else if ((oclass->in_plugin->id == CODEC_ID_SVQ1) ||
+          (oclass->in_plugin->id == CODEC_ID_VP5) ||
+          (oclass->in_plugin->id == CODEC_ID_VP6) ||
+          (oclass->in_plugin->id == CODEC_ID_VP6F) ||
+          (oclass->in_plugin->id == CODEC_ID_VP6A)) {
+        GST_DEBUG_OBJECT (ffmpegdec,
+            "disable direct rendering setup for broken stride support");
+        /* does not work, uses a incompatible stride. See #610613 */
+        ffmpegdec->current_dr = FALSE;
+        ffmpegdec->extra_ref = TRUE;
       } else {
         GST_DEBUG_OBJECT (ffmpegdec, "enabled direct rendering");
         ffmpegdec->current_dr = TRUE;