1 Index: modules/ffmpeg_in/ffmpeg_in.h
2 ===================================================================
3 --- modules/ffmpeg_in/ffmpeg_in.h (revision 4282)
4 +++ modules/ffmpeg_in/ffmpeg_in.h (revision 4451)
7 /*for audio packed frames*/
9 - char audio_buf[AVCODEC_MAX_AUDIO_FRAME_SIZE];
10 + char audio_buf[192000];
14 Index: modules/ffmpeg_in/ffmpeg_demux.c
15 ===================================================================
16 --- modules/ffmpeg_in/ffmpeg_demux.c (revision 4282)
17 +++ modules/ffmpeg_in/ffmpeg_demux.c (revision 4451)
19 #define AVERROR_NOFMT AVERROR(EINVAL)
20 #endif /* AVERROR_NOFMT */
23 +#if (LIBAVFORMAT_VERSION_MAJOR >= 54) && (LIBAVFORMAT_VERSION_MINOR >= 20)
25 +#define av_find_stream_info(__c) avformat_find_stream_info(__c, NULL)
26 +#ifndef FF_API_FORMAT_PARAMETERS
27 +#define FF_API_FORMAT_PARAMETERS 1
34 static u32 FFDemux_Run(void *par)
37 Index: modules/ffmpeg_in/ffmpeg_decode.c
38 ===================================================================
39 --- modules/ffmpeg_in/ffmpeg_decode.c (revision 4282)
40 +++ modules/ffmpeg_in/ffmpeg_decode.c (revision 4451)
45 +#if (LIBAVCODEC_VERSION_MAJOR >= 55)
47 +#elif (LIBAVCODEC_VERSION_MAJOR >= 54) && (LIBAVCODEC_VERSION_MINOR >= 35)
54 * Allocates data for FFMPEG decoding
55 * \param oldBuffer The oldBuffer (freed if not NULL)
57 frame = &ffd->base_frame;
62 + *ctx = avcodec_alloc_context3(NULL);
64 *ctx = avcodec_alloc_context();
68 /*private FFMPEG DSI*/
70 (*ctx)->pix_fmt = ffd->raw_pix_fmt;
71 if ((*ctx)->extradata && strstr((*ctx)->extradata, "BottomUp")) ffd->flipped = 1;
74 + if (avcodec_open2((*ctx), (*codec), NULL )<0) return GF_NON_COMPLIANT_BITSTREAM;
76 if (avcodec_open((*ctx), (*codec) )<0) return GF_NON_COMPLIANT_BITSTREAM;
80 /*setup audio streams*/
82 if (ffd->frame_start>inBufferLength) ffd->frame_start = 0;
85 - gotpic = AVCODEC_MAX_AUDIO_FRAME_SIZE;
88 len = avcodec_decode_audio3(ctx, (short *)ffd->audio_buf, &gotpic, &pkt);
90 + gotpic = AVCODEC_MAX_AUDIO_FRAME_SIZE;
91 len = avcodec_decode_audio2(ctx, (short *)ffd->audio_buf, &gotpic, inBuffer + ffd->frame_start, inBufferLength - ffd->frame_start);
93 if (len<0) { ffd->frame_start = 0; return GF_NON_COMPLIANT_BITSTREAM; }
95 here this means the DSI was broken, so no big deal*/
97 *codec = avcodec_find_decoder(CODEC_ID_H263);
100 + if (! (*codec) || (avcodec_open2(ctx, *codec, NULL)<0)) return GF_NON_COMPLIANT_BITSTREAM;
102 if (! (*codec) || (avcodec_open(ctx, *codec)<0)) return GF_NON_COMPLIANT_BITSTREAM;
106 if (avcodec_decode_video2(ctx, frame, &gotpic, &pkt) < 0) {
110 *codec = avcodec_find_decoder(old_codec);
113 + avcodec_open2(ctx, *codec, NULL);
115 avcodec_open(ctx, *codec);
117 return GF_NON_COMPLIANT_BITSTREAM;