MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / av_samples_copy

Function av_samples_copy

libavutil/samplefmt.c:222–244  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

220}
221
222int av_samples_copy(uint8_t * const *dst, uint8_t * const *src, int dst_offset,
223 int src_offset, int nb_samples, int nb_channels,
224 enum AVSampleFormat sample_fmt)
225{
226 int planar = av_sample_fmt_is_planar(sample_fmt);
227 int planes = planar ? nb_channels : 1;
228 int block_align = av_get_bytes_per_sample(sample_fmt) * (planar ? 1 : nb_channels);
229 int data_size = nb_samples * block_align;
230 int i;
231
232 dst_offset *= block_align;
233 src_offset *= block_align;
234
235 if((dst[0] < src[0] ? src[0] - dst[0] : dst[0] - src[0]) >= data_size) {
236 for (i = 0; i < planes; i++)
237 memcpy(dst[i] + dst_offset, src[i] + src_offset, data_size);
238 } else {
239 for (i = 0; i < planes; i++)
240 memmove(dst[i] + dst_offset, src[i] + src_offset, data_size);
241 }
242
243 return 0;
244}
245
246int av_samples_set_silence(uint8_t * const *audio_data, int offset, int nb_samples,
247 int nb_channels, enum AVSampleFormat sample_fmt)

Callers 12

frame_copy_audioFunction · 0.85
receive_samplesFunction · 0.85
pad_last_frameFunction · 0.85
discard_samplesFunction · 0.85
analyze_frameFunction · 0.85
activateFunction · 0.85
filter_frameFunction · 0.85
config_filterFunction · 0.85
atrim_filter_frameFunction · 0.85
filter_channelFunction · 0.85
take_samplesFunction · 0.85

Calls 2

av_sample_fmt_is_planarFunction · 0.85
av_get_bytes_per_sampleFunction · 0.85

Tested by 1