aboutsummaryrefslogtreecommitdiffstats
path: root/ffmpeg.c
diff options
context:
space:
mode:
authorNicolas George <nicolas.george@normalesup.org>2012-06-25 00:32:49 +0200
committerNicolas George <nicolas.george@normalesup.org>2012-06-30 14:03:54 +0200
commit6f5e7e8690c9bfd0f4cf9581319adfb7c0983a9f (patch)
tree7fc46c581d799c6a386707b6a4713f6e60bd1f69 /ffmpeg.c
parent1f5c1333a733a7cba1803c9f9eab86da5f010bd5 (diff)
downloadffmpeg-6f5e7e8690c9bfd0f4cf9581319adfb7c0983a9f.tar.gz
ffmpeg: use the more powerful version of abuffersink.
Diffstat (limited to 'ffmpeg.c')
-rw-r--r--ffmpeg.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index dea93e528e..b7f712eb3d 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -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)