extern "C" {
#endif
-#define LIBAVFORMAT_BUILD 4626
+#define LIBAVFORMAT_VERSION_INT ((49<<16)+(2<<8)+0)
+#define LIBAVFORMAT_VERSION 49.2.0
+#define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT
-#define LIBAVFORMAT_VERSION_INT FFMPEG_VERSION_INT
-#define LIBAVFORMAT_VERSION FFMPEG_VERSION
-#define LIBAVFORMAT_IDENT "FFmpeg" FFMPEG_VERSION "b" AV_STRINGIFY(LIBAVFORMAT_BUILD)
+#define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION)
#include <time.h>
#include <stdio.h> /* FILE */
#define PKT_FLAG_KEY 0x0001
void av_destruct_packet_nofree(AVPacket *pkt);
+void av_destruct_packet(AVPacket *pkt);
/* initialize optional fields of a packet */
static inline void av_init_packet(AVPacket *pkt)
enum PixelFormat pix_fmt;
struct AVImageFormat *image_format;
int channel; /* used to select dv channel */
- const char *device; /* video4linux, audio or DV device */
+ const char *device; /* video, audio or DV device */
const char *standard; /* tv standard, NTSC, PAL, SECAM */
int mpeg2ts_raw:1; /* force raw MPEG2 transport stream output, if possible */
int mpeg2ts_compute_pcr:1; /* compute exact PCR for each transport
int min_distance; /* min distance between this and the previous keyframe, used to avoid unneeded searching */
} AVIndexEntry;
-enum AVDiscard{
-//we leave some space between them for extensions (drop some keyframes for intra only or drop just some bidir frames)
- AVDISCARD_NONE =-16, ///< discard nothing
- AVDISCARD_DEFAULT= 0, ///< discard useless packets like 0 size packets in avi
- AVDISCARD_BIDIR = 16, ///< discard all bidirectional frames
- AVDISCARD_NONKEY = 32, ///< discard all frames except keyframes
- AVDISCARD_ALL = 48, ///< discard all
-};
-
typedef struct AVStream {
int index; /* stream index in AVFormatContext */
int id; /* format specific stream id */
- AVCodecContext codec; /* codec context */
- AVRational r_frame_rate; /* real frame rate of the stream */
+ AVCodecContext *codec; /* codec context */
+ /**
+ * real base frame rate of the stream.
+ * for example if the timebase is 1/90000 and all frames have either
+ * approximately 3600 or 1800 timer ticks then r_frame_rate will be 50/1
+ */
+ AVRational r_frame_rate;
void *priv_data;
/* internal data used in av_find_stream_info() */
int64_t codec_info_duration;
int codec_info_nb_frames;
/* encoding: PTS generation when outputing stream */
AVFrac pts;
+
+ /**
+ * this is the fundamental unit of time (in seconds) in terms
+ * of which frame timestamps are represented. for fixed-fps content,
+ * timebase should be 1/framerate and timestamp increments should be
+ * identically 1.
+ */
AVRational time_base;
int pts_wrap_bits; /* number of bits in pts (used for wrapping control) */
/* ffmpeg.c private use */
char language[4]; /* ISO 639 3-letter language code (empty string if undefined) */
/* av_read_frame() support */
- int need_parsing;
+ int need_parsing; ///< 1->full parsing needed, 2->only parse headers dont repack
struct AVCodecParserContext *parser;
int64_t cur_dts;
support seeking natively */
int nb_index_entries;
int index_entries_allocated_size;
+
+ int64_t nb_frames; ///< number of frames in this stream if known or 0
} AVStream;
#define AVFMTCTX_NOHEADER 0x0001 /* signal that no header is present
int packet_size;
int preload;
int max_delay;
+
+#define AVFMT_NOOUTPUTLOOP -1
+#define AVFMT_INFINITEOUTPUTLOOP 0
+ /* number of times to loop output in formats that support it */
+ int loop_output;
+
+ int flags;
+#define AVFMT_FLAG_GENPTS 0x0001 ///< generate pts if missing even if it requires parsing future frames
} AVFormatContext;
typedef struct AVPacketList {
/* wav.c */
int ff_wav_init(void);
+/* mmf.c */
+int ff_mmf_init(void);
+
/* raw.c */
int pcm_read_seek(AVFormatContext *s,
int stream_index, int64_t timestamp, int flags);
/* nsvdec.c */
int nsvdec_init(void);
+/* daud.c */
+int daud_init(void);
+
#include "rtp.h"
#include "rtsp.h"