@@ -15,6 +15,9 @@ libavutil: 2012-10-22 | |||||
API changes, most recent first: | API changes, most recent first: | ||||
2013-03-30 - xxxxxxx - lavu 52.24.100 - samplefmt.h | |||||
Add av_samples_alloc_array_and_samples(). | |||||
2013-03-29 - xxxxxxx - lavf 55.1.100 - avformat.h | 2013-03-29 - xxxxxxx - lavf 55.1.100 - avformat.h | ||||
Add av_guess_frame_rate() | Add av_guess_frame_rate() | ||||
@@ -207,6 +207,21 @@ int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels, | |||||
#endif | #endif | ||||
} | } | ||||
int av_samples_alloc_array_and_samples(uint8_t ***audio_data, int *linesize, int nb_channels, | |||||
int nb_samples, enum AVSampleFormat sample_fmt, int align) | |||||
{ | |||||
int ret, nb_planes = av_sample_fmt_is_planar(sample_fmt) ? nb_channels : 1; | |||||
*audio_data = av_calloc(nb_planes, sizeof(*audio_data)); | |||||
if (!*audio_data) | |||||
return AVERROR(ENOMEM); | |||||
ret = av_samples_alloc(*audio_data, linesize, nb_channels, | |||||
nb_samples, sample_fmt, align); | |||||
if (ret < 0) | |||||
av_freep(audio_data); | |||||
return ret; | |||||
} | |||||
int av_samples_copy(uint8_t **dst, uint8_t * const *src, int dst_offset, | int av_samples_copy(uint8_t **dst, uint8_t * const *src, int dst_offset, | ||||
int src_offset, int nb_samples, int nb_channels, | int src_offset, int nb_samples, int nb_channels, | ||||
enum AVSampleFormat sample_fmt) | enum AVSampleFormat sample_fmt) | ||||
@@ -209,10 +209,23 @@ int av_samples_fill_arrays(uint8_t **audio_data, int *linesize, | |||||
* @return >=0 on success or a negative error code on failure | * @return >=0 on success or a negative error code on failure | ||||
* @todo return the size of the allocated buffer in case of success at the next bump | * @todo return the size of the allocated buffer in case of success at the next bump | ||||
* @see av_samples_fill_arrays() | * @see av_samples_fill_arrays() | ||||
* @see av_samples_alloc_array_and_samples() | |||||
*/ | */ | ||||
int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels, | int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels, | ||||
int nb_samples, enum AVSampleFormat sample_fmt, int align); | int nb_samples, enum AVSampleFormat sample_fmt, int align); | ||||
/** | |||||
* Allocate a data pointers array, samples buffer for nb_samples | |||||
* samples, and fill data pointers and linesize accordingly. | |||||
* | |||||
* This is the same as av_samples_alloc(), but also allocates the data | |||||
* pointers array. | |||||
* | |||||
* @see av_samples_alloc() | |||||
*/ | |||||
int av_samples_alloc_array_and_samples(uint8_t ***audio_data, int *linesize, int nb_channels, | |||||
int nb_samples, enum AVSampleFormat sample_fmt, int align); | |||||
/** | /** | ||||
* Copy samples from src to dst. | * Copy samples from src to dst. | ||||
* | * | ||||
@@ -75,7 +75,7 @@ | |||||
*/ | */ | ||||
#define LIBAVUTIL_VERSION_MAJOR 52 | #define LIBAVUTIL_VERSION_MAJOR 52 | ||||
#define LIBAVUTIL_VERSION_MINOR 23 | |||||
#define LIBAVUTIL_VERSION_MINOR 24 | |||||
#define LIBAVUTIL_VERSION_MICRO 100 | #define LIBAVUTIL_VERSION_MICRO 100 | ||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | ||||