Mercurial > libavcodec.hg
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]; |