@@ -4558,36 +4558,6 @@ AVCodec *avcodec_find_encoder(enum AVCodecID id); | |||||
*/ | */ | ||||
AVCodec *avcodec_find_encoder_by_name(const char *name); | AVCodec *avcodec_find_encoder_by_name(const char *name); | ||||
#if FF_API_OLD_ENCODE_AUDIO | |||||
/** | |||||
* Encode an audio frame from samples into buf. | |||||
* | |||||
* @deprecated Use avcodec_encode_audio2 instead. | |||||
* | |||||
* @note The output buffer should be at least FF_MIN_BUFFER_SIZE bytes large. | |||||
* However, for codecs with avctx->frame_size equal to 0 (e.g. PCM) the user | |||||
* will know how much space is needed because it depends on the value passed | |||||
* in buf_size as described below. In that case a lower value can be used. | |||||
* | |||||
* @param avctx the codec context | |||||
* @param[out] buf the output buffer | |||||
* @param[in] buf_size the output buffer size | |||||
* @param[in] samples the input buffer containing the samples | |||||
* The number of samples read from this buffer is frame_size*channels, | |||||
* both of which are defined in avctx. | |||||
* For codecs which have avctx->frame_size equal to 0 (e.g. PCM) the number of | |||||
* samples read from samples is equal to: | |||||
* buf_size * 8 / (avctx->channels * av_get_bits_per_sample(avctx->codec_id)) | |||||
* This also implies that av_get_bits_per_sample() must not return 0 for these | |||||
* codecs. | |||||
* @return On error a negative value is returned, on success zero or the number | |||||
* of bytes used to encode the data read from the input buffer. | |||||
*/ | |||||
int attribute_deprecated avcodec_encode_audio(AVCodecContext *avctx, | |||||
uint8_t *buf, int buf_size, | |||||
const short *samples); | |||||
#endif | |||||
/** | /** | ||||
* Encode a frame of audio. | * Encode a frame of audio. | ||||
* | * | ||||
@@ -114,14 +114,6 @@ typedef struct AVCodecInternal { | |||||
*/ | */ | ||||
int allocate_progress; | int allocate_progress; | ||||
#if FF_API_OLD_ENCODE_AUDIO | |||||
/** | |||||
* Internal sample count used by avcodec_encode_audio() to fabricate pts. | |||||
* Can be removed along with avcodec_encode_audio(). | |||||
*/ | |||||
int64_t sample_count; | |||||
#endif | |||||
/** | /** | ||||
* An audio frame with less than required samples has been submitted and | * An audio frame with less than required samples has been submitted and | ||||
* padded with silence. Reject all subsequent frames. | * padded with silence. Reject all subsequent frames. | ||||
@@ -1813,95 +1813,6 @@ end: | |||||
return ret; | return ret; | ||||
} | } | ||||
#if FF_API_OLD_ENCODE_AUDIO | |||||
int attribute_align_arg avcodec_encode_audio(AVCodecContext *avctx, | |||||
uint8_t *buf, int buf_size, | |||||
const short *samples) | |||||
{ | |||||
AVPacket pkt; | |||||
AVFrame *frame; | |||||
int ret, samples_size, got_packet; | |||||
av_init_packet(&pkt); | |||||
pkt.data = buf; | |||||
pkt.size = buf_size; | |||||
if (samples) { | |||||
frame = av_frame_alloc(); | |||||
if (!frame) | |||||
return AVERROR(ENOMEM); | |||||
if (avctx->frame_size) { | |||||
frame->nb_samples = avctx->frame_size; | |||||
} else { | |||||
/* if frame_size is not set, the number of samples must be | |||||
* calculated from the buffer size */ | |||||
int64_t nb_samples; | |||||
if (!av_get_bits_per_sample(avctx->codec_id)) { | |||||
av_log(avctx, AV_LOG_ERROR, "avcodec_encode_audio() does not " | |||||
"support this codec\n"); | |||||
av_frame_free(&frame); | |||||
return AVERROR(EINVAL); | |||||
} | |||||
nb_samples = (int64_t)buf_size * 8 / | |||||
(av_get_bits_per_sample(avctx->codec_id) * | |||||
avctx->channels); | |||||
if (nb_samples >= INT_MAX) { | |||||
av_frame_free(&frame); | |||||
return AVERROR(EINVAL); | |||||
} | |||||
frame->nb_samples = nb_samples; | |||||
} | |||||
/* it is assumed that the samples buffer is large enough based on the | |||||
* relevant parameters */ | |||||
samples_size = av_samples_get_buffer_size(NULL, avctx->channels, | |||||
frame->nb_samples, | |||||
avctx->sample_fmt, 1); | |||||
if ((ret = avcodec_fill_audio_frame(frame, avctx->channels, | |||||
avctx->sample_fmt, | |||||
(const uint8_t *)samples, | |||||
samples_size, 1)) < 0) { | |||||
av_frame_free(&frame); | |||||
return ret; | |||||
} | |||||
/* fabricate frame pts from sample count. | |||||
* this is needed because the avcodec_encode_audio() API does not have | |||||
* a way for the user to provide pts */ | |||||
if (avctx->sample_rate && avctx->time_base.num) | |||||
frame->pts = ff_samples_to_time_base(avctx, | |||||
avctx->internal->sample_count); | |||||
else | |||||
frame->pts = AV_NOPTS_VALUE; | |||||
avctx->internal->sample_count += frame->nb_samples; | |||||
} else { | |||||
frame = NULL; | |||||
} | |||||
got_packet = 0; | |||||
ret = avcodec_encode_audio2(avctx, &pkt, frame, &got_packet); | |||||
#if FF_API_CODED_FRAME | |||||
FF_DISABLE_DEPRECATION_WARNINGS | |||||
if (!ret && got_packet && avctx->coded_frame) { | |||||
avctx->coded_frame->pts = pkt.pts; | |||||
avctx->coded_frame->key_frame = !!(pkt.flags & AV_PKT_FLAG_KEY); | |||||
} | |||||
FF_ENABLE_DEPRECATION_WARNINGS | |||||
#endif | |||||
/* free any side data since we cannot return it */ | |||||
av_packet_free_side_data(&pkt); | |||||
if (frame && frame->extended_data != frame->data) | |||||
av_freep(&frame->extended_data); | |||||
av_frame_free(&frame); | |||||
return ret ? ret : pkt.size; | |||||
} | |||||
#endif | |||||
#if FF_API_OLD_ENCODE_VIDEO | #if FF_API_OLD_ENCODE_VIDEO | ||||
int attribute_align_arg avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf, int buf_size, | int attribute_align_arg avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf, int buf_size, | ||||
const AVFrame *pict) | const AVFrame *pict) | ||||
@@ -55,9 +55,6 @@ | |||||
#ifndef FF_API_VIMA_DECODER | #ifndef FF_API_VIMA_DECODER | ||||
#define FF_API_VIMA_DECODER (LIBAVCODEC_VERSION_MAJOR < 57) | #define FF_API_VIMA_DECODER (LIBAVCODEC_VERSION_MAJOR < 57) | ||||
#endif | #endif | ||||
#ifndef FF_API_OLD_ENCODE_AUDIO | |||||
#define FF_API_OLD_ENCODE_AUDIO (LIBAVCODEC_VERSION_MAJOR < 57) | |||||
#endif | |||||
#ifndef FF_API_OLD_ENCODE_VIDEO | #ifndef FF_API_OLD_ENCODE_VIDEO | ||||
#define FF_API_OLD_ENCODE_VIDEO (LIBAVCODEC_VERSION_MAJOR < 57) | #define FF_API_OLD_ENCODE_VIDEO (LIBAVCODEC_VERSION_MAJOR < 57) | ||||
#endif | #endif | ||||