diff options
author | Nicolas George <nicolas.george@normalesup.org> | 2012-06-25 00:32:49 +0200 |
---|---|---|
committer | Nicolas George <nicolas.george@normalesup.org> | 2012-06-30 14:03:54 +0200 |
commit | 6f5e7e8690c9bfd0f4cf9581319adfb7c0983a9f (patch) | |
tree | 7fc46c581d799c6a386707b6a4713f6e60bd1f69 /ffmpeg.c | |
parent | 1f5c1333a733a7cba1803c9f9eab86da5f010bd5 (diff) | |
download | ffmpeg-6f5e7e8690c9bfd0f4cf9581319adfb7c0983a9f.tar.gz |
ffmpeg: use the more powerful version of abuffersink.
Diffstat (limited to 'ffmpeg.c')
-rw-r--r-- | ffmpeg.c | 17 |
1 files changed, 7 insertions, 10 deletions
@@ -882,7 +882,7 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter, snprintf(name, sizeof(name), "output stream %d:%d", ost->file_index, ost->index); ret = avfilter_graph_create_filter(&ofilter->filter, - avfilter_get_by_name("abuffersink_old"), + avfilter_get_by_name("abuffersink"), name, NULL, NULL, fg->graph); if (ret < 0) return ret; @@ -1939,15 +1939,8 @@ static int poll_filters(void) filtered_frame = ost->filtered_frame; while (!ost->is_past_recording_time) { - if (ost->enc->type == AVMEDIA_TYPE_AUDIO && - !(ost->enc->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)) - ret = av_buffersink_read_samples(ost->filter->filter, &picref, - ost->st->codec->frame_size); - else if(ost->enc->type == AVMEDIA_TYPE_AUDIO) - ret = av_buffersink_read(ost->filter->filter, &picref); - else - ret = av_buffersink_get_buffer_ref(ost->filter->filter, &picref, - AV_BUFFERSINK_FLAG_NO_REQUEST); + ret = av_buffersink_get_buffer_ref(ost->filter->filter, &picref, + AV_BUFFERSINK_FLAG_NO_REQUEST); if (ret < 0) { if (ret != AVERROR(EAGAIN) && ret != AVERROR_EOF) { char buf[256]; @@ -3108,6 +3101,10 @@ static int transcode_init(void) ret = AVERROR(EINVAL); goto dump_format; } + if (ost->enc->type == AVMEDIA_TYPE_AUDIO && + !(ost->enc->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)) + av_buffersink_set_frame_size(ost->filter->filter, + ost->st->codec->frame_size); assert_codec_experimental(ost->st->codec, 1); assert_avoptions(ost->opts); if (ost->st->codec->bit_rate && ost->st->codec->bit_rate < 1000) |