Commit ee42df8a authored by Luca Barbato's avatar Luca Barbato

avf: reorder AVStream and AVFormatContext

parent 5e239c7f
...@@ -566,7 +566,6 @@ typedef struct AVStream { ...@@ -566,7 +566,6 @@ typedef struct AVStream {
* encoding: set by libavformat in av_write_header * encoding: set by libavformat in av_write_header
*/ */
AVRational time_base; AVRational time_base;
enum AVDiscard discard; ///< Selects which packets can be discarded at will and do not need to be demuxed.
/** /**
* Decoding: pts of the first frame of the stream, in stream time base. * Decoding: pts of the first frame of the stream, in stream time base.
...@@ -587,6 +586,8 @@ typedef struct AVStream { ...@@ -587,6 +586,8 @@ typedef struct AVStream {
int disposition; /**< AV_DISPOSITION_* bit field */ int disposition; /**< AV_DISPOSITION_* bit field */
enum AVDiscard discard; ///< Selects which packets can be discarded at will and do not need to be demuxed.
/** /**
* sample aspect ratio (0 if unknown) * sample aspect ratio (0 if unknown)
* - encoding: Set by user. * - encoding: Set by user.
...@@ -609,11 +610,6 @@ typedef struct AVStream { ...@@ -609,11 +610,6 @@ typedef struct AVStream {
***************************************************************** *****************************************************************
*/ */
/**
* Number of frames that have been demuxed during av_find_stream_info()
*/
int codec_info_nb_frames;
/** /**
* Stream information used internally by av_find_stream_info() * Stream information used internally by av_find_stream_info()
*/ */
...@@ -626,9 +622,12 @@ typedef struct AVStream { ...@@ -626,9 +622,12 @@ typedef struct AVStream {
int64_t codec_info_duration; int64_t codec_info_duration;
int nb_decoded_frames; int nb_decoded_frames;
} *info; } *info;
AVPacket cur_pkt;
const uint8_t *cur_ptr; const uint8_t *cur_ptr;
int cur_len; int cur_len;
AVPacket cur_pkt;
int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */
// Timestamp generation support: // Timestamp generation support:
/** /**
...@@ -641,8 +640,8 @@ typedef struct AVStream { ...@@ -641,8 +640,8 @@ typedef struct AVStream {
int64_t reference_dts; int64_t reference_dts;
int64_t first_dts; int64_t first_dts;
int64_t cur_dts; int64_t cur_dts;
int last_IP_duration;
int64_t last_IP_pts; int64_t last_IP_pts;
int last_IP_duration;
/** /**
* Number of packets to buffer for codec probing * Number of packets to buffer for codec probing
...@@ -650,6 +649,15 @@ typedef struct AVStream { ...@@ -650,6 +649,15 @@ typedef struct AVStream {
#define MAX_PROBE_PACKETS 2500 #define MAX_PROBE_PACKETS 2500
int probe_packets; int probe_packets;
/**
* Number of frames that have been demuxed during av_find_stream_info()
*/
int codec_info_nb_frames;
/* av_read_frame() support */
enum AVStreamParseType need_parsing;
struct AVCodecParserContext *parser;
/** /**
* last packet in packet_buffer for this stream when muxing. * last packet in packet_buffer for this stream when muxing.
*/ */
...@@ -657,16 +665,11 @@ typedef struct AVStream { ...@@ -657,16 +665,11 @@ typedef struct AVStream {
AVProbeData probe_data; AVProbeData probe_data;
#define MAX_REORDER_DELAY 16 #define MAX_REORDER_DELAY 16
int64_t pts_buffer[MAX_REORDER_DELAY+1]; int64_t pts_buffer[MAX_REORDER_DELAY+1];
/* av_read_frame() support */
enum AVStreamParseType need_parsing;
struct AVCodecParserContext *parser;
AVIndexEntry *index_entries; /**< Only used if the format does not AVIndexEntry *index_entries; /**< Only used if the format does not
support seeking natively. */ support seeking natively. */
int nb_index_entries; int nb_index_entries;
unsigned int index_entries_allocated_size; unsigned int index_entries_allocated_size;
int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */
} AVStream; } AVStream;
#define AV_PROGRAM_RUNNING 1 #define AV_PROGRAM_RUNNING 1
...@@ -739,6 +742,9 @@ typedef struct AVFormatContext { ...@@ -739,6 +742,9 @@ typedef struct AVFormatContext {
*/ */
AVIOContext *pb; AVIOContext *pb;
/* stream info */
int ctx_flags; /**< Format-specific flags, see AVFMTCTX_xx */
/** /**
* A list of all streams in the file. New streams are created with * A list of all streams in the file. New streams are created with
* avformat_new_stream(). * avformat_new_stream().
...@@ -752,8 +758,6 @@ typedef struct AVFormatContext { ...@@ -752,8 +758,6 @@ typedef struct AVFormatContext {
AVStream **streams; AVStream **streams;
char filename[1024]; /**< input or output filename */ char filename[1024]; /**< input or output filename */
/* stream info */
int ctx_flags; /**< Format-specific flags, see AVFMTCTX_xx */
/** /**
* Decoding: position of the first frame of the component, in * Decoding: position of the first frame of the component, in
...@@ -846,12 +850,6 @@ typedef struct AVFormatContext { ...@@ -846,12 +850,6 @@ typedef struct AVFormatContext {
unsigned int nb_chapters; unsigned int nb_chapters;
AVChapter **chapters; AVChapter **chapters;
/**
* Flags to enable debugging.
*/
int debug;
#define FF_FDEBUG_TS 0x0001
AVDictionary *metadata; AVDictionary *metadata;
/** /**
...@@ -887,6 +885,11 @@ typedef struct AVFormatContext { ...@@ -887,6 +885,11 @@ typedef struct AVFormatContext {
*/ */
AVIOInterruptCB interrupt_callback; AVIOInterruptCB interrupt_callback;
/**
* Flags to enable debugging.
*/
int debug;
#define FF_FDEBUG_TS 0x0001
/***************************************************************** /*****************************************************************
* All fields below this line are not part of the public API. They * All fields below this line are not part of the public API. They
* may not be used outside of libavformat and can be changed and * may not be used outside of libavformat and can be changed and
...@@ -894,19 +897,6 @@ typedef struct AVFormatContext { ...@@ -894,19 +897,6 @@ typedef struct AVFormatContext {
* New public fields should be added right above. * New public fields should be added right above.
***************************************************************** *****************************************************************
*/ */
/**
* 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;
/**
* Remaining size available for raw_packet_buffer, in bytes.
*/
#define RAW_PACKET_BUFFER_SIZE 2500000
int raw_packet_buffer_remaining_size;
/** /**
* This buffer is only needed when packets were already buffered but * This buffer is only needed when packets were already buffered but
...@@ -921,6 +911,20 @@ typedef struct AVFormatContext { ...@@ -921,6 +911,20 @@ typedef struct AVFormatContext {
/* av_seek_frame() support */ /* av_seek_frame() support */
int64_t data_offset; /**< offset of the first packet */ 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;
/**
* Remaining size available for raw_packet_buffer, in bytes.
*/
#define RAW_PACKET_BUFFER_SIZE 2500000
int raw_packet_buffer_remaining_size;
} AVFormatContext; } AVFormatContext;
typedef struct AVPacketList { typedef struct AVPacketList {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment