* commit 'b08569a23948db107e5e6175cd4c695427d5339d': lavf: Replace the ASF demuxer Conflicts: Changelog libavformat/asf.h libavformat/asfdec.c libavformat/version.h tests/ref/fate/wmv8-drm-nodec tests/ref/seek/lavf-asf The rewritten demuxer is placed in a new file, the current demuxer is left as default. Carl has tested both and the one working better is default. Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n2.8
| @@ -8,6 +8,7 @@ version <next>: | |||||
| - Hap decoder and encoder | - Hap decoder and encoder | ||||
| - DirectDraw Surface image/texture decoder | - DirectDraw Surface image/texture decoder | ||||
| - ssim filter | - ssim filter | ||||
| - rewritten ASF demuxer | |||||
| version 2.7: | version 2.7: | ||||
| @@ -2503,6 +2503,7 @@ nvenc_hevc_encoder_deps="nvenc" | |||||
| # demuxers / muxers | # demuxers / muxers | ||||
| ac3_demuxer_select="ac3_parser" | ac3_demuxer_select="ac3_parser" | ||||
| asf_demuxer_select="riffdec" | asf_demuxer_select="riffdec" | ||||
| asf_o_demuxer_select="riffdec" | |||||
| asf_muxer_select="riffenc" | asf_muxer_select="riffenc" | ||||
| asf_stream_muxer_select="asf_muxer" | asf_stream_muxer_select="asf_muxer" | ||||
| avi_demuxer_select="riffdec exif" | avi_demuxer_select="riffdec exif" | ||||
| @@ -84,6 +84,8 @@ OBJS-$(CONFIG_APNG_MUXER) += apngenc.o | |||||
| OBJS-$(CONFIG_AQTITLE_DEMUXER) += aqtitledec.o subtitles.o | OBJS-$(CONFIG_AQTITLE_DEMUXER) += aqtitledec.o subtitles.o | ||||
| OBJS-$(CONFIG_ASF_DEMUXER) += asfdec.o asf.o asfcrypt.o \ | OBJS-$(CONFIG_ASF_DEMUXER) += asfdec.o asf.o asfcrypt.o \ | ||||
| avlanguage.o | avlanguage.o | ||||
| OBJS-$(CONFIG_ASF_O_DEMUXER) += asfdec-o.o asf.o asfcrypt.o \ | |||||
| avlanguage.o | |||||
| OBJS-$(CONFIG_ASF_MUXER) += asfenc.o asf.o | OBJS-$(CONFIG_ASF_MUXER) += asfenc.o asf.o | ||||
| OBJS-$(CONFIG_ASS_DEMUXER) += assdec.o subtitles.o | OBJS-$(CONFIG_ASS_DEMUXER) += assdec.o subtitles.o | ||||
| OBJS-$(CONFIG_ASS_MUXER) += assenc.o | OBJS-$(CONFIG_ASS_MUXER) += assenc.o | ||||
| @@ -77,6 +77,7 @@ void av_register_all(void) | |||||
| REGISTER_MUXDEMUX(APNG, apng); | REGISTER_MUXDEMUX(APNG, apng); | ||||
| REGISTER_DEMUXER (AQTITLE, aqtitle); | REGISTER_DEMUXER (AQTITLE, aqtitle); | ||||
| REGISTER_MUXDEMUX(ASF, asf); | REGISTER_MUXDEMUX(ASF, asf); | ||||
| REGISTER_DEMUXER (ASF_O, asf_o); | |||||
| REGISTER_MUXDEMUX(ASS, ass); | REGISTER_MUXDEMUX(ASS, ass); | ||||
| REGISTER_MUXDEMUX(AST, ast); | REGISTER_MUXDEMUX(AST, ast); | ||||
| REGISTER_MUXER (ASF_STREAM, asf_stream); | REGISTER_MUXER (ASF_STREAM, asf_stream); | ||||
| @@ -28,38 +28,6 @@ | |||||
| #define PACKET_SIZE 3200 | #define PACKET_SIZE 3200 | ||||
| typedef struct ASFPayload { | |||||
| uint8_t type; | |||||
| uint16_t size; | |||||
| } ASFPayload; | |||||
| typedef struct ASFStream { | |||||
| int num; | |||||
| unsigned char seq; | |||||
| /* use for reading */ | |||||
| AVPacket pkt; | |||||
| int frag_offset; | |||||
| int packet_obj_size; | |||||
| int timestamp; | |||||
| int64_t duration; | |||||
| int skip_to_key; | |||||
| int pkt_clean; | |||||
| int ds_span; /* descrambling */ | |||||
| int ds_packet_size; | |||||
| int ds_chunk_size; | |||||
| int64_t packet_pos; | |||||
| uint16_t stream_language_index; | |||||
| int palette_changed; | |||||
| uint32_t palette[256]; | |||||
| int payload_ext_ct; | |||||
| ASFPayload payload[8]; | |||||
| } ASFStream; | |||||
| typedef struct ASFMainHeader { | typedef struct ASFMainHeader { | ||||
| ff_asf_guid guid; ///< generated by client computer | ff_asf_guid guid; ///< generated by client computer | ||||
| uint64_t file_size; /**< in bytes | uint64_t file_size; /**< in bytes | ||||
| @@ -39,6 +39,38 @@ | |||||
| #include "asf.h" | #include "asf.h" | ||||
| #include "asfcrypt.h" | #include "asfcrypt.h" | ||||
| typedef struct ASFPayload { | |||||
| uint8_t type; | |||||
| uint16_t size; | |||||
| } ASFPayload; | |||||
| typedef struct ASFStream { | |||||
| int num; | |||||
| unsigned char seq; | |||||
| /* use for reading */ | |||||
| AVPacket pkt; | |||||
| int frag_offset; | |||||
| int packet_obj_size; | |||||
| int timestamp; | |||||
| int64_t duration; | |||||
| int skip_to_key; | |||||
| int pkt_clean; | |||||
| int ds_span; /* descrambling */ | |||||
| int ds_packet_size; | |||||
| int ds_chunk_size; | |||||
| int64_t packet_pos; | |||||
| uint16_t stream_language_index; | |||||
| int palette_changed; | |||||
| uint32_t palette[256]; | |||||
| int payload_ext_ct; | |||||
| ASFPayload payload[8]; | |||||
| } ASFStream; | |||||
| typedef struct ASFContext { | typedef struct ASFContext { | ||||
| const AVClass *class; | const AVClass *class; | ||||
| int asfid2avid[128]; ///< conversion table from asf ID 2 AVStream ID | int asfid2avid[128]; ///< conversion table from asf ID 2 AVStream ID | ||||
| @@ -183,6 +183,38 @@ | |||||
| #define DATA_HEADER_SIZE 50 | #define DATA_HEADER_SIZE 50 | ||||
| typedef struct ASFPayload { | |||||
| uint8_t type; | |||||
| uint16_t size; | |||||
| } ASFPayload; | |||||
| typedef struct ASFStream { | |||||
| int num; | |||||
| unsigned char seq; | |||||
| /* use for reading */ | |||||
| AVPacket pkt; | |||||
| int frag_offset; | |||||
| int packet_obj_size; | |||||
| int timestamp; | |||||
| int64_t duration; | |||||
| int skip_to_key; | |||||
| int pkt_clean; | |||||
| int ds_span; /* descrambling */ | |||||
| int ds_packet_size; | |||||
| int ds_chunk_size; | |||||
| int64_t packet_pos; | |||||
| uint16_t stream_language_index; | |||||
| int palette_changed; | |||||
| uint32_t palette[256]; | |||||
| int payload_ext_ct; | |||||
| ASFPayload payload[8]; | |||||
| } ASFStream; | |||||
| typedef struct ASFContext { | typedef struct ASFContext { | ||||
| uint32_t seqno; | uint32_t seqno; | ||||
| int is_streamed; | int is_streamed; | ||||
| @@ -30,8 +30,8 @@ | |||||
| #include "libavutil/version.h" | #include "libavutil/version.h" | ||||
| #define LIBAVFORMAT_VERSION_MAJOR 56 | #define LIBAVFORMAT_VERSION_MAJOR 56 | ||||
| #define LIBAVFORMAT_VERSION_MINOR 38 | |||||
| #define LIBAVFORMAT_VERSION_MICRO 102 | |||||
| #define LIBAVFORMAT_VERSION_MINOR 39 | |||||
| #define LIBAVFORMAT_VERSION_MICRO 100 | |||||
| #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ | #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ | ||||
| LIBAVFORMAT_VERSION_MINOR, \ | LIBAVFORMAT_VERSION_MINOR, \ | ||||