Original Commit: r23 | ods15 | 2006-09-22 13:55:48 +0300 (Fri, 22 Sep 2006) | 2 lines
[ffmpeg.git] / libavcodec / vorbis_enc.c
index 21a93a3..19aa4fb 100644 (file)
@@ -165,6 +165,8 @@ static void ready_codebook(codebook_t * cb) {
 static void create_vorbis_context(venc_context_t * venc, AVCodecContext * avccontext) {
     codebook_t * cb;
     floor_t * fc;
+    residue_t * rc;
+    mapping_t * mc;
     int i, book;
 
     venc->channels = avccontext->channels;
@@ -218,8 +220,9 @@ static void create_vorbis_context(venc_context_t * venc, AVCodecContext * avccon
 
     venc->nfloors = 1;
     venc->floors = av_malloc(sizeof(floor_t) * venc->nfloors);
-    fc = &venc->floors[0];
 
+    // just 1 floor
+    fc = &venc->floors[0];
     fc->partitions = 1;
     fc->partition_to_class = av_malloc(sizeof(int) * fc->partitions);
     for (i = 0; i < fc->partitions; i++) fc->partition_to_class = 0;
@@ -246,6 +249,38 @@ static void create_vorbis_context(venc_context_t * venc, AVCodecContext * avccon
     fc->list[0].x = 0;
     fc->list[1].x = 1 << fc->rangebits;
     for (i = 2; i < fc->values; i++) fc->list[i].x = i * 5;
+
+    venc->nresidues = 1;
+    venc->residues = av_malloc(sizeof(residue_t) * venc->nresidues);
+
+    // single residue
+    rc = &venc->residues[0];
+    rc->type = 0;
+    rc->begin = 0;
+    rc->end = 1 << venc->blocksize[0];
+    rc->partition_size = 64;
+    rc->classifications = 1;
+    rc->classbook = 1;
+    rc->books = av_malloc(sizeof(int[8]) * rc->classifications);
+    for (i = 0; i < 8; i++) rc->books[0][i] = 2 + i;
+
+    venc->nmappings = 1;
+    venc->mappings = av_malloc(sizeof(mapping_t) * venc->nmappings);
+
+    // single mapping
+    mc = &venc->mappings[0];
+    mc->submaps = 1;
+    mc->mux = av_malloc(sizeof(int) * venc->channels);
+    for (i = 0; i < venc->channels; i++) mc->mux[i] = 0;
+    mc->floor = av_malloc(sizeof(int) * mc->submaps);
+    mc->residue = av_malloc(sizeof(int) * mc->submaps);
+    for (i = 0; i < mc->submaps; i++) {
+        mc->floor[i] = 0;
+        mc->residue[i] = 0;
+    }
+
+    venc->nmodes = 1;
+    venc->modes = av_malloc(sizeof(vorbis_mode_t) * venc->nmodes);
 }
 
 static inline int ilog(unsigned int a) {