+2008-07-01 Jan Schmidt <jan.schmidt@sun.com>
+
+ * ext/ffmpeg/gstffmpegdec.c:
+ If ffmpeg reports 0 bytes of input data consumed, don't break out
+ unless it also didn't produce any output. Fixes the audio in #377400
+ and doesn't break anything else I've tested.
+
+ Enable the mp3 parser, and set mp3 and mpeg2-video decoding autoplug
+ at marginal level, as they seem to both work fine now.
+
2008-06-13 Edward Hervey <edward.hervey@collabora.co.uk>
* ext/ffmpeg/gstffmpegcodecmap.c:
switch (oclass->in_plugin->id) {
case CODEC_ID_MPEG4:
case CODEC_ID_MJPEG:
- case CODEC_ID_MP3:
case CODEC_ID_VC1:
GST_LOG_OBJECT (ffmpegdec, "not using parser, blacklisted codec");
ffmpegdec->pctx = NULL;
break;
}
if (!ffmpegdec->pctx) {
- if (len == 0) {
+ if (len == 0 && !have_data) {
/* nothing was decoded, this could be because no data was available or
* because we were skipping frames.
* If we have no context we must exit and wait for more data, we keep the
} while (bsize > 0);
/* keep left-over */
- if ((ffmpegdec->pctx || oclass->in_plugin->id == CODEC_ID_MP3) && bsize > 0) {
+ if (ffmpegdec->pctx && bsize > 0) {
in_timestamp = GST_BUFFER_TIMESTAMP (inbuf);
GST_LOG_OBJECT (ffmpegdec,
note: if you change this, see the code in gstdv.c in good/ext/dv. */
rank = GST_RANK_SECONDARY;
break;
- /* MP3 and MPEG2 have better alternatives and
- the ffmpeg versions don't work properly feel
- free to assign rank if you fix them */
- case CODEC_ID_MP3:
- case CODEC_ID_MPEG2VIDEO:
- rank = GST_RANK_NONE;
- break;
default:
rank = GST_RANK_MARGINAL;
break;