Re-enable SVQ3, and also add a workaround for the fact that it writes to (read-only...
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Fri, 12 Dec 2003 15:40:59 +0000 (15:40 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Fri, 12 Dec 2003 15:40:59 +0000 (15:40 +0000)
Original commit message from CVS:
Re-enable SVQ3, and also add a workaround for the fact that it writes to (read-only) buffers. This effectively makes svq3 work

ext/ffmpeg/gstffmpegdec.c

index 0c4cd07..41c0bf6 100644 (file)
@@ -344,9 +344,11 @@ gst_ffmpegdec_chain (GstPad    *pad,
 
     switch (oclass->in_plugin->type) {
       case CODEC_TYPE_VIDEO:
-       /* workaround:
-          libavcodec/svq1.c:svq1_decode_frame writes to the given buffer */
-       if (oclass->in_plugin->id == CODEC_ID_SVQ1) {
+       /* workarounds, functions write to buffers:
+          libavcodec/svq1.c:svq1_decode_frame writes to the given buffer.
+           libavcodec/svq3.c:svq3_decode_slice_header too */
+       if (oclass->in_plugin->id == CODEC_ID_SVQ1 ||
+            oclass->in_plugin->id == CODEC_ID_SVQ3) {
          inbuf = gst_buffer_copy_on_write(inbuf);
          data = GST_BUFFER_DATA (inbuf);
          size = GST_BUFFER_SIZE (inbuf);
@@ -480,7 +482,6 @@ gst_ffmpegdec_register (GstPlugin *plugin)
 
     /* no quasi-codecs, please */
     if (in_plugin->id == CODEC_ID_RAWVIDEO ||
-       in_plugin->id == CODEC_ID_SVQ3 || /* segfaults */
        (in_plugin->id >= CODEC_ID_PCM_S16LE &&
         in_plugin->id <= CODEC_ID_PCM_ALAW)) {
       goto next;