|
|
@ -542,11 +542,6 @@ typedef struct AVStream { |
|
|
|
AVRational r_frame_rate; |
|
|
|
AVRational r_frame_rate; |
|
|
|
void *priv_data; |
|
|
|
void *priv_data; |
|
|
|
|
|
|
|
|
|
|
|
#if FF_API_REORDER_PRIVATE |
|
|
|
|
|
|
|
/* internal data used in av_find_stream_info() */ |
|
|
|
|
|
|
|
int64_t first_dts; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* encoding: pts generation when outputting stream |
|
|
|
* encoding: pts generation when outputting stream |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -560,9 +555,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; |
|
|
|
#if FF_API_REORDER_PRIVATE |
|
|
|
|
|
|
|
int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */ |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
enum AVDiscard discard; ///< Selects which packets can be discarded at will and do not need to be demuxed.
|
|
|
|
enum AVDiscard discard; ///< Selects which packets can be discarded at will and do not need to be demuxed.
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -580,31 +572,10 @@ typedef struct AVStream { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
int64_t duration; |
|
|
|
int64_t duration; |
|
|
|
|
|
|
|
|
|
|
|
#if FF_API_REORDER_PRIVATE |
|
|
|
|
|
|
|
/* av_read_frame() support */ |
|
|
|
|
|
|
|
enum AVStreamParseType need_parsing; |
|
|
|
|
|
|
|
struct AVCodecParserContext *parser; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int64_t cur_dts; |
|
|
|
|
|
|
|
int last_IP_duration; |
|
|
|
|
|
|
|
int64_t last_IP_pts; |
|
|
|
|
|
|
|
/* av_seek_frame() support */ |
|
|
|
|
|
|
|
AVIndexEntry *index_entries; /**< Only used if the format does not
|
|
|
|
|
|
|
|
support seeking natively. */ |
|
|
|
|
|
|
|
int nb_index_entries; |
|
|
|
|
|
|
|
unsigned int index_entries_allocated_size; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int64_t nb_frames; ///< number of frames in this stream if known or 0
|
|
|
|
int64_t nb_frames; ///< number of frames in this stream if known or 0
|
|
|
|
|
|
|
|
|
|
|
|
int disposition; /**< AV_DISPOSITION_* bit field */ |
|
|
|
int disposition; /**< AV_DISPOSITION_* bit field */ |
|
|
|
|
|
|
|
|
|
|
|
#if FF_API_REORDER_PRIVATE |
|
|
|
|
|
|
|
AVProbeData probe_data; |
|
|
|
|
|
|
|
#define MAX_REORDER_DELAY 16 |
|
|
|
|
|
|
|
int64_t pts_buffer[MAX_REORDER_DELAY+1]; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* sample aspect ratio (0 if unknown) |
|
|
|
* sample aspect ratio (0 if unknown) |
|
|
|
* - encoding: Set by user. |
|
|
|
* - encoding: Set by user. |
|
|
@ -614,38 +585,6 @@ typedef struct AVStream { |
|
|
|
|
|
|
|
|
|
|
|
AVDictionary *metadata; |
|
|
|
AVDictionary *metadata; |
|
|
|
|
|
|
|
|
|
|
|
#if FF_API_REORDER_PRIVATE |
|
|
|
|
|
|
|
/* Intended mostly for av_read_frame() support. Not supposed to be used by */ |
|
|
|
|
|
|
|
/* external applications; try to use something else if at all possible. */ |
|
|
|
|
|
|
|
const uint8_t *cur_ptr; |
|
|
|
|
|
|
|
int cur_len; |
|
|
|
|
|
|
|
AVPacket cur_pkt; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Timestamp generation support:
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Timestamp corresponding to the last dts sync point. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* Initialized when AVCodecParserContext.dts_sync_point >= 0 and |
|
|
|
|
|
|
|
* a DTS is received from the underlying container. Otherwise set to |
|
|
|
|
|
|
|
* AV_NOPTS_VALUE by default. |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
int64_t reference_dts; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Number of packets to buffer for codec probing |
|
|
|
|
|
|
|
* NOT PART OF PUBLIC API |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
#define MAX_PROBE_PACKETS 2500 |
|
|
|
|
|
|
|
int probe_packets; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* last packet in packet_buffer for this stream when muxing. |
|
|
|
|
|
|
|
* Used internally, NOT PART OF PUBLIC API, do not read or |
|
|
|
|
|
|
|
* write from outside of libav* |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
struct AVPacketList *last_in_packet_buffer; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Average framerate |
|
|
|
* Average framerate |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -676,7 +615,6 @@ typedef struct AVStream { |
|
|
|
int64_t codec_info_duration; |
|
|
|
int64_t codec_info_duration; |
|
|
|
int nb_decoded_frames; |
|
|
|
int nb_decoded_frames; |
|
|
|
} *info; |
|
|
|
} *info; |
|
|
|
#if !FF_API_REORDER_PRIVATE |
|
|
|
|
|
|
|
const uint8_t *cur_ptr; |
|
|
|
const uint8_t *cur_ptr; |
|
|
|
int cur_len; |
|
|
|
int cur_len; |
|
|
|
AVPacket cur_pkt; |
|
|
|
AVPacket cur_pkt; |
|
|
@ -718,7 +656,6 @@ typedef struct AVStream { |
|
|
|
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) */ |
|
|
|
int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */ |
|
|
|
#endif |
|
|
|
|
|
|
|
} AVStream; |
|
|
|
} AVStream; |
|
|
|
|
|
|
|
|
|
|
|
#define AV_PROGRAM_RUNNING 1 |
|
|
|
#define AV_PROGRAM_RUNNING 1 |
|
|
@ -806,15 +743,6 @@ typedef struct AVFormatContext { |
|
|
|
char filename[1024]; /**< input or output filename */ |
|
|
|
char filename[1024]; /**< input or output filename */ |
|
|
|
/* stream info */ |
|
|
|
/* stream info */ |
|
|
|
int ctx_flags; /**< Format-specific flags, see AVFMTCTX_xx */ |
|
|
|
int ctx_flags; /**< Format-specific flags, see AVFMTCTX_xx */ |
|
|
|
#if FF_API_REORDER_PRIVATE |
|
|
|
|
|
|
|
/* private data for pts handling (do not modify directly). */ |
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 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; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Decoding: position of the first frame of the component, in |
|
|
|
* Decoding: position of the first frame of the component, in |
|
|
@ -838,14 +766,6 @@ typedef struct AVFormatContext { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
int bit_rate; |
|
|
|
int bit_rate; |
|
|
|
|
|
|
|
|
|
|
|
#if FF_API_REORDER_PRIVATE |
|
|
|
|
|
|
|
/* av_read_frame() support */ |
|
|
|
|
|
|
|
AVStream *cur_st; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* av_seek_frame() support */ |
|
|
|
|
|
|
|
int64_t data_offset; /**< offset of the first packet */ |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
unsigned int packet_size; |
|
|
|
unsigned int packet_size; |
|
|
|
int max_delay; |
|
|
|
int max_delay; |
|
|
|
|
|
|
|
|
|
|
@ -921,30 +841,8 @@ typedef struct AVFormatContext { |
|
|
|
int debug; |
|
|
|
int debug; |
|
|
|
#define FF_FDEBUG_TS 0x0001 |
|
|
|
#define FF_FDEBUG_TS 0x0001 |
|
|
|
|
|
|
|
|
|
|
|
#if FF_API_REORDER_PRIVATE |
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 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; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct AVPacketList *packet_buffer_end; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AVDictionary *metadata; |
|
|
|
AVDictionary *metadata; |
|
|
|
|
|
|
|
|
|
|
|
#if FF_API_REORDER_PRIVATE |
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Remaining size available for raw_packet_buffer, in bytes. |
|
|
|
|
|
|
|
* NOT PART OF PUBLIC API |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
#define RAW_PACKET_BUFFER_SIZE 2500000 |
|
|
|
|
|
|
|
int raw_packet_buffer_remaining_size; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Start time of the stream in real world time, in microseconds |
|
|
|
* Start time of the stream in real world time, in microseconds |
|
|
|
* since the unix epoch (00:00 1st January 1970). That is, pts=0 |
|
|
|
* since the unix epoch (00:00 1st January 1970). That is, pts=0 |
|
|
@ -985,7 +883,6 @@ typedef struct AVFormatContext { |
|
|
|
* New public fields should be added right above. |
|
|
|
* New public fields should be added right above. |
|
|
|
***************************************************************** |
|
|
|
***************************************************************** |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
#if !FF_API_REORDER_PRIVATE |
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Raw packets from the demuxer, prior to parsing and decoding. |
|
|
|
* Raw packets from the demuxer, prior to parsing and decoding. |
|
|
|
* This buffer is used for buffering packets until the codec can |
|
|
|
* This buffer is used for buffering packets until the codec can |
|
|
@ -1013,7 +910,6 @@ 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 */ |
|
|
|
#endif |
|
|
|
|
|
|
|
} AVFormatContext; |
|
|
|
} AVFormatContext; |
|
|
|
|
|
|
|
|
|
|
|
typedef struct AVPacketList { |
|
|
|
typedef struct AVPacketList { |
|
|
|