Mercurial > libavcodec.hg
comparison vorbis_enc.c @ 10329:5462710f17ee libavcodec
Do not needlessly add 7 to put_buts_count before dividing by 8,
flush_put_bits ensures it is divisible 8.
author | reimar |
---|---|
date | Wed, 30 Sep 2009 20:47:59 +0000 |
parents | b10c3bc8ea3e |
children | 2b8a327189cd |
comparison
equal
deleted
inserted
replaced
10328:d4c97368f3e4 | 10329:5462710f17ee |
---|---|
540 put_bits(&pb, 4, venc->log2_blocksize[0]); | 540 put_bits(&pb, 4, venc->log2_blocksize[0]); |
541 put_bits(&pb, 4, venc->log2_blocksize[1]); | 541 put_bits(&pb, 4, venc->log2_blocksize[1]); |
542 put_bits(&pb, 1, 1); // framing | 542 put_bits(&pb, 1, 1); // framing |
543 | 543 |
544 flush_put_bits(&pb); | 544 flush_put_bits(&pb); |
545 hlens[0] = (put_bits_count(&pb) + 7) / 8; | 545 hlens[0] = put_bits_count(&pb) >> 3; |
546 buffer_len -= hlens[0]; | 546 buffer_len -= hlens[0]; |
547 p += hlens[0]; | 547 p += hlens[0]; |
548 | 548 |
549 // comment header | 549 // comment header |
550 init_put_bits(&pb, p, buffer_len); | 550 init_put_bits(&pb, p, buffer_len); |
553 put_bits(&pb, 32, 0); // vendor length TODO | 553 put_bits(&pb, 32, 0); // vendor length TODO |
554 put_bits(&pb, 32, 0); // amount of comments | 554 put_bits(&pb, 32, 0); // amount of comments |
555 put_bits(&pb, 1, 1); // framing | 555 put_bits(&pb, 1, 1); // framing |
556 | 556 |
557 flush_put_bits(&pb); | 557 flush_put_bits(&pb); |
558 hlens[1] = (put_bits_count(&pb) + 7) / 8; | 558 hlens[1] = put_bits_count(&pb) >> 3; |
559 buffer_len -= hlens[1]; | 559 buffer_len -= hlens[1]; |
560 p += hlens[1]; | 560 p += hlens[1]; |
561 | 561 |
562 // setup header | 562 // setup header |
563 init_put_bits(&pb, p, buffer_len); | 563 init_put_bits(&pb, p, buffer_len); |
626 } | 626 } |
627 | 627 |
628 put_bits(&pb, 1, 1); // framing | 628 put_bits(&pb, 1, 1); // framing |
629 | 629 |
630 flush_put_bits(&pb); | 630 flush_put_bits(&pb); |
631 hlens[2] = (put_bits_count(&pb) + 7) / 8; | 631 hlens[2] = put_bits_count(&pb) >> 3; |
632 | 632 |
633 len = hlens[0] + hlens[1] + hlens[2]; | 633 len = hlens[0] + hlens[1] + hlens[2]; |
634 p = *out = av_mallocz(64 + len + len/255); | 634 p = *out = av_mallocz(64 + len + len/255); |
635 | 635 |
636 *p++ = 2; | 636 *p++ = 2; |
1021 &pb, venc->coeffs, samples, venc->channels); | 1021 &pb, venc->coeffs, samples, venc->channels); |
1022 | 1022 |
1023 avccontext->coded_frame->pts = venc->sample_count; | 1023 avccontext->coded_frame->pts = venc->sample_count; |
1024 venc->sample_count += avccontext->frame_size; | 1024 venc->sample_count += avccontext->frame_size; |
1025 flush_put_bits(&pb); | 1025 flush_put_bits(&pb); |
1026 return (put_bits_count(&pb) + 7) / 8; | 1026 return put_bits_count(&pb) >> 3; |
1027 } | 1027 } |
1028 | 1028 |
1029 | 1029 |
1030 static av_cold int vorbis_encode_close(AVCodecContext *avccontext) | 1030 static av_cold int vorbis_encode_close(AVCodecContext *avccontext) |
1031 { | 1031 { |