X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fvorbisenc.c;h=12a97bc058f6497e0d1c332299f7b6ad015bf1d9;hb=5c018ee18895f88e9e1d2174059dcdd48bf872d2;hp=16f4d65acc002f7b84c88853b2abd3ffcd577ad6;hpb=09031b4639667273354d6bcd1705d9f24fc9bdd4;p=ffmpeg diff --git a/libavcodec/vorbisenc.c b/libavcodec/vorbisenc.c index 16f4d65acc0..12a97bc058f 100644 --- a/libavcodec/vorbisenc.c +++ b/libavcodec/vorbisenc.c @@ -25,10 +25,11 @@ */ #include + #include "avcodec.h" -#include "dsputil.h" #include "internal.h" #include "fft.h" +#include "mathops.h" #include "vorbis.h" #include "vorbis_enc_data.h" @@ -38,7 +39,7 @@ #undef NDEBUG #include -typedef struct { +typedef struct vorbis_enc_codebook { int nentries; uint8_t *lens; uint32_t *codewords; @@ -52,14 +53,14 @@ typedef struct { float *pow2; } vorbis_enc_codebook; -typedef struct { +typedef struct vorbis_enc_floor_class { int dim; int subclass; int masterbook; int *books; } vorbis_enc_floor_class; -typedef struct { +typedef struct vorbis_enc_floor { int partitions; int *partition_to_class; int nclasses; @@ -70,7 +71,7 @@ typedef struct { vorbis_floor1_entry *list; } vorbis_enc_floor; -typedef struct { +typedef struct vorbis_enc_residue { int type; int begin; int end; @@ -81,7 +82,7 @@ typedef struct { float (*maxes)[2]; } vorbis_enc_residue; -typedef struct { +typedef struct vorbis_enc_mapping { int submaps; int *mux; int *floor; @@ -91,12 +92,12 @@ typedef struct { int *angle; } vorbis_enc_mapping; -typedef struct { +typedef struct vorbis_enc_mode { int blockflag; int mapping; } vorbis_enc_mode; -typedef struct { +typedef struct vorbis_enc_context { int channels; int sample_rate; int log2_blocksize[2]; @@ -190,7 +191,7 @@ static int ready_codebook(vorbis_enc_codebook *cb) cb->pow2[i] += cb->dimensions[i * cb->ndimensions + j] * cb->dimensions[i * cb->ndimensions + j]; div *= vals; } - cb->pow2[i] /= 2.; + cb->pow2[i] /= 2.0; } } return 0; @@ -729,7 +730,7 @@ static void floor_fit(vorbis_enc_context *venc, vorbis_enc_floor *fc, { int range = 255 / fc->multiplier + 1; int i; - float tot_average = 0.; + float tot_average = 0.0; float averages[MAX_FLOOR_VALUES]; for (i = 0; i < fc->values; i++) { averages[i] = get_floor_average(fc, coeffs, i); @@ -882,7 +883,7 @@ static int residue_encode(vorbis_enc_context *venc, vorbis_enc_residue *rc, assert(rc->type == 2); assert(real_ch == 2); for (p = 0; p < partitions; p++) { - float max1 = 0., max2 = 0.; + float max1 = 0.0, max2 = 0.0; int s = rc->begin + p * psize; for (k = s; k < s + psize; k += 2) { max1 = FFMAX(max1, fabs(coeffs[ k / real_ch])); @@ -969,7 +970,7 @@ static int apply_window_and_mdct(vorbis_enc_context *venc, int i, channel; const float * win = venc->win[0]; int window_len = 1 << (venc->log2_blocksize[0] - 1); - float n = (float)(1 << venc->log2_blocksize[0]) / 4.; + float n = (float)(1 << venc->log2_blocksize[0]) / 4.0; // FIXME use dsp if (!venc->have_saved && !samples) @@ -1090,11 +1091,12 @@ static int vorbis_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, avpkt->size = put_bits_count(&pb) >> 3; avpkt->duration = ff_samples_to_time_base(avctx, avctx->frame_size); - if (frame) + if (frame) { if (frame->pts != AV_NOPTS_VALUE) avpkt->pts = ff_samples_to_time_base(avctx, frame->pts); - else + } else { avpkt->pts = venc->next_pts; + } if (avpkt->pts != AV_NOPTS_VALUE) venc->next_pts = avpkt->pts + avpkt->duration; @@ -1157,9 +1159,6 @@ static av_cold int vorbis_encode_close(AVCodecContext *avctx) ff_mdct_end(&venc->mdct[0]); ff_mdct_end(&venc->mdct[1]); -#if FF_API_OLD_ENCODE_AUDIO - av_freep(&avctx->coded_frame); -#endif av_freep(&avctx->extradata); return 0 ; @@ -1191,14 +1190,6 @@ static av_cold int vorbis_encode_init(AVCodecContext *avctx) avctx->frame_size = 1 << (venc->log2_blocksize[0] - 1); -#if FF_API_OLD_ENCODE_AUDIO - avctx->coded_frame = avcodec_alloc_frame(); - if (!avctx->coded_frame) { - ret = AVERROR(ENOMEM); - goto error; - } -#endif - return 0; error: vorbis_encode_close(avctx); @@ -1207,6 +1198,7 @@ error: AVCodec ff_vorbis_encoder = { .name = "vorbis", + .long_name = NULL_IF_CONFIG_SMALL("Vorbis"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_VORBIS, .priv_data_size = sizeof(vorbis_enc_context), @@ -1216,5 +1208,4 @@ AVCodec ff_vorbis_encoder = { .capabilities = CODEC_CAP_DELAY | CODEC_CAP_EXPERIMENTAL, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, - .long_name = NULL_IF_CONFIG_SMALL("Vorbis"), };