# HG changeset patch # User ods15 # Date 1159768528 0 # Node ID 6eba53afa0b0fc9e01668c4f41f4c7987abd632c # Parent 3fa081422f7836e6136e42601ed5e5c31762cf8a Original Commit: r10 | ods15 | 2006-09-17 19:37:17 +0300 (Sun, 17 Sep 2006) | 2 lines mappings header syntax diff -r 3fa081422f78 -r 6eba53afa0b0 vorbis_enc.c --- a/vorbis_enc.c Mon Oct 02 05:55:26 2006 +0000 +++ b/vorbis_enc.c Mon Oct 02 05:55:28 2006 +0000 @@ -80,6 +80,10 @@ } residue_t; typedef struct { + int submaps; + int * mux; + int * floor; + int * residue; } mapping_t; typedef struct { @@ -296,6 +300,24 @@ // mappings put_bits(&pb, 6, venc->nmappings - 1); for (i = 0; i < venc->nmappings; i++) { + mapping_t * mc = &venc->mappings[i]; + int j; + put_bits(&pb, 16, 0); // mapping type + + put_bits(&pb, 1, mc->submaps > 1); + if (mc->submaps > 1) put_bits(&pb, 4, mc->submaps - 1); + + put_bits(&pb, 1, 0); // channel coupling + + put_bits(&pb, 2, 0); // reserved + + if (mc->submaps > 1) for (j = 0; j < venc->channels; j++) put_bits(&pb, 4, mc->mux[j]); + + for (j = 0; j < mc->submaps; j++) { + put_bits(&pb, 8, 0); // reserved time configuration + put_bits(&pb, 8, mc->floor[j]); + put_bits(&pb, 8, mc->residue[j]); + } } flush_put_bits(&pb);