]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/vorbisenc.c
DirectDraw Surface image decoder
[ffmpeg] / libavcodec / vorbisenc.c
index 16f4d65acc002f7b84c88853b2abd3ffcd577ad6..12a97bc058f6497e0d1c332299f7b6ad015bf1d9 100644 (file)
  */
 
 #include <float.h>
+
 #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 <assert.h>
 
-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"),
 };