From: Laurent Aimar Date: Thu, 10 Jul 2008 20:05:53 +0000 (+0200) Subject: Let swscale handle video conversion when available (close #1695) X-Git-Tag: 0.9.0-test2~76 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;ds=sidebyside;h=14cc9765ed844fa23d245a60e46f3e0b30ca81d1;p=vlc Let swscale handle video conversion when available (close #1695) --- 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; } }