avcodec: remove deprecated old audio encode API
This commit is contained in:
parent
2c8ee2547e
commit
64c33f9624
4 changed files with 0 additions and 130 deletions
|
@ -1813,95 +1813,6 @@ end:
|
|||
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
|
||||
int attribute_align_arg avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf, int buf_size,
|
||||
const AVFrame *pict)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue