X-Git-Url: http://git.videolan.org/?p=ffmpeg.git;a=blobdiff_plain;f=libavformat%2Finternal.h;h=f08ad90038034557eda4a6eec1ad0480cc0e1db0;hp=5b7e426b42aa6940ff348a4ee2203515abd3e519;hb=9deaec782810d098bca11c9332fab2d2f4c5fb78;hpb=1509c018bd5b054a2354e20021ccbac9c934d213 diff --git a/libavformat/internal.h b/libavformat/internal.h index 5b7e426b42..f08ad90038 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -49,6 +49,47 @@ struct AVFormatInternal { * Muxing only. */ int nb_interleaved_streams; + + /** + * This buffer is only needed when packets were already buffered but + * not decoded, for example to get the codec parameters in MPEG + * streams. + */ + struct AVPacketList *packet_buffer; + struct AVPacketList *packet_buffer_end; + + /* av_seek_frame() support */ + int64_t data_offset; /**< offset of the first packet */ + + /** + * Raw packets from the demuxer, prior to parsing and decoding. + * This buffer is used for buffering packets until the codec can + * be identified, as parsing cannot be done without knowing the + * codec. + */ + struct AVPacketList *raw_packet_buffer; + struct AVPacketList *raw_packet_buffer_end; + /** + * Packets split by the parser get queued here. + */ + struct AVPacketList *parse_queue; + struct AVPacketList *parse_queue_end; + /** + * Remaining size available for raw_packet_buffer, in bytes. + */ +#define RAW_PACKET_BUFFER_SIZE 2500000 + int raw_packet_buffer_remaining_size; + + /** + * Offset to remap timestamps to be non-negative. + * Expressed in timebase units. + */ + int64_t offset; + + /** + * Timebase for the timestamp offset. + */ + AVRational offset_timebase; }; void ff_dynarray_add(intptr_t **tab_ptr, int *nb_ptr, intptr_t elem);