You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	lavu/samplefmt: add av_samples_alloc_array_and_pointers()
This commit is contained in:
		| @@ -15,6 +15,9 @@ libavutil:     2012-10-22 | ||||
|  | ||||
| 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 | ||||
|   Add av_guess_frame_rate() | ||||
|  | ||||
|   | ||||
| @@ -207,6 +207,21 @@ int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels, | ||||
| #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 src_offset, int nb_samples, int nb_channels, | ||||
|                     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 | ||||
|  * @todo return the size of the allocated buffer in case of success at the next bump | ||||
|  * @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 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. | ||||
|  * | ||||
|   | ||||
| @@ -75,7 +75,7 @@ | ||||
|  */ | ||||
|  | ||||
| #define LIBAVUTIL_VERSION_MAJOR  52 | ||||
| #define LIBAVUTIL_VERSION_MINOR  23 | ||||
| #define LIBAVUTIL_VERSION_MINOR  24 | ||||
| #define LIBAVUTIL_VERSION_MICRO 100 | ||||
|  | ||||
| #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user