📄 avformat.h
字号:
/* AVImageFormat.flags field constants */#define AVIMAGE_INTERLEAVED 0x0001 /* image format support interleaved output */typedef struct AVImageFormat { const char *name; const char *extensions; /* tell if a given file has a chance of being parsing by this format */ int (*img_probe)(AVProbeData *); /* read a whole image. 'alloc_cb' is called when the image size is known so that the caller can allocate the image. If 'allo_cb' returns non zero, then the parsing is aborted. Return '0' if OK. */ int (*img_read)(ByteIOContext *, int (*alloc_cb)(void *, AVImageInfo *info), void *); /* write the image */ int supported_pixel_formats; /* mask of supported formats for output */ int (*img_write)(ByteIOContext *, AVImageInfo *); int flags; struct AVImageFormat *next;} AVImageFormat;void av_register_image_format(AVImageFormat *img_fmt);AVImageFormat *av_probe_image_format(AVProbeData *pd);AVImageFormat *guess_image_format(const char *filename);int av_read_image(ByteIOContext *pb, const char *filename, AVImageFormat *fmt, int (*alloc_cb)(void *, AVImageInfo *info), void *opaque);int av_write_image(ByteIOContext *pb, AVImageFormat *fmt, AVImageInfo *img);extern AVImageFormat *first_image_format;extern AVImageFormat pnm_image_format;extern AVImageFormat pbm_image_format;extern AVImageFormat pgm_image_format;extern AVImageFormat ppm_image_format;extern AVImageFormat pam_image_format;extern AVImageFormat pgmyuv_image_format;extern AVImageFormat yuv_image_format;#ifdef CONFIG_ZLIBextern AVImageFormat png_image_format;#endifextern AVImageFormat jpeg_image_format;extern AVImageFormat gif_image_format;extern AVImageFormat sgi_image_format;/* XXX: use automatic init with either ELF sections or C file parser *//* modules *//* mpeg.c */extern AVInputFormat mpegps_demux;int mpegps_init(void);/* mpegts.c */extern AVInputFormat mpegts_demux;int mpegts_init(void);/* rm.c */int rm_init(void);/* crc.c */int crc_init(void);/* img.c */int img_init(void);/* asf.c */int asf_init(void);/* avienc.c */int avienc_init(void);/* avidec.c */int avidec_init(void);/* swf.c */int swf_init(void);/* mov.c */int mov_init(void);/* movenc.c */int movenc_init(void);/* flvenc.c */int flvenc_init(void);/* flvdec.c */int flvdec_init(void);/* jpeg.c */int jpeg_init(void);/* gif.c */int gif_init(void);/* au.c */int au_init(void);/* amr.c */int amr_init(void);/* wav.c */int ff_wav_init(void);/* raw.c */int pcm_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp);int raw_init(void);/* mp3.c */int mp3_init(void);/* yuv4mpeg.c */int yuv4mpeg_init(void);/* ogg.c */int ogg_init(void);/* dv.c */int ff_dv_init(void);/* ffm.c */int ffm_init(void);/* rtsp.c */extern AVInputFormat redir_demux;int redir_open(AVFormatContext **ic_ptr, ByteIOContext *f);/* 4xm.c */int fourxm_init(void);/* psxstr.c */int str_init(void);/* idroq.c */int roq_init(void);/* ipmovie.c */int ipmovie_init(void);/* nut.c */int nut_init(void);/* wc3movie.c */int wc3_init(void);/* westwood.c */int westwood_init(void);/* segafilm.c */int film_init(void);/* idcin.c */int idcin_init(void);/* flic.c */int flic_init(void);/* sierravmd.c */int vmd_init(void);/* matroska.c */int matroska_init(void);#include "rtp.h"#include "rtsp.h"/* yuv4mpeg.c */extern AVOutputFormat yuv4mpegpipe_oformat;/* utils.c */void av_register_input_format(AVInputFormat *format);void av_register_output_format(AVOutputFormat *format);AVOutputFormat *guess_stream_format(const char *short_name, const char *filename, const char *mime_type);AVOutputFormat *guess_format(const char *short_name, const char *filename, const char *mime_type);void av_hex_dump(FILE *f, uint8_t *buf, int size);void av_pkt_dump(FILE *f, AVPacket *pkt, int dump_payload);void av_register_all(void);typedef struct FifoBuffer { uint8_t *buffer; uint8_t *rptr, *wptr, *end;} FifoBuffer;int fifo_init(FifoBuffer *f, int size);void fifo_free(FifoBuffer *f);int fifo_size(FifoBuffer *f, uint8_t *rptr);int fifo_read(FifoBuffer *f, uint8_t *buf, int buf_size, uint8_t **rptr_ptr);void fifo_write(FifoBuffer *f, uint8_t *buf, int size, uint8_t **wptr_ptr);/* media file input */AVInputFormat *av_find_input_format(const char *short_name);AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened);int av_open_input_stream(AVFormatContext **ic_ptr, ByteIOContext *pb, const char *filename, AVInputFormat *fmt, AVFormatParameters *ap);int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, AVInputFormat *fmt, int buf_size, AVFormatParameters *ap);/* no av_open for output, so applications will need this: */AVFormatContext *av_alloc_format_context(void);#define AVERROR_UNKNOWN (-1) /* unknown error */#define AVERROR_IO (-2) /* i/o error */#define AVERROR_NUMEXPECTED (-3) /* number syntax expected in filename */#define AVERROR_INVALIDDATA (-4) /* invalid data found */#define AVERROR_NOMEM (-5) /* not enough memory */#define AVERROR_NOFMT (-6) /* unknown format */#define AVERROR_NOTSUPP (-7) /* operation not supported */ int av_find_stream_info(AVFormatContext *ic);int av_read_packet(AVFormatContext *s, AVPacket *pkt);int av_read_frame(AVFormatContext *s, AVPacket *pkt);int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp);int av_read_play(AVFormatContext *s);int av_read_pause(AVFormatContext *s);void av_close_input_file(AVFormatContext *s);AVStream *av_new_stream(AVFormatContext *s, int id);void av_set_pts_info(AVStream *s, int pts_wrap_bits, int pts_num, int pts_den);int av_find_default_stream_index(AVFormatContext *s);int av_index_search_timestamp(AVStream *st, int timestamp);int av_add_index_entry(AVStream *st, int64_t pos, int64_t timestamp, int distance, int flags);int av_seek_frame_binary(AVFormatContext *s, int stream_index, int64_t target_ts);/* media file output */int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap);int av_write_header(AVFormatContext *s);int av_write_frame(AVFormatContext *s, AVPacket *pkt);int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt);int av_write_trailer(AVFormatContext *s);void dump_format(AVFormatContext *ic, int index, const char *url, int is_output);int parse_image_size(int *width_ptr, int *height_ptr, const char *str);int parse_frame_rate(int *frame_rate, int *frame_rate_base, const char *arg);int64_t parse_date(const char *datestr, int duration);int64_t av_gettime(void);/* ffm specific for ffserver */#define FFM_PACKET_SIZE 4096offset_t ffm_read_write_index(int fd);void ffm_write_write_index(int fd, offset_t pos);void ffm_set_write_index(AVFormatContext *s, offset_t pos, offset_t file_size);int find_info_tag(char *arg, int arg_size, const char *tag1, const char *info);int get_frame_filename(char *buf, int buf_size, const char *path, int number);int filename_number_test(const char *filename);/* grab specific */int video_grab_init(void);int audio_init(void);/* DV1394 */int dv1394_init(void);#ifdef HAVE_AV_CONFIG_H#include "os_support.h"int strstart(const char *str, const char *val, const char **ptr);int stristart(const char *str, const char *val, const char **ptr);void pstrcpy(char *buf, int buf_size, const char *str);char *pstrcat(char *buf, int buf_size, const char *s);void __dynarray_add(unsigned long **tab_ptr, int *nb_ptr, unsigned long elem);#ifdef __GNUC__#define dynarray_add(tab, nb_ptr, elem)\do {\ typeof(tab) _tab = (tab);\ typeof(elem) _elem = (elem);\ (void)sizeof(**_tab == _elem); /* check that types are compatible */\ __dynarray_add((unsigned long **)_tab, nb_ptr, (unsigned long)_elem);\} while(0)#else#define dynarray_add(tab, nb_ptr, elem)\do {\ __dynarray_add((unsigned long **)(tab), nb_ptr, (unsigned long)(elem));\} while(0)#endiftime_t mktimegm(struct tm *tm);const char *small_strptime(const char *p, const char *fmt, struct tm *dt);struct in_addr;int resolve_host(struct in_addr *sin_addr, const char *hostname);void url_split(char *proto, int proto_size, char *hostname, int hostname_size, int *port_ptr, char *path, int path_size, const char *url);int match_ext(const char *filename, const char *extensions);#endif /* HAVE_AV_CONFIG_H */#ifdef __cplusplus}#endif#endif /* AVFORMAT_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -