From 589cd12c0ba1294f9d36358a07f0d782de09415e Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Tue, 5 Jun 2012 11:52:38 +0300 Subject: Added check for AVCodecContext.color_range and AVCodecContext.colorspace --- src/combined/ffmpeg/ff_video_decoder.c | 12 ++++++++++-- src/combined/ffmpeg/ffmpeg_compat.h | 5 +++++ 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/combined/ffmpeg/ff_video_decoder.c b/src/combined/ffmpeg/ff_video_decoder.c index f7817556f..ecd59ab80 100644 --- a/src/combined/ffmpeg/ff_video_decoder.c +++ b/src/combined/ffmpeg/ff_video_decoder.c @@ -145,12 +145,20 @@ struct ff_video_decoder_s { static void ff_check_colorspace (ff_video_decoder_t *this) { int i, cm; +#ifdef AVCODEC_HAS_COLORSPACE cm = this->context->colorspace << 1; +#else + cm = 0; +#endif + /* ffmpeg bug: color_range not set by svq3 decoder */ i = this->context->pix_fmt; - if (cm && ((i == PIX_FMT_YUVJ420P) || (i == PIX_FMT_YUVJ444P) || - (this->context->color_range == AVCOL_RANGE_JPEG))) + if (cm && ((i == PIX_FMT_YUVJ420P) || (i == PIX_FMT_YUVJ444P))) cm |= 1; +#ifdef AVCODEC_HAS_COLORSPACE + if (this->context->color_range == AVCOL_RANGE_JPEG) + cm |= 1; +#endif /* report changes of colorspyce and/or color range */ if (cm != this->color_matrix) { diff --git a/src/combined/ffmpeg/ffmpeg_compat.h b/src/combined/ffmpeg/ffmpeg_compat.h index f0a49d7f2..f025dfec6 100644 --- a/src/combined/ffmpeg/ffmpeg_compat.h +++ b/src/combined/ffmpeg/ffmpeg_compat.h @@ -48,6 +48,11 @@ # undef AVCODEC_HAS_REORDERED_OPAQUE #endif +/* colorspace and color_range were added before 52.29.0 */ +#if LIBAVCODEC_VERSION_MAJOR > 52 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 29) +# define AVCODEC_HAS_COLORSPACE +#endif + /**/ #if LIBAVCODEC_VERSION_MAJOR > 53 || (LIBAVCODEC_VERSION_MAJOR == 53 && LIBAVCODEC_VERSION_MINOR >= 8) # define avcodec_init() do {} while(0) -- cgit v1.2.3