| 
									
										
										
										
											2002-07-24 18:05:26 +00:00
										 |  |  | #ifndef AVFORMAT_H
 | 
					
						
							|  |  |  | #define AVFORMAT_H
 | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-01-28 20:20:38 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-07-25 16:01:46 +00:00
										 |  |  | #define LIBAVFORMAT_VERSION_INT 0x000406  
 | 
					
						
							|  |  |  | #define LIBAVFORMAT_VERSION     "0.4.6"
 | 
					
						
							| 
									
										
										
										
											2003-01-11 04:56:29 +00:00
										 |  |  | #define LIBAVFORMAT_BUILD       4603
 | 
					
						
							| 
									
										
										
										
											2002-04-15 02:28:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | #include "avcodec.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "avio.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* packet functions */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-07-24 18:05:26 +00:00
										 |  |  | #define AV_NOPTS_VALUE 0
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | typedef struct AVPacket { | 
					
						
							| 
									
										
										
										
											2002-10-21 15:54:49 +00:00
										 |  |  |     INT64 pts; /* presentation time stamp in stream units (set av_set_pts_info) */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     UINT8 *data; | 
					
						
							|  |  |  |     int size; | 
					
						
							|  |  |  |     int stream_index; | 
					
						
							|  |  |  |     int flags; | 
					
						
							| 
									
										
										
										
											2002-05-09 01:15:45 +00:00
										 |  |  |     int duration;        | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | #define PKT_FLAG_KEY   0x0001
 | 
					
						
							|  |  |  | } AVPacket;  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int av_new_packet(AVPacket *pkt, int size); | 
					
						
							|  |  |  | void av_free_packet(AVPacket *pkt); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-10-21 15:54:49 +00:00
										 |  |  | /*************************************************/ | 
					
						
							|  |  |  | /* fractional numbers for exact pts handling */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* the exact value of the fractional number is: 'val + num / den'. num
 | 
					
						
							|  |  |  |    is assumed to be such as 0 <= num < den */ | 
					
						
							|  |  |  | typedef struct AVFrac { | 
					
						
							|  |  |  |     INT64 val, num, den;  | 
					
						
							|  |  |  | } AVFrac; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void av_frac_init(AVFrac *f, INT64 val, INT64 num, INT64 den); | 
					
						
							|  |  |  | void av_frac_add(AVFrac *f, INT64 incr); | 
					
						
							|  |  |  | void av_frac_set(AVFrac *f, INT64 val); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | /*************************************************/ | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | /* input/output formats */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct AVFormatContext; | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* this structure contains the data a format has to probe a file */ | 
					
						
							|  |  |  | typedef struct AVProbeData { | 
					
						
							|  |  |  |     char *filename; | 
					
						
							|  |  |  |     unsigned char *buf; | 
					
						
							|  |  |  |     int buf_size; | 
					
						
							|  |  |  | } AVProbeData; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define AVPROBE_SCORE_MAX 100
 | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef struct AVFormatParameters { | 
					
						
							|  |  |  |     int frame_rate; | 
					
						
							|  |  |  |     int sample_rate; | 
					
						
							|  |  |  |     int channels; | 
					
						
							|  |  |  |     int width; | 
					
						
							|  |  |  |     int height; | 
					
						
							| 
									
										
										
										
											2002-04-08 20:58:56 +00:00
										 |  |  |     enum PixelFormat pix_fmt; | 
					
						
							| 
									
										
										
										
											2003-01-11 04:56:29 +00:00
										 |  |  |     struct AVImageFormat *image_format; | 
					
						
							| 
									
										
										
										
											2003-01-23 10:33:16 +00:00
										 |  |  |     int channel; /* used to select dv channel */ | 
					
						
							|  |  |  |     const char *device; /* video4linux, audio or DV device */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | } AVFormatParameters; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | #define AVFMT_NOFILE        0x0001 /* no file should be opened */
 | 
					
						
							|  |  |  | #define AVFMT_NEEDNUMBER    0x0002 /* needs '%d' in filename */ 
 | 
					
						
							|  |  |  | #define AVFMT_NOHEADER      0x0004 /* signal that no header is present
 | 
					
						
							|  |  |  |                                       (streams are added dynamically) */ | 
					
						
							|  |  |  | #define AVFMT_SHOW_IDS      0x0008 /* show format stream IDs numbers */
 | 
					
						
							| 
									
										
										
										
											2002-07-24 18:05:26 +00:00
										 |  |  | #define AVFMT_RAWPICTURE    0x0020 /* format wants AVPicture structure for
 | 
					
						
							|  |  |  |                                       raw picture data */ | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef struct AVOutputFormat { | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     const char *name; | 
					
						
							|  |  |  |     const char *long_name; | 
					
						
							|  |  |  |     const char *mime_type; | 
					
						
							|  |  |  |     const char *extensions; /* comma separated extensions */ | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  |     /* size of private data so that it can be allocated in the wrapper */ | 
					
						
							|  |  |  |     int priv_data_size; | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     /* output support */ | 
					
						
							|  |  |  |     enum CodecID audio_codec; /* default audio codec */ | 
					
						
							|  |  |  |     enum CodecID video_codec; /* default video codec */ | 
					
						
							|  |  |  |     int (*write_header)(struct AVFormatContext *); | 
					
						
							| 
									
										
										
										
											2002-10-21 17:40:23 +00:00
										 |  |  |     /* XXX: change prototype for 64 bit pts */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     int (*write_packet)(struct AVFormatContext *,  | 
					
						
							|  |  |  |                         int stream_index, | 
					
						
							| 
									
										
										
										
											2002-04-07 21:44:29 +00:00
										 |  |  |                         unsigned char *buf, int size, int force_pts); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     int (*write_trailer)(struct AVFormatContext *); | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  |     /* can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER */ | 
					
						
							|  |  |  |     int flags; | 
					
						
							| 
									
										
										
										
											2003-01-11 04:56:29 +00:00
										 |  |  |     /* currently only used to set pixel format if not YUV420P */ | 
					
						
							|  |  |  |     int (*set_parameters)(struct AVFormatContext *, AVFormatParameters *); | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  |     /* private fields */ | 
					
						
							|  |  |  |     struct AVOutputFormat *next; | 
					
						
							|  |  |  | } AVOutputFormat; | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | typedef struct AVInputFormat { | 
					
						
							|  |  |  |     const char *name; | 
					
						
							|  |  |  |     const char *long_name; | 
					
						
							|  |  |  |     /* size of private data so that it can be allocated in the wrapper */ | 
					
						
							|  |  |  |     int priv_data_size; | 
					
						
							|  |  |  |     /* tell if a given file has a chance of being parsing by this format */ | 
					
						
							|  |  |  |     int (*read_probe)(AVProbeData *); | 
					
						
							|  |  |  |     /* read the format header and initialize the AVFormatContext
 | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |        structure. Return 0 if OK. 'ap' if non NULL contains | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  |        additionnal paramters. Only used in raw format right | 
					
						
							|  |  |  |        now. 'av_new_stream' should be called to create new streams.  */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     int (*read_header)(struct AVFormatContext *, | 
					
						
							|  |  |  |                        AVFormatParameters *ap); | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  |     /* read one packet and put it in 'pkt'. pts and flags are also
 | 
					
						
							|  |  |  |        set. 'av_new_stream' can be called only if the flag | 
					
						
							|  |  |  |        AVFMT_NOHEADER is used. */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     int (*read_packet)(struct AVFormatContext *, AVPacket *pkt); | 
					
						
							|  |  |  |     /* close the stream. The AVFormatContext and AVStreams are not
 | 
					
						
							|  |  |  |        freed by this function */ | 
					
						
							|  |  |  |     int (*read_close)(struct AVFormatContext *); | 
					
						
							|  |  |  |     /* seek at or before a given pts (given in microsecond). The pts
 | 
					
						
							|  |  |  |        origin is defined by the stream */ | 
					
						
							|  |  |  |     int (*read_seek)(struct AVFormatContext *, INT64 pts); | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  |     /* can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_NOHEADER */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     int flags; | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  |     /* if extensions are defined, then no probe is done. You should
 | 
					
						
							|  |  |  |        usually not use extension format guessing because it is not | 
					
						
							|  |  |  |        reliable enough */ | 
					
						
							|  |  |  |     const char *extensions; | 
					
						
							|  |  |  |     /* general purpose read only value that the format can use */ | 
					
						
							|  |  |  |     int value; | 
					
						
							|  |  |  |     /* private fields */ | 
					
						
							|  |  |  |     struct AVInputFormat *next; | 
					
						
							|  |  |  | } AVInputFormat; | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef struct AVStream { | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  |     int index;    /* stream index in AVFormatContext */ | 
					
						
							|  |  |  |     int id;       /* format specific stream id */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     AVCodecContext codec; /* codec context */ | 
					
						
							| 
									
										
										
										
											2002-05-14 21:50:00 +00:00
										 |  |  |     int r_frame_rate;     /* real frame rate of the stream */ | 
					
						
							| 
									
										
										
										
											2002-08-08 16:43:47 +00:00
										 |  |  |     uint64_t time_length; /* real length of the stream in miliseconds */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     void *priv_data; | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  |     /* internal data used in av_find_stream_info() */ | 
					
						
							|  |  |  |     int codec_info_state;      | 
					
						
							|  |  |  |     int codec_info_nb_repeat_frames; | 
					
						
							|  |  |  |     int codec_info_nb_real_frames; | 
					
						
							| 
									
										
										
										
											2002-10-21 17:40:23 +00:00
										 |  |  |     /* PTS generation when outputing stream */ | 
					
						
							|  |  |  |     AVFrac pts; | 
					
						
							| 
									
										
										
										
											2002-10-11 09:16:05 +00:00
										 |  |  |     /* ffmpeg.c private use */ | 
					
						
							|  |  |  |     int stream_copy; /* if TRUE, just copy stream */ | 
					
						
							| 
									
										
										
										
											2002-12-04 10:04:03 +00:00
										 |  |  |     /* quality, as it has been removed from AVCodecContext and put in AVVideoFrame
 | 
					
						
							|  |  |  |      * MN:dunno if thats the right place, for it */ | 
					
						
							|  |  |  |     float quality;  | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | } AVStream; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define MAX_STREAMS 20
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* format I/O context */ | 
					
						
							|  |  |  | typedef struct AVFormatContext { | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  |     /* can only be iformat or oformat, not both at the same time */ | 
					
						
							|  |  |  |     struct AVInputFormat *iformat; | 
					
						
							|  |  |  |     struct AVOutputFormat *oformat; | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     void *priv_data; | 
					
						
							|  |  |  |     ByteIOContext pb; | 
					
						
							|  |  |  |     int nb_streams; | 
					
						
							|  |  |  |     AVStream *streams[MAX_STREAMS]; | 
					
						
							|  |  |  |     char filename[1024]; /* input or output filename */ | 
					
						
							|  |  |  |     /* stream info */ | 
					
						
							|  |  |  |     char title[512]; | 
					
						
							|  |  |  |     char author[512]; | 
					
						
							|  |  |  |     char copyright[512]; | 
					
						
							|  |  |  |     char comment[512]; | 
					
						
							| 
									
										
										
										
											2002-05-12 21:38:54 +00:00
										 |  |  |     int flags; /* format specific flags */ | 
					
						
							| 
									
										
										
										
											2002-10-21 15:54:49 +00:00
										 |  |  |     /* private data for pts handling (do not modify directly) */ | 
					
						
							|  |  |  |     int pts_wrap_bits; /* number of bits in pts (used for wrapping control) */ | 
					
						
							|  |  |  |     int pts_num, pts_den; /* value to convert to seconds */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  |     /* 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; | 
					
						
							|  |  |  | } AVFormatContext; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct AVPacketList { | 
					
						
							|  |  |  |     AVPacket pkt; | 
					
						
							|  |  |  |     struct AVPacketList *next; | 
					
						
							|  |  |  | } AVPacketList; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | extern AVInputFormat *first_iformat; | 
					
						
							|  |  |  | extern AVOutputFormat *first_oformat; | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-01-11 04:56:29 +00:00
										 |  |  | /* still image support */ | 
					
						
							|  |  |  | struct AVInputImageContext; | 
					
						
							|  |  |  | typedef struct AVInputImageContext AVInputImageContext; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct AVImageInfo { | 
					
						
							|  |  |  |     enum PixelFormat pix_fmt; /* requested pixel format */ | 
					
						
							|  |  |  |     int width; /* requested width */ | 
					
						
							|  |  |  |     int height; /* requested height */ | 
					
						
							|  |  |  |     AVPicture pict; /* returned allocated image */ | 
					
						
							|  |  |  | } AVImageInfo; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 *); | 
					
						
							|  |  |  |     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 pgmyuv_image_format; | 
					
						
							|  |  |  | extern AVImageFormat yuv_image_format; | 
					
						
							| 
									
										
										
										
											2003-02-01 20:53:57 +00:00
										 |  |  | extern AVImageFormat png_image_format; | 
					
						
							| 
									
										
										
										
											2003-01-11 04:56:29 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | /* XXX: use automatic init with either ELF sections or C file parser */ | 
					
						
							|  |  |  | /* modules */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | /* mpeg.c */ | 
					
						
							|  |  |  | int mpegps_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* mpegts.c */ | 
					
						
							|  |  |  | extern AVInputFormat mpegts_demux; | 
					
						
							|  |  |  | int mpegts_init(void); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | /* rm.c */ | 
					
						
							|  |  |  | int rm_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* crc.c */ | 
					
						
							|  |  |  | int crc_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* img.c */ | 
					
						
							|  |  |  | int img_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* asf.c */ | 
					
						
							|  |  |  | int asf_init(void); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* avienc.c */ | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | int avienc_init(void); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | /* avidec.c */ | 
					
						
							|  |  |  | int avidec_init(void); | 
					
						
							| 
									
										
										
										
											2002-04-08 12:32:01 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | /* swf.c */ | 
					
						
							|  |  |  | int swf_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* mov.c */ | 
					
						
							|  |  |  | int mov_init(void); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | /* jpeg.c */ | 
					
						
							|  |  |  | int jpeg_init(void); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-04-08 12:32:01 +00:00
										 |  |  | /* gif.c */ | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | int gif_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-04-08 12:32:01 +00:00
										 |  |  | /* au.c */ | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | int au_init(void); | 
					
						
							| 
									
										
										
										
											2002-04-08 12:32:01 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | /* wav.c */ | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | int wav_init(void); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* raw.c */ | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | int raw_init(void); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-09-01 18:07:56 +00:00
										 |  |  | /* ogg.c */ | 
					
						
							|  |  |  | int ogg_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-10-08 17:58:36 +00:00
										 |  |  | /* dv.c */ | 
					
						
							|  |  |  | int dv_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | /* ffm.c */ | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | int ffm_init(void); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-07-24 18:05:26 +00:00
										 |  |  | /* rtsp.c */ | 
					
						
							|  |  |  | extern AVInputFormat redir_demux; | 
					
						
							|  |  |  | int redir_open(AVFormatContext **ic_ptr, ByteIOContext *f); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "rtp.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "rtsp.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-01-11 04:56:29 +00:00
										 |  |  | /* yuv4mpeg.c */ | 
					
						
							|  |  |  | extern AVOutputFormat yuv4mpegpipe_oformat; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | /* utils.c */ | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | #define MKTAG(a,b,c,d) (a | (b << 8) | (c << 16) | (d << 24))
 | 
					
						
							|  |  |  | #define MKBETAG(a,b,c,d) (d | (c << 8) | (b << 16) | (a << 24))
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | void av_register_input_format(AVInputFormat *format); | 
					
						
							|  |  |  | void av_register_output_format(AVOutputFormat *format); | 
					
						
							| 
									
										
										
										
											2002-07-27 02:52:52 +00:00
										 |  |  | AVOutputFormat *guess_stream_format(const char *short_name,  | 
					
						
							|  |  |  |                                     const char *filename, const char *mime_type); | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | AVOutputFormat *guess_format(const char *short_name,  | 
					
						
							|  |  |  |                              const char *filename, const char *mime_type); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | void av_hex_dump(UINT8 *buf, int size); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-07-25 16:01:46 +00:00
										 |  |  | void av_register_all(void); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef struct FifoBuffer { | 
					
						
							|  |  |  |     UINT8 *buffer; | 
					
						
							|  |  |  |     UINT8 *rptr, *wptr, *end; | 
					
						
							|  |  |  | } FifoBuffer; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int fifo_init(FifoBuffer *f, int size); | 
					
						
							|  |  |  | void fifo_free(FifoBuffer *f); | 
					
						
							|  |  |  | int fifo_size(FifoBuffer *f, UINT8 *rptr); | 
					
						
							|  |  |  | int fifo_read(FifoBuffer *f, UINT8 *buf, int buf_size, UINT8 **rptr_ptr); | 
					
						
							|  |  |  | void fifo_write(FifoBuffer *f, UINT8 *buf, int size, UINT8 **wptr_ptr); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | /* media file input */ | 
					
						
							|  |  |  | AVInputFormat *av_find_input_format(const char *short_name); | 
					
						
							| 
									
										
										
										
											2002-07-25 16:01:46 +00:00
										 |  |  | AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened); | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,  | 
					
						
							|  |  |  |                        AVInputFormat *fmt, | 
					
						
							|  |  |  |                        int buf_size, | 
					
						
							|  |  |  |                        AVFormatParameters *ap); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #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 */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int av_find_stream_info(AVFormatContext *ic); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | int av_read_packet(AVFormatContext *s, AVPacket *pkt); | 
					
						
							|  |  |  | void av_close_input_file(AVFormatContext *s); | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | AVStream *av_new_stream(AVFormatContext *s, int id); | 
					
						
							| 
									
										
										
										
											2002-10-21 15:54:49 +00:00
										 |  |  | void av_set_pts_info(AVFormatContext *s, int pts_wrap_bits, | 
					
						
							|  |  |  |                      int pts_num, int pts_den); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | /* media file output */ | 
					
						
							| 
									
										
										
										
											2003-01-11 04:56:29 +00:00
										 |  |  | int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap); | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | int av_write_header(AVFormatContext *s); | 
					
						
							| 
									
										
										
										
											2002-10-21 17:40:23 +00:00
										 |  |  | int av_write_frame(AVFormatContext *s, int stream_index, const uint8_t *buf,  | 
					
						
							|  |  |  |                    int size); | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | int av_write_trailer(AVFormatContext *s); | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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); | 
					
						
							|  |  |  | INT64 parse_date(const char *datestr, int duration); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-07-25 16:01:46 +00:00
										 |  |  | INT64 av_gettime(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-07-22 14:18:56 +00:00
										 |  |  | /* ffm specific for ffserver */ | 
					
						
							|  |  |  | #define FFM_PACKET_SIZE 4096
 | 
					
						
							|  |  |  | offset_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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-09-16 21:48:59 +00:00
										 |  |  | int get_frame_filename(char *buf, int buf_size, | 
					
						
							|  |  |  |                        const char *path, int number); | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | int filename_number_test(const char *filename); | 
					
						
							| 
									
										
										
										
											2001-09-24 23:25:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-05-20 16:28:47 +00:00
										 |  |  | /* grab specific */ | 
					
						
							|  |  |  | int video_grab_init(void); | 
					
						
							|  |  |  | int audio_init(void); | 
					
						
							| 
									
										
										
										
											2001-09-24 23:25:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-01-23 09:55:19 +00:00
										 |  |  | /* DV1394 */ | 
					
						
							|  |  |  | int dv1394_init(void); | 
					
						
							| 
									
										
										
										
											2002-07-24 18:05:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef HAVE_AV_CONFIG_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); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-11-20 14:54:46 +00:00
										 |  |  | int match_ext(const char *filename, const char *extensions); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-07-24 18:05:26 +00:00
										 |  |  | #endif /* HAVE_AV_CONFIG_H */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-01-28 20:20:38 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-07-24 18:05:26 +00:00
										 |  |  | #endif /* AVFORMAT_H */
 |