mirror of
https://github.com/nyanmisaka/ffmpeg-rockchip.git
synced 2025-10-25 01:41:31 +08:00
lavc: remove disabled FF_API_OLD_ENCODE_AUDIO cruft
This commit is contained in:
@@ -1245,87 +1245,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 frame0 = { { 0 } };
|
||||
AVFrame *frame;
|
||||
int ret, samples_size, got_packet;
|
||||
|
||||
av_init_packet(&pkt);
|
||||
pkt.data = buf;
|
||||
pkt.size = buf_size;
|
||||
|
||||
if (samples) {
|
||||
frame = &frame0;
|
||||
avcodec_get_frame_defaults(frame);
|
||||
|
||||
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");
|
||||
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)
|
||||
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)))
|
||||
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 */
|
||||
frame->pts = ff_samples_to_time_base(avctx,
|
||||
avctx->internal->sample_count);
|
||||
avctx->internal->sample_count += frame->nb_samples;
|
||||
} else {
|
||||
frame = NULL;
|
||||
}
|
||||
|
||||
got_packet = 0;
|
||||
ret = avcodec_encode_audio2(avctx, &pkt, frame, &got_packet);
|
||||
if (!ret && got_packet && avctx->coded_frame) {
|
||||
avctx->coded_frame->pts = pkt.pts;
|
||||
avctx->coded_frame->key_frame = !!(pkt.flags & AV_PKT_FLAG_KEY);
|
||||
}
|
||||
/* free any side data since we cannot return it */
|
||||
if (pkt.side_data_elems > 0) {
|
||||
int i;
|
||||
for (i = 0; i < pkt.side_data_elems; i++)
|
||||
av_free(pkt.side_data[i].data);
|
||||
av_freep(&pkt.side_data);
|
||||
pkt.side_data_elems = 0;
|
||||
}
|
||||
|
||||
if (frame && frame->extended_data != frame->data)
|
||||
av_free(frame->extended_data);
|
||||
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user