Hello,
I've noticed that several functions in samplefmt.h take an "align" parameter,
such as the function calls:
int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels,
int nb_samples, enum AVSampleFormat sample_fmt, int align);
int av_samples_get_buffer_size(int *linesize, int nb_channels, int nb_samples,
enum AVSampleFormat sample_fmt, int align);
int av_samples_fill_arrays(uint8_t **audio_data, int *linesize,
const uint8_t *buf,
int nb_channels, int nb_samples,
enum AVSampleFormat sample_fmt, int align);
This align parameter has the following description:
* @param align buffer size alignment (0 = default, 1 = no alignment)
I want to make sure that I'm properly understanding the purpose and setting of
this parameter. As I understand it, a sample is "packed" if its sample bits
occupy the entire available bits for the channel. If a sample's bits do not
occupy the entire available bits for the channel it is not packed, and then the
data is either high or low-aligned within the channel.
In the case of my app, my sample format of captured audio is:
Linear PCM, 32 bit little-endian floating point, 2 channels, 44100 Hz
and this data IS indeed packed, meaning that there is neither high nor low
alignment. In setting the appropriate align value for the aforementioned
functions, I have two questions:
1. What is "default" alignment according to the documentation? Is that high or
low, or something else?
2. Based on my captured sample data being packed, shouldn't this mean that
there is NO alignment, and therefore the value for these method invocations be
1?
Thanks,
Brad
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user