diff --git a/panda/src/movies/ffmpegAudioCursor.cxx b/panda/src/movies/ffmpegAudioCursor.cxx index 0bf01a1c1a..ae3670e392 100644 --- a/panda/src/movies/ffmpegAudioCursor.cxx +++ b/panda/src/movies/ffmpegAudioCursor.cxx @@ -52,7 +52,11 @@ FfmpegAudioCursor(FfmpegAudio *src) : _format_ctx = _ffvfile.get_format_context(); nassertv(_format_ctx != NULL); - if (av_find_stream_info(_format_ctx)<0) { +#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53, 6, 0) + if (avformat_find_stream_info(_format_ctx, NULL) < 0) { +#else + if (av_find_stream_info(_format_ctx) < 0) { +#endif cleanup(); return; } @@ -73,12 +77,17 @@ FfmpegAudioCursor(FfmpegAudio *src) : return; } - AVCodec *pAudioCodec=avcodec_find_decoder(_audio_ctx->codec_id); - if(pAudioCodec == 0) { + AVCodec *pAudioCodec = avcodec_find_decoder(_audio_ctx->codec_id); + if (pAudioCodec == 0) { cleanup(); return; } - if(avcodec_open(_audio_ctx, pAudioCodec)<0) { + +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 8, 0) + if (avcodec_open2(_audio_ctx, pAudioCodec, NULL) < 0) { +#else + if (avcodec_open(_audio_ctx, pAudioCodec) < 0) { +#endif cleanup(); return; } @@ -200,16 +209,14 @@ reload_buffer() { return true; } else if (_packet_size > 0) { int bufsize = _buffer_size * 2; -#if LIBAVCODEC_VERSION_INT < 3414272 #if LIBAVCODEC_VERSION_INT < 3349504 int len = avcodec_decode_audio(_audio_ctx, _buffer, &bufsize, _packet_data, _packet_size); movies_debug("avcodec_decode_audio returned " << len); -#else +#elif LIBAVCODEC_VERSION_INT < 3414272 int len = avcodec_decode_audio2(_audio_ctx, _buffer, &bufsize, _packet_data, _packet_size); movies_debug("avcodec_decode_audio2 returned " << len); -#endif #else AVPacket pkt; av_init_packet(&pkt); @@ -217,7 +224,7 @@ reload_buffer() { pkt.size = _packet_size; int len = avcodec_decode_audio3(_audio_ctx, _buffer, &bufsize, &pkt); movies_debug("avcodec_decode_audio3 returned " << len); - av_free_packet(&pkt); // Not sure about this + av_free_packet(&pkt); #endif if (len < 0) { return false; @@ -258,12 +265,16 @@ seek(double t) { return; } avcodec_close(_audio_ctx); - AVCodec *pAudioCodec=avcodec_find_decoder(_audio_ctx->codec_id); + AVCodec *pAudioCodec = avcodec_find_decoder(_audio_ctx->codec_id); if(pAudioCodec == 0) { cleanup(); return; } - if(avcodec_open(_audio_ctx, pAudioCodec)<0) { +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 8, 0) + if (avcodec_open2(_audio_ctx, pAudioCodec, NULL) < 0) { +#else + if (avcodec_open(_audio_ctx, pAudioCodec) < 0) { +#endif cleanup(); return; } @@ -289,18 +300,14 @@ seek(double t) { //////////////////////////////////////////////////////////////////// void FfmpegAudioCursor:: read_samples(int n, PN_int16 *data) { - - //movies_debug("here!!! FfmpegAudioCursor n="< 0) { - if (_buffer_head == _buffer_tail) { if(!reload_buffer()){ break; } - movies_debug("read_samples() Desired samples: " << desired << " N:" << n); + movies_debug("read_samples() desired samples: " << desired << " N:" << n); } int available = _buffer_tail - _buffer_head; int ncopy = (desired > available) ? available : desired; diff --git a/panda/src/movies/ffmpegVideoCursor.cxx b/panda/src/movies/ffmpegVideoCursor.cxx index 29c216efa2..104a6cd350 100644 --- a/panda/src/movies/ffmpegVideoCursor.cxx +++ b/panda/src/movies/ffmpegVideoCursor.cxx @@ -509,7 +509,11 @@ open_stream() { _format_ctx = _ffvfile.get_format_context(); nassertr(_format_ctx != NULL, false); +#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53, 6, 0) + if (avformat_find_stream_info(_format_ctx, NULL) < 0) { +#else if (av_find_stream_info(_format_ctx) < 0) { +#endif ffmpeg_cat.info() << "Couldn't find stream info\n"; close_stream(); @@ -541,7 +545,11 @@ open_stream() { close_stream(); return false; } +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 8, 0) + if (avcodec_open2(_video_ctx, pVideoCodec, NULL) < 0) { +#else if (avcodec_open(_video_ctx, pVideoCodec) < 0) { +#endif ffmpeg_cat.info() << "Couldn't open codec\n"; close_stream();