} mapping_t;
typedef struct {
+ int blockflag;
+ int mapping;
+} vorbis_mode_t;
+
+typedef struct {
int channels;
int sample_rate;
int blocksize[2];
int nmappings;
mapping_t * mappings;
+
+ int nmodes;
+ vorbis_mode_t * modes;
} venc_context_t;
static inline int ilog(unsigned int a) {
}
}
+ // 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;