mirror of https://git.ffmpeg.org/ffmpeg.git
ffplay: provide some feedback in case the codec cannot be set
This commit is contained in:
parent
1cbb11cda7
commit
013b700771
14
ffplay.c
14
ffplay.c
|
@ -2300,6 +2300,7 @@ static int stream_component_open(VideoState *is, int stream_index)
|
||||||
AVFormatContext *ic = is->ic;
|
AVFormatContext *ic = is->ic;
|
||||||
AVCodecContext *avctx;
|
AVCodecContext *avctx;
|
||||||
AVCodec *codec;
|
AVCodec *codec;
|
||||||
|
const char *forced_codec_name = NULL;
|
||||||
AVDictionary *opts;
|
AVDictionary *opts;
|
||||||
AVDictionaryEntry *t = NULL;
|
AVDictionaryEntry *t = NULL;
|
||||||
|
|
||||||
|
@ -2310,12 +2311,17 @@ static int stream_component_open(VideoState *is, int stream_index)
|
||||||
codec = avcodec_find_decoder(avctx->codec_id);
|
codec = avcodec_find_decoder(avctx->codec_id);
|
||||||
|
|
||||||
switch(avctx->codec_type){
|
switch(avctx->codec_type){
|
||||||
case AVMEDIA_TYPE_AUDIO : is->last_audio_stream = stream_index; if(audio_codec_name ) codec= avcodec_find_decoder_by_name( audio_codec_name); break;
|
case AVMEDIA_TYPE_AUDIO : is->last_audio_stream = stream_index; forced_codec_name = audio_codec_name; break;
|
||||||
case AVMEDIA_TYPE_SUBTITLE: is->last_subtitle_stream = stream_index; if(subtitle_codec_name) codec= avcodec_find_decoder_by_name(subtitle_codec_name); break;
|
case AVMEDIA_TYPE_SUBTITLE: is->last_subtitle_stream = stream_index; forced_codec_name = subtitle_codec_name; break;
|
||||||
case AVMEDIA_TYPE_VIDEO : is->last_video_stream = stream_index; if(video_codec_name ) codec= avcodec_find_decoder_by_name( video_codec_name); break;
|
case AVMEDIA_TYPE_VIDEO : is->last_video_stream = stream_index; forced_codec_name = video_codec_name; break;
|
||||||
}
|
}
|
||||||
if (!codec)
|
if (forced_codec_name)
|
||||||
|
codec = avcodec_find_decoder_by_name(forced_codec_name);
|
||||||
|
if (!codec) {
|
||||||
|
if (forced_codec_name) fprintf(stderr, "No codec could be found with name '%s'\n", forced_codec_name);
|
||||||
|
else fprintf(stderr, "No codec could be found with id %d\n", avctx->codec_id);
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
avctx->codec_id = codec->id;
|
avctx->codec_id = codec->id;
|
||||||
avctx->workaround_bugs = workaround_bugs;
|
avctx->workaround_bugs = workaround_bugs;
|
||||||
|
|
Loading…
Reference in New Issue