changeset 3817:3ca15f0d4882 libavcodec

Original Commit: r11 | ods15 | 2006-09-17 19:41:28 +0300 (Sun, 17 Sep 2006) | 4 lines modes header syntax that's the last of the headers! woo
author ods15
date Mon, 02 Oct 2006 05:55:30 +0000
parents 6eba53afa0b0
children 6a737f2d852e
files vorbis_enc.c
diffstat 1 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/vorbis_enc.c	Mon Oct 02 05:55:28 2006 +0000
+++ b/vorbis_enc.c	Mon Oct 02 05:55:30 2006 +0000
@@ -87,6 +87,11 @@
 } mapping_t;
 
 typedef struct {
+    int blockflag;
+    int mapping;
+} vorbis_mode_t;
+
+typedef struct {
     int channels;
     int sample_rate;
     int blocksize[2];
@@ -102,6 +107,9 @@
 
     int nmappings;
     mapping_t * mappings;
+
+    int nmodes;
+    vorbis_mode_t * modes;
 } venc_context_t;
 
 static inline int ilog(unsigned int a) {
@@ -320,6 +328,15 @@
         }
     }
 
+    // modes
+    put_bits(&pb, 6, venc->nmodes - 1);
+    for (i = 0; i < venc->nmodes; i++) {
+        put_bits(&pb, 1, venc->modes[i].blockflag);
+        put_bits(&pb, 16, 0); // reserved window type
+        put_bits(&pb, 16, 0); // reserved transform type
+        put_bits(&pb, 8, venc->modes[i].mapping);
+    }
+
     flush_put_bits(&pb);
     hlens[2] = (put_bits_count(&pb) + 7) / 8;