Mercurial > libavcodec.hg
changeset 3825:9983437a00a1 libavcodec
Original Commit: r19 | ods15 | 2006-09-22 12:54:18 +0300 (Fri, 22 Sep 2006) | 2 lines
floor generation
author | ods15 |
---|---|
date | Mon, 02 Oct 2006 05:55:47 +0000 |
parents | 61d312116e71 |
children | c583e895f980 |
files | vorbis_enc.c |
diffstat | 1 files changed, 31 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/vorbis_enc.c Mon Oct 02 05:55:45 2006 +0000 +++ b/vorbis_enc.c Mon Oct 02 05:55:47 2006 +0000 @@ -164,6 +164,7 @@ static void create_vorbis_context(venc_context_t * venc, AVCodecContext * avccontext) { codebook_t * cb; + floor_t * fc; int i, book; venc->channels = avccontext->channels; @@ -215,6 +216,36 @@ ready_codebook(cb); } + venc->nfloors = 1; + venc->floors = av_malloc(sizeof(floor_t) * venc->nfloors); + fc = &venc->floors[0]; + + fc->partitions = 1; + fc->partition_to_class = av_malloc(sizeof(int) * fc->partitions); + for (i = 0; i < fc->partitions; i++) fc->partition_to_class = 0; + fc->nclasses = 1; + fc->classes = av_malloc(sizeof(floor_class_t) * fc->nclasses); + for (i = 0; i < fc->nclasses; i++) { + floor_class_t * c = &fc->classes[i]; + int j, books; + c->dim = 1; + c->subclass = 0; + c->masterbook = 0; + books = (1 << c->subclass); + c->books = av_malloc(sizeof(int) * books); + for (j = 0; j < books; j++) c->books[j] = 0; + } + fc->multiplier = 1; + fc->rangebits = venc->blocksize[0]; + + fc->values = 2; + for (i = 0; i < fc->partitions; i++) + fc->values += fc->classes[fc->partition_to_class[i]].dim; + + fc->list = av_malloc(sizeof(*fc->list) * fc->values); + fc->list[0].x = 0; + fc->list[1].x = 1 << fc->rangebits; + for (i = 2; i < fc->values; i++) fc->list[i].x = i * 5; } static inline int ilog(unsigned int a) {