Mercurial > libavformat.hg
comparison avformat.h @ 708:d79164865a7c libavformat
more fine grained discarding of packets
author | michael |
---|---|
date | Thu, 17 Mar 2005 01:25:01 +0000 |
parents | 829c5c8e5cf2 |
children | e214703e4b76 |
comparison
equal
deleted
inserted
replaced
707:cc612862d461 | 708:d79164865a7c |
---|---|
3 | 3 |
4 #ifdef __cplusplus | 4 #ifdef __cplusplus |
5 extern "C" { | 5 extern "C" { |
6 #endif | 6 #endif |
7 | 7 |
8 #define LIBAVFORMAT_BUILD 4622 | 8 #define LIBAVFORMAT_BUILD 4623 |
9 | 9 |
10 #define LIBAVFORMAT_VERSION_INT FFMPEG_VERSION_INT | 10 #define LIBAVFORMAT_VERSION_INT FFMPEG_VERSION_INT |
11 #define LIBAVFORMAT_VERSION FFMPEG_VERSION | 11 #define LIBAVFORMAT_VERSION FFMPEG_VERSION |
12 #define LIBAVFORMAT_IDENT "FFmpeg" FFMPEG_VERSION "b" AV_STRINGIFY(LIBAVFORMAT_BUILD) | 12 #define LIBAVFORMAT_IDENT "FFmpeg" FFMPEG_VERSION "b" AV_STRINGIFY(LIBAVFORMAT_BUILD) |
13 | 13 |
209 /* the following 2 flags indicate that the next/prev keyframe is known, and scaning for it isnt needed */ | 209 /* the following 2 flags indicate that the next/prev keyframe is known, and scaning for it isnt needed */ |
210 int flags; | 210 int flags; |
211 int min_distance; /* min distance between this and the previous keyframe, used to avoid unneeded searching */ | 211 int min_distance; /* min distance between this and the previous keyframe, used to avoid unneeded searching */ |
212 } AVIndexEntry; | 212 } AVIndexEntry; |
213 | 213 |
214 enum AVDiscard{ | |
215 //we leave some space between them for extensions (drop some keyframes for intra only or drop just some bidir frames) | |
216 AVDISCARD_NONE =-16, ///< discard nothing | |
217 AVDISCARD_DEFAULT= 0, ///< discard useless packets like 0 size packets in avi | |
218 AVDISCARD_BIDIR = 16, ///< discard all bidirectional frames | |
219 AVDISCARD_NONKEY = 32, ///< discard all frames except keyframes | |
220 AVDISCARD_ALL = 48, ///< discard all | |
221 }; | |
222 | |
214 typedef struct AVStream { | 223 typedef struct AVStream { |
215 int index; /* stream index in AVFormatContext */ | 224 int index; /* stream index in AVFormatContext */ |
216 int id; /* format specific stream id */ | 225 int id; /* format specific stream id */ |
217 AVCodecContext codec; /* codec context */ | 226 AVCodecContext codec; /* codec context */ |
218 int r_frame_rate; /* real frame rate of the stream */ | 227 int r_frame_rate; /* real frame rate of the stream */ |
225 AVFrac pts; | 234 AVFrac pts; |
226 AVRational time_base; | 235 AVRational time_base; |
227 int pts_wrap_bits; /* number of bits in pts (used for wrapping control) */ | 236 int pts_wrap_bits; /* number of bits in pts (used for wrapping control) */ |
228 /* ffmpeg.c private use */ | 237 /* ffmpeg.c private use */ |
229 int stream_copy; /* if TRUE, just copy stream */ | 238 int stream_copy; /* if TRUE, just copy stream */ |
230 int discard; ///< if 1, packets can be discarded at will and dont need to be demuxed | 239 enum AVDiscard discard; ///< selects which packets can be discarded at will and dont need to be demuxed |
231 //FIXME move stuff to a flags field? | 240 //FIXME move stuff to a flags field? |
232 /* quality, as it has been removed from AVCodecContext and put in AVVideoFrame | 241 /* quality, as it has been removed from AVCodecContext and put in AVVideoFrame |
233 * MN:dunno if thats the right place, for it */ | 242 * MN:dunno if thats the right place, for it */ |
234 float quality; | 243 float quality; |
235 /* decoding: position of the first frame of the component, in | 244 /* decoding: position of the first frame of the component, in |
678 #ifdef __cplusplus | 687 #ifdef __cplusplus |
679 } | 688 } |
680 #endif | 689 #endif |
681 | 690 |
682 #endif /* AVFORMAT_H */ | 691 #endif /* AVFORMAT_H */ |
692 |