Mercurial > libavformat.hg
changeset 186:2265d21a04c8 libavformat
added stream start time and duration API - AV_NOPTS_VALUE is no longer zero
author | bellard |
---|---|
date | Fri, 08 Aug 2003 17:49:27 +0000 |
parents | d98ed04d62a6 |
children | 2fa5e94ba716 |
files | avformat.h |
diffstat | 1 files changed, 34 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/avformat.h Wed Aug 06 05:40:38 2003 +0000 +++ b/avformat.h Fri Aug 08 17:49:27 2003 +0000 @@ -7,7 +7,7 @@ #define LIBAVFORMAT_VERSION_INT 0x000406 #define LIBAVFORMAT_VERSION "0.4.6" -#define LIBAVFORMAT_BUILD 4605 +#define LIBAVFORMAT_BUILD 4606 #include "avcodec.h" @@ -15,7 +15,16 @@ /* packet functions */ -#define AV_NOPTS_VALUE 0 +#ifndef MAXINT64 +#define MAXINT64 int64_t_C(0x7fffffffffffffff) +#endif + +#ifndef MININT64 +#define MININT64 int64_t_C(0x8000000000000000) +#endif + +#define AV_NOPTS_VALUE MININT64 +#define AV_TIME_BASE 1000000 typedef struct AVPacket { int64_t pts; /* presentation time stamp in stream units (set av_set_pts_info) */ @@ -164,7 +173,6 @@ AVCodecContext codec; /* codec context */ int r_frame_rate; /* real frame rate of the stream */ int r_frame_rate_base;/* real frame rate base of the stream */ - uint64_t time_length; /* real length of the stream in miliseconds */ void *priv_data; /* internal data used in av_find_stream_info() */ int codec_info_state; @@ -177,6 +185,12 @@ /* quality, as it has been removed from AVCodecContext and put in AVVideoFrame * MN:dunno if thats the right place, for it */ float quality; + /* decoding: position of the first frame of the component, in + AV_TIME_BASE fractional seconds. */ + int64_t start_time; + /* decoding: duration of the stream, in AV_TIME_BASE fractional + seconds. */ + int64_t duration; } AVStream; #define MAX_STREAMS 20 @@ -203,7 +217,22 @@ /* 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; + + /* decoding: position of the first frame of the component, in + AV_TIME_BASE fractional seconds. NEVER set this value directly: + it is deduced from the AVStream values. */ + int64_t start_time; + /* decoding: duration of the stream, in AV_TIME_BASE fractional + seconds. NEVER set this value directly: it is deduced from the + AVStream values. */ + int64_t duration; + /* decoding: total file size. 0 if unknown */ + int64_t file_size; + /* decoding: total stream bitrate in bit/s, 0 if not + available. Never set it directly if the file_size and the + duration are known as ffmpeg can compute it automatically. */ + int bit_rate; } AVFormatContext; typedef struct AVPacketList { @@ -274,6 +303,7 @@ /* modules */ /* mpeg.c */ +extern AVInputFormat mpegps_demux; int mpegps_init(void); /* mpegts.c */