diff --git a/configure b/configure index 57faed5c79..0fbaa6a8ca 100755 --- a/configure +++ b/configure @@ -2247,6 +2247,7 @@ wav_demuxer_select="riffdec" wav_muxer_select="riffenc" webm_muxer_select="riffenc" wtv_demuxer_select="riffdec" +wtv_muxer_select="riffenc" xmv_demuxer_select="riffdec" xwma_demuxer_select="riffdec" diff --git a/libavformat/asf.h b/libavformat/asf.h index acad64dfd7..0c9598a8d8 100644 --- a/libavformat/asf.h +++ b/libavformat/asf.h @@ -189,6 +189,4 @@ extern const AVMetadataConv ff_asf_metadata_conv[]; extern AVInputFormat ff_asf_demuxer; -void ff_put_guid(AVIOContext *s, const ff_asf_guid *g); - #endif /* AVFORMAT_ASF_H */ diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c index 8e343b3fe0..b456730229 100644 --- a/libavformat/asfenc.c +++ b/libavformat/asfenc.c @@ -223,12 +223,6 @@ static const AVCodecTag codec_asf_bmp_tags[] = { #define PREROLL_TIME 3100 -void ff_put_guid(AVIOContext *s, const ff_asf_guid *g) -{ - av_assert0(sizeof(*g) == 16); - avio_write(s, *g, sizeof(*g)); -} - static void put_str16(AVIOContext *s, const char *tag) { int len; diff --git a/libavformat/riff.c b/libavformat/riff.c index 20030211c5..671baa6138 100644 --- a/libavformat/riff.c +++ b/libavformat/riff.c @@ -456,3 +456,11 @@ const struct AVCodecTag *avformat_get_riff_audio_tags(void) { return ff_codec_wav_tags; } + +const AVCodecGuid ff_codec_wav_guids[] = { + { AV_CODEC_ID_AC3, { 0x2C, 0x80, 0x6D, 0xE0, 0x46, 0xDB, 0xCF, 0x11, 0xB4, 0xD1, 0x00, 0x80, 0x5F, 0x6C, 0xBB, 0xEA } }, + { AV_CODEC_ID_ATRAC3P, { 0xBF, 0xAA, 0x23, 0xE9, 0x58, 0xCB, 0x71, 0x44, 0xA1, 0x19, 0xFF, 0xFA, 0x01, 0xE4, 0xCE, 0x62 } }, + { AV_CODEC_ID_EAC3, { 0xAF, 0x87, 0xFB, 0xA7, 0x02, 0x2D, 0xFB, 0x42, 0xA4, 0xD4, 0x05, 0xCD, 0x93, 0x84, 0x3B, 0xDD } }, + { AV_CODEC_ID_MP2, { 0x2B, 0x80, 0x6D, 0xE0, 0x46, 0xDB, 0xCF, 0x11, 0xB4, 0xD1, 0x00, 0x80, 0x5F, 0x6C, 0xBB, 0xEA } }, + { AV_CODEC_ID_NONE } +}; diff --git a/libavformat/riff.h b/libavformat/riff.h index ce078698c2..b59c6065a0 100644 --- a/libavformat/riff.h +++ b/libavformat/riff.h @@ -92,6 +92,8 @@ static av_always_inline int ff_guidcmp(const void *g1, const void *g2) } void ff_get_guid(AVIOContext *s, ff_asf_guid *g); +void ff_put_guid(AVIOContext *s, const ff_asf_guid *g); +const ff_asf_guid *get_codec_guid(enum AVCodecID id, const AVCodecGuid *av_guid); enum AVCodecID ff_codec_guid_get_id(const AVCodecGuid *guids, ff_asf_guid guid); diff --git a/libavformat/riffdec.c b/libavformat/riffdec.c index 559ca47df8..c1e9ec1532 100644 --- a/libavformat/riffdec.c +++ b/libavformat/riffdec.c @@ -29,14 +29,6 @@ #include "avio_internal.h" #include "riff.h" -const AVCodecGuid ff_codec_wav_guids[] = { - { AV_CODEC_ID_AC3, { 0x2C, 0x80, 0x6D, 0xE0, 0x46, 0xDB, 0xCF, 0x11, 0xB4, 0xD1, 0x00, 0x80, 0x5F, 0x6C, 0xBB, 0xEA } }, - { AV_CODEC_ID_ATRAC3P, { 0xBF, 0xAA, 0x23, 0xE9, 0x58, 0xCB, 0x71, 0x44, 0xA1, 0x19, 0xFF, 0xFA, 0x01, 0xE4, 0xCE, 0x62 } }, - { AV_CODEC_ID_EAC3, { 0xAF, 0x87, 0xFB, 0xA7, 0x02, 0x2D, 0xFB, 0x42, 0xA4, 0xD4, 0x05, 0xCD, 0x93, 0x84, 0x3B, 0xDD } }, - { AV_CODEC_ID_MP2, { 0x2B, 0x80, 0x6D, 0xE0, 0x46, 0xDB, 0xCF, 0x11, 0xB4, 0xD1, 0x00, 0x80, 0x5F, 0x6C, 0xBB, 0xEA } }, - { AV_CODEC_ID_NONE } -}; - void ff_get_guid(AVIOContext *s, ff_asf_guid *g) { av_assert0(sizeof(*g) == 16); //compiler will optimize this out diff --git a/libavformat/riffenc.c b/libavformat/riffenc.c index 7b4b7ddffe..7828610ea8 100644 --- a/libavformat/riffenc.c +++ b/libavformat/riffenc.c @@ -312,3 +312,19 @@ void ff_riff_write_info(AVFormatContext *s) ff_riff_write_info_tag(s->pb, t->key, t->value); ff_end_tag(pb, list_pos); } + +void ff_put_guid(AVIOContext *s, const ff_asf_guid *g) +{ + av_assert0(sizeof(*g) == 16); + avio_write(s, *g, sizeof(*g)); +} + +const ff_asf_guid *get_codec_guid(enum AVCodecID id, const AVCodecGuid *av_guid) +{ + int i; + for (i = 0; av_guid[i].id != AV_CODEC_ID_NONE; i++) { + if (id == av_guid[i].id) + return &(av_guid[i].guid); + } + return NULL; +} diff --git a/libavformat/wtvenc.c b/libavformat/wtvenc.c index 5e3b9b9874..b82ff0b7a2 100644 --- a/libavformat/wtvenc.c +++ b/libavformat/wtvenc.c @@ -31,7 +31,6 @@ #include "avio_internal.h" #include "internal.h" #include "wtv.h" -#include "asf.h" #define WTV_BIGSECTOR_SIZE (1 << WTV_BIGSECTOR_BITS) #define INDEX_BASE 0x2 @@ -130,16 +129,6 @@ typedef struct { #define write_pad(pb, size) ffio_fill(pb, 0, size) -static const ff_asf_guid *get_codec_guid(enum AVCodecID id, const AVCodecGuid *av_guid) -{ - int i; - for (i = 0; av_guid[i].id != AV_CODEC_ID_NONE; i++) { - if (id == av_guid[i].id) - return &(av_guid[i].guid); - } - return NULL; -} - /** * Write chunk header. If header chunk (0x80000000 set) then add to list of header chunks */