Browse Source

lavu/samplefmt: add av_samples_alloc_array_and_pointers()

tags/n2.0
Stefano Sabatini 12 years ago
parent
commit
5c73645d91
4 changed files with 32 additions and 1 deletions
  1. +3
    -0
      doc/APIchanges
  2. +15
    -0
      libavutil/samplefmt.c
  3. +13
    -0
      libavutil/samplefmt.h
  4. +1
    -1
      libavutil/version.h

+ 3
- 0
doc/APIchanges View File

@@ -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()




+ 15
- 0
libavutil/samplefmt.c View File

@@ -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)


+ 13
- 0
libavutil/samplefmt.h View File

@@ -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.
* *


+ 1
- 1
libavutil/version.h View File

@@ -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, \


Loading…
Cancel
Save