Mercurial > libavcodec.hg
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) { |