[SCM] libav/experimental: Original Commit: r8 | ods15 | 2006-09-17 09:43:38 +0300 (Sun, 17 Sep 2006) | 2 lines

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:51:20 UTC 2013


The following commit has been merged in the experimental branch:
commit d2d5c89d344a35a4f27fab8c7e8c039bfcb9b4e2
Author: Oded Shimon <ods15 at ods15.dyndns.org>
Date:   Mon Oct 2 05:55:24 2006 +0000

    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

diff --git a/libavcodec/vorbis_enc.c b/libavcodec/vorbis_enc.c
index 3a9d586..6d82a44 100644
--- a/libavcodec/vorbis_enc.c
+++ b/libavcodec/vorbis_enc.c
@@ -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) {

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list