Make the functions av_samples_fill_arrays, av_samples_alloc, and avcodec_fill_audio_frame return a buffer size rather than 0 in case of success. This will be enabled at the next libavutil major bump, in order to preserve backward compatibility. Returning the size allows to simplify the code, avoiding a few function calls.tags/n1.1
| @@ -4780,7 +4780,9 @@ int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, | |||||
| * @param buf buffer to use for frame data | * @param buf buffer to use for frame data | ||||
| * @param buf_size size of buffer | * @param buf_size size of buffer | ||||
| * @param align plane size sample alignment (0 = default) | * @param align plane size sample alignment (0 = default) | ||||
| * @return 0 on success, negative error code on failure | |||||
| * @return >=0 on success, negative error code on failure | |||||
| * @todo return the size of the allocated frame size in case of | |||||
| * success, at the next libavutil bump | |||||
| */ | */ | ||||
| int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels, | int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels, | ||||
| enum AVSampleFormat sample_fmt, const uint8_t *buf, | enum AVSampleFormat sample_fmt, const uint8_t *buf, | ||||
| @@ -171,7 +171,11 @@ int av_samples_fill_arrays(uint8_t **audio_data, int *linesize, | |||||
| if (linesize) | if (linesize) | ||||
| *linesize = line_size; | *linesize = line_size; | ||||
| #if FF_API_SAMPLES_UTILS_RETURN_ZERO | |||||
| return 0; | return 0; | ||||
| #else | |||||
| return buf_size; | |||||
| #endif | |||||
| } | } | ||||
| 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, | ||||
| @@ -196,7 +200,11 @@ int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels, | |||||
| av_samples_set_silence(audio_data, 0, nb_samples, nb_channels, sample_fmt); | av_samples_set_silence(audio_data, 0, nb_samples, nb_channels, sample_fmt); | ||||
| #if FF_API_SAMPLES_UTILS_RETURN_ZERO | |||||
| return 0; | return 0; | ||||
| #else | |||||
| return size; | |||||
| #endif | |||||
| } | } | ||||
| 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, | ||||
| @@ -183,7 +183,9 @@ int av_samples_get_buffer_size(int *linesize, int nb_channels, int nb_samples, | |||||
| * @param nb_samples the number of samples in a single channel | * @param nb_samples the number of samples in a single channel | ||||
| * @param sample_fmt the sample format | * @param sample_fmt the sample format | ||||
| * @param align buffer size alignment (0 = default, 1 = no alignment) | * @param align buffer size alignment (0 = default, 1 = no alignment) | ||||
| * @return 0 on success or a negative error code on failure | |||||
| * @return >=0 on success or a negative error code on failure | |||||
| * @todo return minimum size in bytes required for the buffer in case | |||||
| * of success at the next bump | |||||
| */ | */ | ||||
| int av_samples_fill_arrays(uint8_t **audio_data, int *linesize, | int av_samples_fill_arrays(uint8_t **audio_data, int *linesize, | ||||
| const uint8_t *buf, | const uint8_t *buf, | ||||
| @@ -204,7 +206,8 @@ int av_samples_fill_arrays(uint8_t **audio_data, int *linesize, | |||||
| * @param nb_channels number of audio channels | * @param nb_channels number of audio channels | ||||
| * @param nb_samples number of samples per channel | * @param nb_samples number of samples per channel | ||||
| * @param align buffer size alignment (0 = default, 1 = no alignment) | * @param align buffer size alignment (0 = default, 1 = no alignment) | ||||
| * @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 | |||||
| * @see av_samples_fill_arrays() | * @see av_samples_fill_arrays() | ||||
| */ | */ | ||||
| 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, | ||||
| @@ -126,6 +126,9 @@ | |||||
| #ifndef FF_API_CPU_FLAG_MMX2 | #ifndef FF_API_CPU_FLAG_MMX2 | ||||
| #define FF_API_CPU_FLAG_MMX2 (LIBAVUTIL_VERSION_MAJOR < 53) | #define FF_API_CPU_FLAG_MMX2 (LIBAVUTIL_VERSION_MAJOR < 53) | ||||
| #endif | #endif | ||||
| #ifndef FF_API_SAMPLES_UTILS_RETURN_ZERO | |||||
| #define FF_API_SAMPLES_UTILS_RETURN_ZERO (LIBAVUTIL_VERSION_MAJOR < 53) | |||||
| #endif | |||||
| /** | /** | ||||
| * @} | * @} | ||||