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 {