Original Commit: r11 | ods15 | 2006-09-17 19:41:28 +0300 (Sun, 17 Sep 2006) | 4 lines
authorOded Shimon <ods15@ods15.dyndns.org>
Mon, 2 Oct 2006 05:55:30 +0000 (05:55 +0000)
committerOded Shimon <ods15@ods15.dyndns.org>
Mon, 2 Oct 2006 05:55:30 +0000 (05:55 +0000)
modes header syntax

that's the last of the headers! woo

Originally committed as revision 6422 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/vorbis_enc.c

index 50c3c2b..1793b55 100644 (file)
@@ -86,6 +86,11 @@ typedef struct {
     int * residue;
 } mapping_t;
 
+typedef struct {
+    int blockflag;
+    int mapping;
+} vorbis_mode_t;
+
 typedef struct {
     int channels;
     int sample_rate;
@@ -102,6 +107,9 @@ typedef struct {
 
     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 @@ static int put_main_header(venc_context_t * venc, uint8_t ** out) {
         }
     }
 
+    // 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;