Original Commit: r8 | ods15 | 2006-09-17 09:43:38 +0300 (Sun, 17 Sep 2006) | 2 lines

floor header syntax

Originally committed as revision 6419 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Oded Shimon 2006-10-02 05:55:24 +00:00
parent d52480b40d
commit d2d5c89d34
1 changed files with 42 additions and 2 deletions

View File

@ -52,6 +52,21 @@ typedef struct {
} codebook_t;
typedef struct {
int dim;
int subclass;
int masterbook;
int * books;
} floor_class_t;
typedef struct {
int partitions;
int * partition_to_class;
int nclasses;
floor_class_t * classes;
int multiplier;
int rangebits;
int values;
struct { int x; } * list;
} floor_t;
typedef struct {
@ -154,10 +169,35 @@ static void put_codebook_header(PutBitContext * pb, codebook_t * cb) {
}
}
static void put_floor_header(PutBitContext * pb, floor_t * fl) {
static void put_floor_header(PutBitContext * pb, floor_t * fc) {
int i;
put_bits(pb, 16, 1); // type, only floor1 is supported
put_bits(pb, 5, fc->partitions);
for (i = 0; i < fc->partitions; i++) put_bits(pb, 4, fc->partition_to_class[i]);
for (i = 0; i < fc->nclasses; i++) {
int j, books;
put_bits(pb, 3, fc->classes[i].dim - 1);
put_bits(pb, 2, fc->classes[i].subclass);
if (fc->classes[i].subclass) put_bits(pb, 8, fc->classes[i].masterbook);
books = (1 << fc->classes[i].subclass);
for (j = 0; j < books; j++) put_bits(pb, 8, fc->classes[i].books[j] + 1);
}
put_bits(pb, 2, fc->multiplier - 1);
put_bits(pb, 4, fc->rangebits);
for (i = 2; i < fc->values; i++) put_bits(pb, fc->rangebits, fc->list[i].x);
}
static void put_residue_header(PutBitContext * pb, residue_t * r) {
static void put_residue_header(PutBitContext * pb, residue_t * rc) {
}
static int put_main_header(venc_context_t * venc, uint8_t ** out) {