From 14cc9765ed844fa23d245a60e46f3e0b30ca81d1 Mon Sep 17 00:00:00 2001 From: Laurent Aimar Date: Thu, 10 Jul 2008 22:05:53 +0200 Subject: [PATCH] Let swscale handle video conversion when available (close #1695) --- modules/codec/avcodec/chroma.h | 6 +++--- modules/codec/avcodec/video.c | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/codec/avcodec/chroma.h b/modules/codec/avcodec/chroma.h index f538761863..3e82aa6dce 100644 --- a/modules/codec/avcodec/chroma.h +++ b/modules/codec/avcodec/chroma.h @@ -25,7 +25,7 @@ /***************************************************************************** * Chroma fourcc -> ffmpeg_id mapping *****************************************************************************/ -static struct +static const struct { vlc_fourcc_t i_chroma; int i_chroma_id; @@ -74,7 +74,7 @@ static struct { 0, 0 } }; -static int GetFfmpegChroma( vlc_fourcc_t i_chroma ) +static inline int GetFfmpegChroma( vlc_fourcc_t i_chroma ) { int i; @@ -86,7 +86,7 @@ static int GetFfmpegChroma( vlc_fourcc_t i_chroma ) return -1; } -static vlc_fourcc_t GetVlcChroma( int i_ffmpeg_chroma ) +static inline vlc_fourcc_t GetVlcChroma( int i_ffmpeg_chroma ) { int i; diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c index 17f5f34ece..8a8e1f8864 100644 --- a/modules/codec/avcodec/video.c +++ b/modules/codec/avcodec/video.c @@ -45,6 +45,7 @@ #endif #include "avcodec.h" +#include "chroma.h" /***************************************************************************** * decoder_sys_t : decoder descriptor @@ -150,9 +151,11 @@ static uint32_t ffmpeg_PixFmtToChroma( int i_ff_chroma ) case PIX_FMT_GRAY8: return VLC_FOURCC('G','R','E','Y'); - case PIX_FMT_YUV410P: - case PIX_FMT_YUV411P: default: +#if defined(HAVE_LIBSWSCALE_SWSCALE_H) || defined(HAVE_FFMPEG_SWSCALE_H) + if( GetVlcChroma( i_ff_chroma ) ) + return GetVlcChroma( i_ff_chroma ); +#endif return 0; } } -- 2.39.2