vlc | branch: master | Rafaël Carré <[email protected]> | Tue Jun 3 07:55:30 2014 +0200| [4b1794ff0e0ff5f496fb034f38cadc7b15f5a775] | committer: Rafaël Carré
opus_header: remove dependency on libopus We might need to generate Opus headers without actually encoding anything > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4b1794ff0e0ff5f496fb034f38cadc7b15f5a775 --- modules/codec/opus.c | 2 +- modules/codec/opus_header.c | 14 +++++++------- modules/codec/opus_header.h | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/codec/opus.c b/modules/codec/opus.c index 9f9858a..c05e27e 100644 --- a/modules/codec/opus.c +++ b/modules/codec/opus.c @@ -641,7 +641,7 @@ static int OpenEncoder(vlc_object_t *p_this) /* Now that we have preskip, we can write the header to extradata */ if (opus_write_header((uint8_t **) &enc->fmt_out.p_extra, - &enc->fmt_out.i_extra, &header)) + &enc->fmt_out.i_extra, &header, opus_get_version_string())) { msg_Err(enc, "Failed to write header."); status = VLC_ENOMEM; diff --git a/modules/codec/opus_header.c b/modules/codec/opus_header.c index 513c7c2..101a33d 100644 --- a/modules/codec/opus_header.c +++ b/modules/codec/opus_header.c @@ -30,7 +30,6 @@ #endif #include "opus_header.h" -#include <opus.h> #include <string.h> #include <stdio.h> #include <stdlib.h> @@ -236,11 +235,12 @@ The comment header is decoded as follows: 7) done. */ -static char *comment_init(size_t *length) +static char *comment_init(size_t *length, const char *vendor) { /*The 'vendor' field should be the actual encoding library used.*/ - const char *vendor_string = opus_get_version_string(); - int vendor_length = strlen(vendor_string); + if (!vendor) + vendor = "unknown"; + int vendor_length = strlen(vendor); int user_comment_list_length = 0; int len = 8 + 4 + vendor_length + 4; @@ -250,7 +250,7 @@ static char *comment_init(size_t *length) memcpy(p, "OpusTags", 8); SetDWLE(p + 8, vendor_length); - memcpy(p + 12, vendor_string, vendor_length); + memcpy(p + 12, vendor, vendor_length); SetDWLE(p + 12 + vendor_length, user_comment_list_length); *length = len; @@ -367,7 +367,7 @@ static int opus_header_to_packet(const OpusHeader *h, unsigned char *packet, int return p.pos; } -int opus_write_header(uint8_t **p_extra, int *i_extra, OpusHeader *header) +int opus_write_header(uint8_t **p_extra, int *i_extra, OpusHeader *header, const char *vendor) { unsigned char header_data[100]; const int packet_size = opus_header_to_packet(header, header_data, @@ -380,7 +380,7 @@ int opus_write_header(uint8_t **p_extra, int *i_extra, OpusHeader *header) size[0] = packet_size; size_t comments_length; - char *comments = comment_init(&comments_length); + char *comments = comment_init(&comments_length, vendor); if (!comments) return 1; if (comment_add(&comments, &comments_length, "ENCODER=", diff --git a/modules/codec/opus_header.h b/modules/codec/opus_header.h index 71c7884..a4c1f16 100644 --- a/modules/codec/opus_header.h +++ b/modules/codec/opus_header.h @@ -45,6 +45,6 @@ typedef struct { int opus_header_parse(const unsigned char *header, int len, OpusHeader *h); int opus_prepare_header(unsigned channels, unsigned rate, OpusHeader *header); -int opus_write_header(uint8_t **p_extra, int *i_extra, OpusHeader *header); +int opus_write_header(uint8_t **p_extra, int *i_extra, OpusHeader *header, const char *vendor); #endif _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
