diff options
author | Anton Khirnov <anton@khirnov.net> | 2011-02-08 21:46:47 +0100 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2011-02-09 15:31:09 -0500 |
commit | 4bc328a2bdf96d01afd3cf4532efb9db41f00985 (patch) | |
tree | 2f64317f57897f5511bdbdf6d5b5c58835f5c498 | |
parent | 2cfa2d925808e6cc6fb7a7c133b7cb7622afd37e (diff) | |
download | ffmpeg-streaming-4bc328a2bdf96d01afd3cf4532efb9db41f00985.zip ffmpeg-streaming-4bc328a2bdf96d01afd3cf4532efb9db41f00985.tar.gz |
asf: split ASFContext into muxer and demuxer parts.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
-rw-r--r-- | libavformat/asf.h | 58 | ||||
-rw-r--r-- | libavformat/asfdec.c | 41 | ||||
-rw-r--r-- | libavformat/asfenc.c | 25 |
3 files changed, 66 insertions, 58 deletions
diff --git a/libavformat/asf.h b/libavformat/asf.h index 2a817dd..e89bd28 100644 --- a/libavformat/asf.h +++ b/libavformat/asf.h @@ -79,64 +79,6 @@ typedef struct { uint16_t packet_count; } ASFIndex; - -typedef struct { - uint32_t seqno; - int is_streamed; - int asfid2avid[128]; ///< conversion table from asf ID 2 AVStream ID - ASFStream streams[128]; ///< it's max number and it's not that big - uint32_t stream_bitrates[128]; ///< max number of streams, bitrate for each (for streaming) - char stream_languages[128][6]; ///< max number of streams, language for each (RFC1766, e.g. en-US) - /* non streamed additonnal info */ - uint64_t nb_packets; ///< how many packets are there in the file, invalid if broadcasting - int64_t duration; ///< in 100ns units - /* packet filling */ - unsigned char multi_payloads_present; - int packet_size_left; - int packet_timestamp_start; - int packet_timestamp_end; - unsigned int packet_nb_payloads; - int packet_nb_frames; - uint8_t packet_buf[PACKET_SIZE]; - ByteIOContext pb; - /* only for reading */ - uint64_t data_offset; ///< beginning of the first data packet - uint64_t data_object_offset; ///< data object offset (excl. GUID & size) - uint64_t data_object_size; ///< size of the data object - int index_read; - - ASFMainHeader hdr; - - int packet_flags; - int packet_property; - int packet_timestamp; - int packet_segsizetype; - int packet_segments; - int packet_seq; - int packet_replic_size; - int packet_key_frame; - int packet_padsize; - unsigned int packet_frag_offset; - unsigned int packet_frag_size; - int64_t packet_frag_timestamp; - int packet_multi_size; - int packet_obj_size; - int packet_time_delta; - int packet_time_start; - int64_t packet_pos; - - int stream_index; - - - int64_t last_indexed_pts; - ASFIndex* index_ptr; - uint32_t nb_index_count; - uint32_t nb_index_memory_alloc; - uint16_t maximum_packet; - - ASFStream* asf_st; ///< currently decoded stream -} ASFContext; - extern const ff_asf_guid ff_asf_header; extern const ff_asf_guid ff_asf_file_header; extern const ff_asf_guid ff_asf_stream_header; diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c index a73a347..039afdb 100644 --- a/libavformat/asfdec.c +++ b/libavformat/asfdec.c @@ -32,6 +32,47 @@ void ff_mms_set_stream_selection(URLContext *h, AVFormatContext *format); +typedef struct { + int asfid2avid[128]; ///< conversion table from asf ID 2 AVStream ID + ASFStream streams[128]; ///< it's max number and it's not that big + uint32_t stream_bitrates[128]; ///< max number of streams, bitrate for each (for streaming) + char stream_languages[128][6]; ///< max number of streams, language for each (RFC1766, e.g. en-US) + /* non streamed additonnal info */ + uint64_t nb_packets; ///< how many packets are there in the file, invalid if broadcasting + /* packet filling */ + int packet_size_left; + int packet_nb_frames; + /* only for reading */ + uint64_t data_offset; ///< beginning of the first data packet + uint64_t data_object_offset; ///< data object offset (excl. GUID & size) + uint64_t data_object_size; ///< size of the data object + int index_read; + + ASFMainHeader hdr; + + int packet_flags; + int packet_property; + int packet_timestamp; + int packet_segsizetype; + int packet_segments; + int packet_seq; + int packet_replic_size; + int packet_key_frame; + int packet_padsize; + unsigned int packet_frag_offset; + unsigned int packet_frag_size; + int64_t packet_frag_timestamp; + int packet_multi_size; + int packet_obj_size; + int packet_time_delta; + int packet_time_start; + int64_t packet_pos; + + int stream_index; + + ASFStream* asf_st; ///< currently decoded stream +} ASFContext; + #undef NDEBUG #include <assert.h> diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c index b8f8635..709080f 100644 --- a/libavformat/asfenc.c +++ b/libavformat/asfenc.c @@ -188,6 +188,31 @@ 2*PAYLOAD_HEADER_SIZE_MULTIPLE_PAYLOADS \ ) +typedef struct { + uint32_t seqno; + int is_streamed; + ASFStream streams[128]; ///< it's max number and it's not that big + /* non streamed additonnal info */ + uint64_t nb_packets; ///< how many packets are there in the file, invalid if broadcasting + int64_t duration; ///< in 100ns units + /* packet filling */ + unsigned char multi_payloads_present; + int packet_size_left; + int packet_timestamp_start; + int packet_timestamp_end; + unsigned int packet_nb_payloads; + uint8_t packet_buf[PACKET_SIZE]; + ByteIOContext pb; + /* only for reading */ + uint64_t data_offset; ///< beginning of the first data packet + + int64_t last_indexed_pts; + ASFIndex* index_ptr; + uint32_t nb_index_count; + uint32_t nb_index_memory_alloc; + uint16_t maximum_packet; +} ASFContext; + static const AVCodecTag codec_asf_bmp_tags[] = { { CODEC_ID_MPEG4, MKTAG('M', 'P', '4', 'S') }, { CODEC_ID_MPEG4, MKTAG('M', '4', 'S', '2') }, |