From c1486cd0a71644878abf77039f8450450a4cdb7c Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Fri, 12 Dec 2003 15:40:59 +0000 Subject: [PATCH] Re-enable SVQ3, and also add a workaround for the fact that it writes to (read-only) buffers. This effectively makes ... 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 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ext/ffmpeg/gstffmpegdec.c b/ext/ffmpeg/gstffmpegdec.c index 0c4cd07..41c0bf6 100644 --- a/ext/ffmpeg/gstffmpegdec.c +++ b/ext/ffmpeg/gstffmpegdec.c @@ -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; -- 2.7.4