[vlc-commits] opus_header: remove dependency on ogg

Rafaël Carré git at videolan.org
Fri Jun 6 03:56:32 CEST 2014


vlc | branch: master | Rafaël Carré <funman at videolan.org> | Tue Jun  3 07:54:21 2014 +0200| [313e7a26b4bab30c766ca599479817ee34f96091] | committer: Rafaël Carré

opus_header: remove dependency on ogg

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=313e7a26b4bab30c766ca599479817ee34f96091
---

 modules/codec/opus_header.c |   50 ++++++++++++++++++-------------------------
 modules/codec/opus_header.h |    3 +--
 2 files changed, 22 insertions(+), 31 deletions(-)

diff --git a/modules/codec/opus_header.c b/modules/codec/opus_header.c
index 0c31af2..513c7c2 100644
--- a/modules/codec/opus_header.c
+++ b/modules/codec/opus_header.c
@@ -74,7 +74,7 @@ typedef struct {
     int pos;
 } ROPacket;
 
-static int write_uint32(Packet *p, ogg_uint32_t val)
+static int write_uint32(Packet *p, uint32_t val)
 {
     if (p->pos>p->maxlen-4)
         return 0;
@@ -86,7 +86,7 @@ static int write_uint32(Packet *p, ogg_uint32_t val)
     return 1;
 }
 
-static int write_uint16(Packet *p, ogg_uint16_t val)
+static int write_uint16(Packet *p, uint16_t val)
 {
     if (p->pos>p->maxlen-2)
         return 0;
@@ -105,24 +105,24 @@ static int write_chars(Packet *p, const unsigned char *str, int nb_chars)
     return 1;
 }
 
-static int read_uint32(ROPacket *p, ogg_uint32_t *val)
+static int read_uint32(ROPacket *p, uint32_t *val)
 {
     if (p->pos>p->maxlen-4)
         return 0;
-    *val =  (ogg_uint32_t)p->data[p->pos  ];
-    *val |= (ogg_uint32_t)p->data[p->pos+1]<< 8;
-    *val |= (ogg_uint32_t)p->data[p->pos+2]<<16;
-    *val |= (ogg_uint32_t)p->data[p->pos+3]<<24;
+    *val =  (uint32_t)p->data[p->pos  ];
+    *val |= (uint32_t)p->data[p->pos+1]<< 8;
+    *val |= (uint32_t)p->data[p->pos+2]<<16;
+    *val |= (uint32_t)p->data[p->pos+3]<<24;
     p->pos += 4;
     return 1;
 }
 
-static int read_uint16(ROPacket *p, ogg_uint16_t *val)
+static int read_uint16(ROPacket *p, uint16_t *val)
 {
     if (p->pos>p->maxlen-2)
         return 0;
-    *val =  (ogg_uint16_t)p->data[p->pos  ];
-    *val |= (ogg_uint16_t)p->data[p->pos+1]<<8;
+    *val =  (uint16_t)p->data[p->pos  ];
+    *val |= (uint16_t)p->data[p->pos+1]<<8;
     p->pos += 2;
     return 1;
 }
@@ -141,7 +141,7 @@ int opus_header_parse(const unsigned char *packet, int len, OpusHeader *h)
     char str[9];
     ROPacket p;
     unsigned char ch;
-    ogg_uint16_t shortval;
+    uint16_t shortval;
 
     p.data = packet;
     p.maxlen = len;
@@ -372,13 +372,12 @@ int opus_write_header(uint8_t **p_extra, int *i_extra, OpusHeader *header)
     unsigned char header_data[100];
     const int packet_size = opus_header_to_packet(header, header_data,
                                                   sizeof(header_data));
-    ogg_packet headers[2];
-    headers[0].packet = header_data;
-    headers[0].bytes = packet_size;
-    headers[0].b_o_s = 1;
-    headers[0].e_o_s = 0;
-    headers[0].granulepos = 0;
-    headers[0].packetno = 0;
+
+    unsigned char *data[2];
+    size_t size[2];
+
+    data[0] = header_data;
+    size[0] = packet_size;
 
     size_t comments_length;
     char *comments = comment_init(&comments_length);
@@ -397,22 +396,15 @@ int opus_write_header(uint8_t **p_extra, int *i_extra, OpusHeader *header)
         return 1;
     }
 
-    headers[1].packet = (unsigned char *) comments;
-    headers[1].bytes = comments_length;
-    headers[1].b_o_s = 0;
-    headers[1].e_o_s = 0;
-    headers[1].granulepos = 0;
-    headers[1].packetno = 1;
+    data[1] = (unsigned char *) comments;
+    size[1] = comments_length;
 
-    for (unsigned i = 0; i < ARRAY_SIZE(headers); ++i)
-    {
-        if (xiph_AppendHeaders(i_extra, (void **) p_extra,
-                               headers[i].bytes, headers[i].packet))
+    for (unsigned i = 0; i < ARRAY_SIZE(data); ++i)
+        if (xiph_AppendHeaders(i_extra, (void **) p_extra, size[i], data[i]))
         {
             *i_extra = 0;
             *p_extra = NULL;
         }
-    }
 
     return 0;
 }
diff --git a/modules/codec/opus_header.h b/modules/codec/opus_header.h
index ed53055..71c7884 100644
--- a/modules/codec/opus_header.h
+++ b/modules/codec/opus_header.h
@@ -28,14 +28,13 @@
 #ifndef OPUS_HEADER_H
 #define OPUS_HEADER_H
 
-#include <ogg/ogg.h>
 #include <stdint.h>
 
 typedef struct {
     int version;
     int channels; /* Number of channels: 1..255 */
     int preskip;
-    ogg_uint32_t input_sample_rate;
+    uint32_t input_sample_rate;
     int gain; /* in dB S7.8 should be zero whenever possible */
     int channel_mapping;
     /* The rest is only used if channel_mapping != 0 */



More information about the vlc-commits mailing list