Mercurial > libavcodec.hg
comparison vorbis_enc.c @ 3864:df84b5d1a8c2 libavcodec
Original Commit: r64 | ods15 | 2006-09-25 18:39:30 +0300 (Mon, 25 Sep 2006) | 2 lines
some fixes to floor
author | ods15 |
---|---|
date | Mon, 02 Oct 2006 06:07:55 +0000 |
parents | 2c8d1cadd86e |
children | 04d496813135 |
comparison
equal
deleted
inserted
replaced
3863:2c8d1cadd86e | 3864:df84b5d1a8c2 |
---|---|
715 int lowroom = predicted; | 715 int lowroom = predicted; |
716 int room = FFMIN(highroom, lowroom); | 716 int room = FFMIN(highroom, lowroom); |
717 if (predicted == posts[i]) { | 717 if (predicted == posts[i]) { |
718 coded[i] = 0; // must be used later as flag! | 718 coded[i] = 0; // must be used later as flag! |
719 continue; | 719 continue; |
720 } else { | |
721 if (!coded[fc->list[i].low]) coded[fc->list[i].low] = -1; | |
722 if (!coded[fc->list[i].high]) coded[fc->list[i].high] = -1; | |
720 } | 723 } |
721 if (posts[i] > predicted) { | 724 if (posts[i] > predicted) { |
722 if (posts[i] - predicted > room) coded[i] = posts[i] - predicted + lowroom; | 725 if (posts[i] - predicted > room) coded[i] = posts[i] - predicted + lowroom; |
723 else coded[i] = (posts[i] - predicted) << 1; | 726 else coded[i] = (posts[i] - predicted) << 1; |
724 } else { | 727 } else { |
725 if (predicted - posts[i] > room) coded[i] = predicted - posts[i] + highroom - 1; | 728 if (predicted - posts[i] > room) coded[i] = predicted - posts[i] + highroom - 1; |
726 else coded[i] = ((predicted - posts[i]) << 1) + 1; | 729 else coded[i] = ((predicted - posts[i]) << 1) - 1; |
727 } | 730 } |
728 } | 731 } |
729 | 732 |
730 counter = 2; | 733 counter = 2; |
731 for (i = 0; i < fc->partitions; i++) { | 734 for (i = 0; i < fc->partitions; i++) { |
733 codebook_t * book = &venc->codebooks[c->books[0]]; | 736 codebook_t * book = &venc->codebooks[c->books[0]]; |
734 int k; | 737 int k; |
735 assert(!c->subclass); | 738 assert(!c->subclass); |
736 for (k = 0; k < c->dim; k++) { | 739 for (k = 0; k < c->dim; k++) { |
737 int entry = coded[counter++]; | 740 int entry = coded[counter++]; |
738 if (entry >= book->nentries || entry < 0) av_log(NULL, AV_LOG_ERROR, "%d %d %d %d \n", entry, book->nentries, counter, fc->values); | 741 if (entry == -1) entry = 0; |
739 assert(entry < book->nentries); | 742 assert(entry < book->nentries); |
740 assert(entry >= 0); | 743 assert(entry >= 0); |
741 put_bits(pb, book->entries[entry].len, book->entries[entry].codeword); | 744 put_bits(pb, book->entries[entry].len, book->entries[entry].codeword); |
742 } | 745 } |
743 } | 746 } |