Browse Source

src_buffer: implement audio buffer copy.

tags/n0.11
Nicolas George 13 years ago
parent
commit
a96cd73ff2
1 changed files with 12 additions and 0 deletions
  1. +12
    -0
      libavfilter/src_buffer.c

+ 12
- 0
libavfilter/src_buffer.c View File

@@ -220,6 +220,7 @@ static AVFilterBufferRef *copy_buffer_ref(AVFilterContext *ctx,
{
AVFilterLink *outlink = ctx->outputs[0];
AVFilterBufferRef *buf;
int channels, data_size, i;

switch (outlink->type) {

@@ -231,6 +232,17 @@ static AVFilterBufferRef *copy_buffer_ref(AVFilterContext *ctx,
ref->format, ref->video->w, ref->video->h);
break;

case AVMEDIA_TYPE_AUDIO:
buf = avfilter_get_audio_buffer(outlink, AV_PERM_WRITE,
ref->audio->nb_samples);
channels = av_get_channel_layout_nb_channels(ref->audio->channel_layout);
data_size = av_samples_get_buffer_size(NULL, channels,
ref->audio->nb_samples,
ref->format, 1);
for (i = 0; i < FF_ARRAY_ELEMS(ref->buf->data) && ref->buf->data[i]; i++)
memcpy(buf->buf->data[i], ref->buf->data[i], data_size);
break;

default:
return NULL;
}


Loading…
Cancel
Save