diff options
author | Nicolas George <nicolas.george@normalesup.org> | 2012-07-19 11:14:04 +0200 |
---|---|---|
committer | Nicolas George <nicolas.george@normalesup.org> | 2012-07-20 13:16:23 +0200 |
commit | 97f86680eb761bb92878edff06c10b73b75258a8 (patch) | |
tree | 2b2e92e32f3b406ef93d41564236c58be21fbec0 /libavfilter/buffersrc.c | |
parent | b0629366a26628f19245ea2c06a6e366cb70f92f (diff) | |
download | ffmpeg-97f86680eb761bb92878edff06c10b73b75258a8.tar.gz |
lavfi: make copy_buffer_ref common.
Diffstat (limited to 'libavfilter/buffersrc.c')
-rw-r--r-- | libavfilter/buffersrc.c | 40 |
1 files changed, 1 insertions, 39 deletions
diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c index 72ee268e1b..befefb8069 100644 --- a/libavfilter/buffersrc.c +++ b/libavfilter/buffersrc.c @@ -74,44 +74,6 @@ typedef struct { return AVERROR(EINVAL);\ } -static AVFilterBufferRef *copy_buffer_ref(AVFilterContext *ctx, - AVFilterBufferRef *ref) -{ - AVFilterLink *outlink = ctx->outputs[0]; - AVFilterBufferRef *buf; - int channels; - - switch (outlink->type) { - - case AVMEDIA_TYPE_VIDEO: - buf = ff_get_video_buffer(outlink, AV_PERM_WRITE, - ref->video->w, ref->video->h); - if(!buf) - return NULL; - av_image_copy(buf->data, buf->linesize, - (void*)ref->data, ref->linesize, - ref->format, ref->video->w, ref->video->h); - break; - - case AVMEDIA_TYPE_AUDIO: - buf = ff_get_audio_buffer(outlink, AV_PERM_WRITE, - ref->audio->nb_samples); - if(!buf) - return NULL; - channels = av_get_channel_layout_nb_channels(ref->audio->channel_layout); - av_samples_copy(buf->extended_data, ref->buf->extended_data, - 0, 0, ref->audio->nb_samples, - channels, - ref->format); - break; - - default: - return NULL; - } - avfilter_copy_buffer_ref_props(buf, ref); - return buf; -} - int av_buffersrc_add_frame(AVFilterContext *buffer_src, const AVFrame *frame, int flags) { @@ -175,7 +137,7 @@ int av_buffersrc_add_ref(AVFilterContext *s, AVFilterBufferRef *buf, int flags) } } if (!(flags & AV_BUFFERSRC_FLAG_NO_COPY)) - to_free = buf = copy_buffer_ref(s, buf); + to_free = buf = ff_copy_buffer_ref(s->outputs[0], buf); if(!buf) return -1; |