This simplifies the following eac3-in-wav patch.tags/n2.2-rc1
| @@ -2247,6 +2247,7 @@ wav_demuxer_select="riffdec" | |||||
| wav_muxer_select="riffenc" | wav_muxer_select="riffenc" | ||||
| webm_muxer_select="riffenc" | webm_muxer_select="riffenc" | ||||
| wtv_demuxer_select="riffdec" | wtv_demuxer_select="riffdec" | ||||
| wtv_muxer_select="riffenc" | |||||
| xmv_demuxer_select="riffdec" | xmv_demuxer_select="riffdec" | ||||
| xwma_demuxer_select="riffdec" | xwma_demuxer_select="riffdec" | ||||
| @@ -189,6 +189,4 @@ extern const AVMetadataConv ff_asf_metadata_conv[]; | |||||
| extern AVInputFormat ff_asf_demuxer; | extern AVInputFormat ff_asf_demuxer; | ||||
| void ff_put_guid(AVIOContext *s, const ff_asf_guid *g); | |||||
| #endif /* AVFORMAT_ASF_H */ | #endif /* AVFORMAT_ASF_H */ | ||||
| @@ -223,12 +223,6 @@ static const AVCodecTag codec_asf_bmp_tags[] = { | |||||
| #define PREROLL_TIME 3100 | #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) | static void put_str16(AVIOContext *s, const char *tag) | ||||
| { | { | ||||
| int len; | int len; | ||||
| @@ -456,3 +456,11 @@ const struct AVCodecTag *avformat_get_riff_audio_tags(void) | |||||
| { | { | ||||
| return ff_codec_wav_tags; | 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 } | |||||
| }; | |||||
| @@ -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_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); | enum AVCodecID ff_codec_guid_get_id(const AVCodecGuid *guids, ff_asf_guid guid); | ||||
| @@ -29,14 +29,6 @@ | |||||
| #include "avio_internal.h" | #include "avio_internal.h" | ||||
| #include "riff.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) | void ff_get_guid(AVIOContext *s, ff_asf_guid *g) | ||||
| { | { | ||||
| av_assert0(sizeof(*g) == 16); //compiler will optimize this out | av_assert0(sizeof(*g) == 16); //compiler will optimize this out | ||||
| @@ -312,3 +312,19 @@ void ff_riff_write_info(AVFormatContext *s) | |||||
| ff_riff_write_info_tag(s->pb, t->key, t->value); | ff_riff_write_info_tag(s->pb, t->key, t->value); | ||||
| ff_end_tag(pb, list_pos); | 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; | |||||
| } | |||||
| @@ -31,7 +31,6 @@ | |||||
| #include "avio_internal.h" | #include "avio_internal.h" | ||||
| #include "internal.h" | #include "internal.h" | ||||
| #include "wtv.h" | #include "wtv.h" | ||||
| #include "asf.h" | |||||
| #define WTV_BIGSECTOR_SIZE (1 << WTV_BIGSECTOR_BITS) | #define WTV_BIGSECTOR_SIZE (1 << WTV_BIGSECTOR_BITS) | ||||
| #define INDEX_BASE 0x2 | #define INDEX_BASE 0x2 | ||||
| @@ -130,16 +129,6 @@ typedef struct { | |||||
| #define write_pad(pb, size) ffio_fill(pb, 0, size) | #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 | * Write chunk header. If header chunk (0x80000000 set) then add to list of header chunks | ||||
| */ | */ | ||||