comparison vorbis_enc.c @ 3813:95b70f8bc29e libavcodec

Original Commit: r7 | ods15 | 2006-09-17 08:50:47 +0300 (Sun, 17 Sep 2006) | 2 lines skeleton for residue/floor/mappings header
author ods15
date Mon, 02 Oct 2006 05:55:22 +0000
parents 52ff3a5d161e
children 464eca766731
comparison
equal deleted inserted replaced
3812:52ff3a5d161e 3813:95b70f8bc29e
50 //float * dimentions; 50 //float * dimentions;
51 int * quantlist; 51 int * quantlist;
52 } codebook_t; 52 } codebook_t;
53 53
54 typedef struct { 54 typedef struct {
55 } floor_t;
56
57 typedef struct {
58 } residue_t;
59
60 typedef struct {
61 } mapping_t;
62
63 typedef struct {
55 int channels; 64 int channels;
56 int sample_rate; 65 int sample_rate;
57 int blocksize[2]; 66 int blocksize[2];
58 67
59 int ncodebooks; 68 int ncodebooks;
60 codebook_t * codebooks; 69 codebook_t * codebooks;
70
71 int nfloors;
72 floor_t * floors;
73
74 int nresidues;
75 residue_t * residues;
76
77 int nmappings;
78 mapping_t * mappings;
61 } venc_context_t; 79 } venc_context_t;
62 80
63 static inline int ilog(unsigned int a) { 81 static inline int ilog(unsigned int a) {
64 int i; 82 int i;
65 for (i = 0; a >> i; i++); 83 for (i = 0; a >> i; i++);
134 152
135 for (i = 0; i < tmp; i++) put_bits(pb, bits, cb->quantlist[i]); 153 for (i = 0; i < tmp; i++) put_bits(pb, bits, cb->quantlist[i]);
136 } 154 }
137 } 155 }
138 156
157 static void put_floor_header(PutBitContext * pb, floor_t * fl) {
158 }
159
160 static void put_residue_header(PutBitContext * pb, residue_t * r) {
161 }
162
139 static int put_main_header(venc_context_t * venc, uint8_t ** out) { 163 static int put_main_header(venc_context_t * venc, uint8_t ** out) {
140 int i; 164 int i;
141 PutBitContext pb; 165 PutBitContext pb;
142 uint8_t buffer[50000] = {0}, * p = buffer; 166 uint8_t buffer[50000] = {0}, * p = buffer;
143 int buffer_len = sizeof buffer; 167 int buffer_len = sizeof buffer;
182 206
183 // codebooks 207 // codebooks
184 put_bits(&pb, 8, venc->ncodebooks - 1); 208 put_bits(&pb, 8, venc->ncodebooks - 1);
185 for (i = 0; i < venc->ncodebooks; i++) put_codebook_header(&pb, &venc->codebooks[0]); 209 for (i = 0; i < venc->ncodebooks; i++) put_codebook_header(&pb, &venc->codebooks[0]);
186 210
211 // time domain, reserved, zero
212 put_bits(&pb, 6, 0);
213 put_bits(&pb, 16, 0);
214
215 // floors
216 put_bits(&pb, 6, venc->nfloors - 1);
217 for (i = 0; i < venc->nfloors; i++) put_floor_header(&pb, &venc->floors[0]);
218
219 // residues
220 put_bits(&pb, 6, venc->nresidues - 1);
221 for (i = 0; i < venc->nresidues; i++) put_residue_header(&pb, &venc->residues[0]);
222
223 // mappings
224 put_bits(&pb, 6, venc->nmappings - 1);
225 for (i = 0; i < venc->nmappings; i++) {
226 }
187 227
188 flush_put_bits(&pb); 228 flush_put_bits(&pb);
189 hlens[2] = (put_bits_count(&pb) + 7) / 8; 229 hlens[2] = (put_bits_count(&pb) + 7) / 8;
190 230
191 len = hlens[0] + hlens[1] + hlens[2]; 231 len = hlens[0] + hlens[1] + hlens[2];