[vlc-commits] avcodec: simplify encoder codec look-up
Rémi Denis-Courmont
git at videolan.org
Sat Jun 17 17:32:08 CEST 2017
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sat Jun 17 18:28:51 2017 +0300| [5b7afb0f149b4832293c66739415ce0fa9831b58] | committer: Rémi Denis-Courmont
avcodec: simplify encoder codec look-up
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5b7afb0f149b4832293c66739415ce0fa9831b58
---
modules/codec/avcodec/encoder.c | 70 +++++++++++++++--------------------------
1 file changed, 26 insertions(+), 44 deletions(-)
diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
index a82afd6c9d..7b5e15a245 100644
--- a/modules/codec/avcodec/encoder.c
+++ b/modules/codec/avcodec/encoder.c
@@ -373,7 +373,6 @@ int OpenEncoder( vlc_object_t *p_this )
AVCodecContext *p_context;
AVCodec *p_codec = NULL;
unsigned i_codec_id;
- int i_cat;
const char *psz_namecodec;
float f_val;
char *psz_val;
@@ -385,51 +384,34 @@ int OpenEncoder( vlc_object_t *p_this )
config_ChainParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg );
- if( p_enc->fmt_out.i_codec == VLC_CODEC_MP1V )
+ switch( p_enc->fmt_out.i_cat )
{
- i_cat = VIDEO_ES;
- i_codec_id = AV_CODEC_ID_MPEG1VIDEO;
- psz_namecodec = "MPEG-1 video";
- }
- else if( GetFfmpegCodec( VIDEO_ES, p_enc->fmt_out.i_codec, &i_codec_id,
- &psz_namecodec ) )
- i_cat = VIDEO_ES;
- else if( GetFfmpegCodec( AUDIO_ES, p_enc->fmt_out.i_codec, &i_codec_id,
- &psz_namecodec ) )
- i_cat = AUDIO_ES;
- else if( GetFfmpegCodec( SPU_ES, p_enc->fmt_out.i_codec, &i_codec_id,
- &psz_namecodec ) )
- i_cat = SPU_ES;
- else
- if( FindFfmpegChroma( p_enc->fmt_out.i_codec ) != AV_PIX_FMT_NONE )
- {
- i_cat = VIDEO_ES;
- i_codec_id = AV_CODEC_ID_RAWVIDEO;
- psz_namecodec = "Raw video";
- }
- else
- return VLC_EGENERIC; /* handed chroma output */
-
- if( p_enc->fmt_out.i_cat == VIDEO_ES && i_cat != VIDEO_ES )
- {
- msg_Err( p_enc, "\"%s\" is not a video encoder", psz_namecodec );
- vlc_dialog_display_error( p_enc, _("Streaming / Transcoding failed"),
- _("\"%s\" is no video encoder."), psz_namecodec );
- return VLC_EGENERIC;
- }
-
- if( p_enc->fmt_out.i_cat == AUDIO_ES && i_cat != AUDIO_ES )
- {
- msg_Err( p_enc, "\"%s\" is not an audio encoder", psz_namecodec );
- vlc_dialog_display_error( p_enc, _("Streaming / Transcoding failed"),
- _("\"%s\" is no audio encoder."), psz_namecodec );
- return VLC_EGENERIC;
- }
+ case VIDEO_ES:
+ if( p_enc->fmt_out.i_codec == VLC_CODEC_MP1V )
+ {
+ i_codec_id = AV_CODEC_ID_MPEG1VIDEO;
+ psz_namecodec = "MPEG-1 video";
+ break;
+ }
+ if( GetFfmpegCodec( VIDEO_ES, p_enc->fmt_out.i_codec, &i_codec_id,
+ &psz_namecodec ) )
+ break;
+ if( FindFfmpegChroma( p_enc->fmt_out.i_codec ) != AV_PIX_FMT_NONE )
+ {
+ i_codec_id = AV_CODEC_ID_RAWVIDEO;
+ psz_namecodec = "Raw video";
+ break;
+ }
+ return VLC_EGENERIC;
- if( p_enc->fmt_out.i_cat == SPU_ES )
- {
- /* We don't support subtitle encoding */
- return VLC_EGENERIC;
+ case AUDIO_ES:
+ if( GetFfmpegCodec( AUDIO_ES, p_enc->fmt_out.i_codec, &i_codec_id,
+ &psz_namecodec ) )
+ break;
+ /* fall through */
+ default:
+ /* We don't support subtitle encoding */
+ return VLC_EGENERIC;
}
char *psz_encoder = var_GetString( p_this, ENC_CFG_PREFIX "codec" );
More information about the vlc-commits
mailing list