From e6a2ab319f10fa318aa4d9b4e7c5cef0fd95dc87 Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Sat, 1 Nov 2008 17:15:17 +0000 Subject: [PATCH] VideoTexture: AVFormatContext::pb is not a pointer for avformat library older than 52 (linux uses 51) --- source/gameengine/VideoTexture/VideoFFmpeg.cpp | 10 ++++++++-- source/gameengine/VideoTexture/VideoFFmpeg.h | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/source/gameengine/VideoTexture/VideoFFmpeg.cpp b/source/gameengine/VideoTexture/VideoFFmpeg.cpp index 65bd5f4cbf4..19e10cf02f8 100644 --- a/source/gameengine/VideoTexture/VideoFFmpeg.cpp +++ b/source/gameengine/VideoTexture/VideoFFmpeg.cpp @@ -248,7 +248,13 @@ void VideoFFmpeg::openFile (char * filename) // open base class VideoBase::openFile(filename); - if (m_formatCtx->pb->is_streamed) + if ( +#ifdef FFMPEG_PB_IS_POINTER + m_formatCtx->pb->is_streamed +#else + m_formatCtx->pb.is_streamed +#endif + ) { // the file is in fact a streaming source, prevent seeking m_isFile = false; @@ -265,7 +271,7 @@ void VideoFFmpeg::openCam (char * file, short camIdx) AVInputFormat *inputFormat; AVFormatParameters formatParams; AVRational frameRate; - char filename[28], rateStr[20]; + char *p, filename[28], rateStr[20]; do_init_ffmpeg(); diff --git a/source/gameengine/VideoTexture/VideoFFmpeg.h b/source/gameengine/VideoTexture/VideoFFmpeg.h index 7980e06686c..4720bef1841 100644 --- a/source/gameengine/VideoTexture/VideoFFmpeg.h +++ b/source/gameengine/VideoTexture/VideoFFmpeg.h @@ -36,6 +36,10 @@ extern "C" { #define FFMPEG_CODEC_IS_POINTER 1 #endif +#if LIBAVFORMAT_VERSION_INT >= (52 << 16) +#define FFMPEG_PB_IS_POINTER 1 +#endif + #ifdef FFMPEG_CODEC_IS_POINTER static inline AVCodecContext* get_codec_from_stream(AVStream* stream) {