[FFmpeg-devel] [PATCH 1/2] avidec: XMPG support
Paul B Mahol
onemda at gmail.com
Fri Jan 13 20:35:47 CET 2012
On 1/13/12, Michael Niedermayer <michaelni at gmx.at> wrote:
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
> libavformat/avidec.c | 23 +++++++++++++++++++++++
> libavformat/riff.c | 1 +
> 2 files changed, 24 insertions(+), 0 deletions(-)
>
> diff --git a/libavformat/avidec.c b/libavformat/avidec.c
> index 6112af4..b04b933 100644
> --- a/libavformat/avidec.c
> +++ b/libavformat/avidec.c
> @@ -694,6 +694,29 @@ static int avi_read_header(AVFormatContext *s,
> AVFormatParameters *ap)
> }
> }
> break;
> + case MKTAG('s', 't', 'r', 'd'):
> + if (stream_index >= (unsigned)s->nb_streams) {
> + avio_skip(pb, size);
> + } else {
> + uint64_t cur_pos = avio_tell(pb);
> + if (cur_pos < list_end)
> + size = FFMIN(size, list_end - cur_pos);
> + st = s->streams[stream_index];
> +
> + if(size<(1<<30) && !st->codec->extradata_size){
> + st->codec->extradata_size= size;
> + st->codec->extradata=
> av_malloc(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
> + if (!st->codec->extradata) {
> + st->codec->extradata_size= 0;
> + return AVERROR(ENOMEM);
> + }
> + avio_read(pb, st->codec->extradata,
> st->codec->extradata_size);
> + }
> +
> + if(st->codec->extradata_size & 1) //FIXME check if the
> encoder really did this correctly
> + avio_r8(pb);
> + }
> + break;
> case MKTAG('i', 'n', 'd', 'x'):
> i= avio_tell(pb);
> if(pb->seekable && !(s->flags & AVFMT_FLAG_IGNIDX) &&
> avi->use_odml &&
> diff --git a/libavformat/riff.c b/libavformat/riff.c
> index cd2c9a0..17a0260 100644
> --- a/libavformat/riff.c
> +++ b/libavformat/riff.c
> @@ -135,6 +135,7 @@ const AVCodecTag ff_codec_bmp_tags[] = {
> { CODEC_ID_MPEG2VIDEO, MKTAG('E', 'M', '2', 'V') },
> { CODEC_ID_MPEG2VIDEO, MKTAG('M', '7', '0', '1') }, /* Matrox MPEG2
> intra-only */
> { CODEC_ID_MPEG2VIDEO, MKTAG('m', 'p', 'g', 'v') },
> + { CODEC_ID_MPEG1VIDEO, MKTAG('X', 'M', 'P', 'G') },
nit: add comment /* Xing MPEG intra only */
> { CODEC_ID_MJPEG, MKTAG('M', 'J', 'P', 'G') },
> { CODEC_ID_MJPEG, MKTAG('L', 'J', 'P', 'G') },
> { CODEC_ID_MJPEG, MKTAG('d', 'm', 'b', '1') },
> --
> 1.7.5.4
>
OK, ty
More information about the ffmpeg-devel
mailing list