33 return ref->audio ? ref->audio->channels : 0;
63 frame->
buf[0]->
data, buf_size, 0);
97 #if FF_API_AVFILTERBUFFER
98 AVFilterBufferRef* avfilter_get_audio_buffer_ref_from_arrays_channels(
uint8_t **
data,
99 int linesize,
int perms,
103 uint64_t channel_layout)
107 AVFilterBufferRef *samplesref =
av_mallocz(
sizeof(*samplesref));
109 if (!samples || !samplesref)
118 if (!(samplesref->audio =
av_mallocz(
sizeof(*samplesref->audio))))
122 samplesref->audio->channel_layout = channel_layout;
123 samplesref->audio->channels = channels;
128 samplesref->perms = perms | AV_PERM_READ;
130 samples->refcount = 1;
132 samplesref->format = sample_fmt;
134 memcpy(samples->data, data,
136 memcpy(samplesref->data, samples->data,
sizeof(samples->data));
138 samples->linesize[0] = samplesref->linesize[0] = linesize;
141 samples-> extended_data =
av_mallocz(
sizeof(*samples->extended_data) *
143 samplesref->extended_data =
av_mallocz(
sizeof(*samplesref->extended_data) *
146 if (!samples->extended_data || !samplesref->extended_data)
149 memcpy(samples-> extended_data, data,
sizeof(*data)*planes);
150 memcpy(samplesref->extended_data, data,
sizeof(*data)*planes);
152 samples->extended_data = samples->data;
153 samplesref->extended_data = samplesref->data;
161 if (samples && samples->extended_data != samples->data)
165 if (samplesref->extended_data != samplesref->data)
166 av_freep(&samplesref->extended_data);
173 AVFilterBufferRef* avfilter_get_audio_buffer_ref_from_arrays(
uint8_t **data,
174 int linesize,
int perms,
177 uint64_t channel_layout)
180 return avfilter_get_audio_buffer_ref_from_arrays_channels(data, linesize, perms,
181 nb_samples, sample_fmt,
182 channels, channel_layout);