comparison flacenc.c @ 9448:f2835afa516a libavcodec

flacenc: write initial blocksize to STREAMINFO header instead of current blocksize.
author jbr
date Thu, 16 Apr 2009 02:28:49 +0000
parents c9fda17dc042
children 266bf83f634d
comparison
equal deleted inserted replaced
9447:d7554a5e3fd7 9448:f2835afa516a
81 typedef struct FlacEncodeContext { 81 typedef struct FlacEncodeContext {
82 PutBitContext pb; 82 PutBitContext pb;
83 int channels; 83 int channels;
84 int samplerate; 84 int samplerate;
85 int sr_code[2]; 85 int sr_code[2];
86 int max_blocksize;
86 int min_framesize; 87 int min_framesize;
87 int max_framesize; 88 int max_framesize;
88 int max_encoded_framesize; 89 int max_encoded_framesize;
89 uint32_t frame_count; 90 uint32_t frame_count;
90 uint64_t sample_count; 91 uint64_t sample_count;
105 106
106 memset(header, 0, FLAC_STREAMINFO_SIZE); 107 memset(header, 0, FLAC_STREAMINFO_SIZE);
107 init_put_bits(&pb, header, FLAC_STREAMINFO_SIZE); 108 init_put_bits(&pb, header, FLAC_STREAMINFO_SIZE);
108 109
109 /* streaminfo metadata block */ 110 /* streaminfo metadata block */
110 put_bits(&pb, 16, s->avctx->frame_size); 111 put_bits(&pb, 16, s->max_blocksize);
111 put_bits(&pb, 16, s->avctx->frame_size); 112 put_bits(&pb, 16, s->max_blocksize);
112 put_bits(&pb, 24, s->min_framesize); 113 put_bits(&pb, 24, s->min_framesize);
113 put_bits(&pb, 24, s->max_framesize); 114 put_bits(&pb, 24, s->max_framesize);
114 put_bits(&pb, 20, s->samplerate); 115 put_bits(&pb, 20, s->samplerate);
115 put_bits(&pb, 3, s->channels-1); 116 put_bits(&pb, 3, s->channels-1);
116 put_bits(&pb, 5, 15); /* bits per sample - 1 */ 117 put_bits(&pb, 5, 15); /* bits per sample - 1 */
324 return -1; 325 return -1;
325 } 326 }
326 } else { 327 } else {
327 s->avctx->frame_size = select_blocksize(s->samplerate, s->options.block_time_ms); 328 s->avctx->frame_size = select_blocksize(s->samplerate, s->options.block_time_ms);
328 } 329 }
330 s->max_blocksize = s->avctx->frame_size;
329 av_log(avctx, AV_LOG_DEBUG, " block size: %d\n", s->avctx->frame_size); 331 av_log(avctx, AV_LOG_DEBUG, " block size: %d\n", s->avctx->frame_size);
330 332
331 /* set LPC precision */ 333 /* set LPC precision */
332 if(avctx->lpc_coeff_precision > 0) { 334 if(avctx->lpc_coeff_precision > 0) {
333 if(avctx->lpc_coeff_precision > MAX_LPC_PRECISION) { 335 if(avctx->lpc_coeff_precision > MAX_LPC_PRECISION) {