diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-06-13 21:04:06 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-06-13 22:43:57 +0200 |
commit | c7b9eab2be7099b0d4f2fed4feaf69a7dda379f0 (patch) | |
tree | 019d5b0a7eaa5e15782ec67d61100d9a3f91e916 /libavfilter/audio.c | |
parent | 4a6d790a6fc0de15112a7bbfe8b2b58ef058a48d (diff) | |
parent | 8517e9c476e8cf92d9ed25b6486bb43d3dc2c49d (diff) | |
download | ffmpeg-c7b9eab2be7099b0d4f2fed4feaf69a7dda379f0.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
rtmp: Add a new option 'rtmp_buffer', for setting the client buffer time
rtmp: Set the client buffer time to 3s instead of 0.26s
rtmp: Handle server bandwidth packets
rtmp: Display a verbose message when an unknown packet type is received
lavfi/audio: use av_samples_copy() instead of custom code.
configure: add all filters hardcoded into avconv to avconv_deps
avfiltergraph: remove a redundant call to avfilter_get_by_name().
lavfi: allow building without swscale.
build: Do not delete tests/vsynth2 directory, which is no longer created.
lavfi: replace AVFilterContext.input/output_count with nb_inputs/outputs
lavfi: make AVFilterPad opaque after two major bumps.
lavfi: add avfilter_pad_get_type() and avfilter_pad_get_name().
lavfi: make avfilter_get_video_buffer() private on next bump.
jack: update to new latency range API as the old one has been deprecated
rtmp: Tokenize the AMF connection parameters manually instead of using strtok_r
ppc: Rename H.264 optimization template file for consistency.
lavfi: add channelsplit audio filter.
golomb: check remaining bits during unary decoding in get_ur_golomb_jpegls()
sws: fix planar RGB input conversions for 9/10/16 bpp.
Conflicts:
Changelog
configure
doc/APIchanges
ffmpeg.c
libavcodec/golomb.h
libavcodec/v210dec.h
libavfilter/Makefile
libavfilter/allfilters.c
libavfilter/asrc_anullsrc.c
libavfilter/audio.c
libavfilter/avfilter.c
libavfilter/avfilter.h
libavfilter/avfiltergraph.c
libavfilter/buffersrc.c
libavfilter/formats.c
libavfilter/version.h
libavfilter/vf_frei0r.c
libavfilter/vf_pad.c
libavfilter/vf_scale.c
libavfilter/video.h
libavfilter/vsrc_color.c
libavformat/rtmpproto.c
libswscale/input.c
tests/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/audio.c')
-rw-r--r-- | libavfilter/audio.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/libavfilter/audio.c b/libavfilter/audio.c index 1334c2b7bc..d473b99393 100644 --- a/libavfilter/audio.c +++ b/libavfilter/audio.c @@ -160,7 +160,7 @@ void ff_default_filter_samples(AVFilterLink *inlink, AVFilterBufferRef *samplesr { AVFilterLink *outlink = NULL; - if (inlink->dst->output_count) + if (inlink->dst->nb_outputs) outlink = inlink->dst->outputs[0]; if (outlink) { @@ -190,10 +190,7 @@ void ff_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref) /* prepare to copy the samples if the buffer has insufficient permissions */ if ((dst->min_perms & samplesref->perms) != dst->min_perms || dst->rej_perms & samplesref->perms) { - int i, size, planar = av_sample_fmt_is_planar(samplesref->format); - int planes = !planar ? 1: - av_get_channel_layout_nb_channels(samplesref->audio->channel_layout); - + int size; av_log(link->dst, AV_LOG_DEBUG, "Copying audio data in avfilter (have perms %x, need %x, reject %x)\n", samplesref->perms, link->dstpad->min_perms, link->dstpad->rej_perms); @@ -204,13 +201,10 @@ void ff_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref) link->cur_buf->audio->sample_rate = samplesref->audio->sample_rate; /* Copy actual data into new samples buffer */ - /* src can be larger than dst if it was allocated larger than necessary. - dst can be slightly larger due to extra alignment padding. */ - size = FFMIN(samplesref->linesize[0], link->cur_buf->linesize[0]); - for (i = 0; samplesref->data[i] && i < 8; i++) - memcpy(link->cur_buf->data[i], samplesref->data[i], size); - for (i = 0; i < planes; i++) - memcpy(link->cur_buf->extended_data[i], samplesref->extended_data[i], size); + av_samples_copy(link->cur_buf->extended_data, samplesref->extended_data, + 0, 0, samplesref->audio->nb_samples, + av_get_channel_layout_nb_channels(link->channel_layout), + link->format); avfilter_unref_buffer(samplesref); } else |