mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-04-02 20:35:37 +02:00
ffplay: use avctx->channels and avctx->freq before avcodec_open2 consistently
This commit is contained in:
parent
1e7f7dc2d1
commit
2446a8cc0a
17
ffplay.c
17
ffplay.c
@ -2183,8 +2183,15 @@ static int stream_component_open(VideoState *is, int stream_index)
|
|||||||
if(codec->capabilities & CODEC_CAP_DR1)
|
if(codec->capabilities & CODEC_CAP_DR1)
|
||||||
avctx->flags |= CODEC_FLAG_EMU_EDGE;
|
avctx->flags |= CODEC_FLAG_EMU_EDGE;
|
||||||
|
|
||||||
wanted_spec.freq = avctx->sample_rate;
|
if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) {
|
||||||
wanted_spec.channels = avctx->channels;
|
if(avctx->sample_rate <= 0 || avctx->channels <= 0){
|
||||||
|
fprintf(stderr, "Invalid sample rate or channel count\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
wanted_spec.freq = avctx->sample_rate;
|
||||||
|
wanted_spec.channels = avctx->channels;
|
||||||
|
}
|
||||||
|
|
||||||
if (!codec ||
|
if (!codec ||
|
||||||
avcodec_open2(avctx, codec, &opts) < 0)
|
avcodec_open2(avctx, codec, &opts) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
@ -2195,10 +2202,6 @@ static int stream_component_open(VideoState *is, int stream_index)
|
|||||||
|
|
||||||
/* prepare audio output */
|
/* prepare audio output */
|
||||||
if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) {
|
if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) {
|
||||||
if(avctx->sample_rate <= 0 || avctx->channels <= 0){
|
|
||||||
fprintf(stderr, "Invalid sample rate or channel count\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
wanted_spec.format = AUDIO_S16SYS;
|
wanted_spec.format = AUDIO_S16SYS;
|
||||||
wanted_spec.silence = 0;
|
wanted_spec.silence = 0;
|
||||||
wanted_spec.samples = SDL_AUDIO_BUFFER_SIZE;
|
wanted_spec.samples = SDL_AUDIO_BUFFER_SIZE;
|
||||||
@ -2225,7 +2228,7 @@ static int stream_component_open(VideoState *is, int stream_index)
|
|||||||
is->audio_diff_avg_count = 0;
|
is->audio_diff_avg_count = 0;
|
||||||
/* since we do not have a precise anough audio fifo fullness,
|
/* since we do not have a precise anough audio fifo fullness,
|
||||||
we correct audio sync only if larger than this threshold */
|
we correct audio sync only if larger than this threshold */
|
||||||
is->audio_diff_threshold = 2.0 * SDL_AUDIO_BUFFER_SIZE / avctx->sample_rate;
|
is->audio_diff_threshold = 2.0 * SDL_AUDIO_BUFFER_SIZE / wanted_spec.freq;
|
||||||
|
|
||||||
memset(&is->audio_pkt, 0, sizeof(is->audio_pkt));
|
memset(&is->audio_pkt, 0, sizeof(is->audio_pkt));
|
||||||
packet_queue_init(&is->audioq);
|
packet_queue_init(&is->audioq);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user