• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • Examples
  • File List
  • Globals

debian/tmp/usr/include/libavformat/avformat.h

Go to the documentation of this file.
00001 /*
00002  * copyright (c) 2001 Fabrice Bellard
00003  *
00004  * This file is part of FFmpeg.
00005  *
00006  * FFmpeg is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * FFmpeg is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with FFmpeg; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00019  */
00020 
00021 #ifndef AVFORMAT_AVFORMAT_H
00022 #define AVFORMAT_AVFORMAT_H
00023 
00024 
00028 unsigned avformat_version(void);
00029 
00033 const char *avformat_configuration(void);
00034 
00038 const char *avformat_license(void);
00039 
00040 #include <time.h>
00041 #include <stdio.h>  /* FILE */
00042 #include "libavcodec/avcodec.h"
00043 #include "libavutil/dict.h"
00044 
00045 #include "avio.h"
00046 #include "libavformat/version.h"
00047 
00048 struct AVFormatContext;
00049 
00050 
00117 #if FF_API_OLD_METADATA2
00118 
00125 #define AV_METADATA_MATCH_CASE      AV_DICT_MATCH_CASE
00126 #define AV_METADATA_IGNORE_SUFFIX   AV_DICT_IGNORE_SUFFIX
00127 #define AV_METADATA_DONT_STRDUP_KEY AV_DICT_DONT_STRDUP_KEY
00128 #define AV_METADATA_DONT_STRDUP_VAL AV_DICT_DONT_STRDUP_VAL
00129 #define AV_METADATA_DONT_OVERWRITE  AV_DICT_DONT_OVERWRITE
00130 
00131 typedef attribute_deprecated AVDictionary AVMetadata;
00132 typedef attribute_deprecated AVDictionaryEntry  AVMetadataTag;
00133 
00134 typedef struct AVMetadataConv AVMetadataConv;
00135 
00144 attribute_deprecated AVDictionaryEntry *
00145 av_metadata_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags);
00146 
00147 #if FF_API_OLD_METADATA
00148 
00158 attribute_deprecated int av_metadata_set(AVMetadata **pm, const char *key, const char *value);
00159 #endif
00160 
00171 attribute_deprecated int av_metadata_set2(AVDictionary **pm, const char *key, const char *value, int flags);
00172 
00176 attribute_deprecated void av_metadata_conv(struct AVFormatContext *ctx, const AVMetadataConv *d_conv,
00177                                                                         const AVMetadataConv *s_conv);
00178 
00187 attribute_deprecated void av_metadata_copy(AVDictionary **dst, AVDictionary *src, int flags);
00188 
00192 attribute_deprecated void av_metadata_free(AVDictionary **m);
00196 #endif
00197 
00198 
00199 /* packet functions */
00200 
00201 
00210 int av_get_packet(AVIOContext *s, AVPacket *pkt, int size);
00211 
00212 
00226 int av_append_packet(AVIOContext *s, AVPacket *pkt, int size);
00227 
00228 /*************************************************/
00229 /* fractional numbers for exact pts handling */
00230 
00235 typedef struct AVFrac {
00236     int64_t val, num, den;
00237 } AVFrac;
00238 
00239 /*************************************************/
00240 /* input/output formats */
00241 
00242 struct AVCodecTag;
00243 
00247 typedef struct AVProbeData {
00248     const char *filename;
00249     unsigned char *buf; 
00250     int buf_size;       
00251 } AVProbeData;
00252 
00253 #define AVPROBE_SCORE_MAX 100               ///< maximum score, half of that is used for file-extension-based detection
00254 #define AVPROBE_PADDING_SIZE 32             ///< extra allocated bytes at the end of the probe buffer
00255 
00256 typedef struct AVFormatParameters {
00257 #if FF_API_FORMAT_PARAMETERS
00258     attribute_deprecated AVRational time_base;
00259     attribute_deprecated int sample_rate;
00260     attribute_deprecated int channels;
00261     attribute_deprecated int width;
00262     attribute_deprecated int height;
00263     attribute_deprecated enum PixelFormat pix_fmt;
00264     attribute_deprecated int channel; 
00265     attribute_deprecated const char *standard; 
00266     attribute_deprecated unsigned int mpeg2ts_raw:1;  
00268     attribute_deprecated unsigned int mpeg2ts_compute_pcr:1;
00269     attribute_deprecated unsigned int initial_pause:1;       
00271     attribute_deprecated unsigned int prealloced_context:1;
00272 #endif
00273 #if FF_API_PARAMETERS_CODEC_ID
00274     attribute_deprecated enum CodecID video_codec_id;
00275     attribute_deprecated enum CodecID audio_codec_id;
00276 #endif
00277 } AVFormatParameters;
00278 
00280 #define AVFMT_NOFILE        0x0001
00281 #define AVFMT_NEEDNUMBER    0x0002 
00282 #define AVFMT_SHOW_IDS      0x0008 
00283 #define AVFMT_RAWPICTURE    0x0020 
00285 #define AVFMT_GLOBALHEADER  0x0040 
00286 #define AVFMT_NOTIMESTAMPS  0x0080 
00287 #define AVFMT_GENERIC_INDEX 0x0100 
00288 #define AVFMT_TS_DISCONT    0x0200 
00289 #define AVFMT_VARIABLE_FPS  0x0400 
00290 #define AVFMT_NODIMENSIONS  0x0800 
00291 #define AVFMT_NOSTREAMS     0x1000 
00292 #define AVFMT_NOBINSEARCH   0x2000 
00293 #define AVFMT_NOGENSEARCH   0x4000 
00294 #define AVFMT_TS_NONSTRICT  0x8000 
00298 typedef struct AVOutputFormat {
00299     const char *name;
00305     const char *long_name;
00306     const char *mime_type;
00307     const char *extensions; 
00311     int priv_data_size;
00312     /* output support */
00313     enum CodecID audio_codec; 
00314     enum CodecID video_codec; 
00315     int (*write_header)(struct AVFormatContext *);
00316     int (*write_packet)(struct AVFormatContext *, AVPacket *pkt);
00317     int (*write_trailer)(struct AVFormatContext *);
00323     int flags;
00324 
00325     void *dummy;
00326 
00327     int (*interleave_packet)(struct AVFormatContext *, AVPacket *out,
00328                              AVPacket *in, int flush);
00329 
00334     const struct AVCodecTag * const *codec_tag;
00335 
00336     enum CodecID subtitle_codec; 
00338 #if FF_API_OLD_METADATA2
00339     const AVMetadataConv *metadata_conv;
00340 #endif
00341 
00342     const AVClass *priv_class; 
00343 
00344     /* private fields */
00345     struct AVOutputFormat *next;
00346 } AVOutputFormat;
00347 
00348 typedef struct AVInputFormat {
00353     const char *name;
00354 
00360     const char *long_name;
00361 
00365     int priv_data_size;
00366 
00372     int (*read_probe)(AVProbeData *);
00373 
00380     int (*read_header)(struct AVFormatContext *,
00381                        AVFormatParameters *ap);
00382 
00392     int (*read_packet)(struct AVFormatContext *, AVPacket *pkt);
00393 
00398     int (*read_close)(struct AVFormatContext *);
00399 
00400 #if FF_API_READ_SEEK
00401 
00409     attribute_deprecated int (*read_seek)(struct AVFormatContext *,
00410                                           int stream_index, int64_t timestamp, int flags);
00411 #endif
00412 
00416     int64_t (*read_timestamp)(struct AVFormatContext *s, int stream_index,
00417                               int64_t *pos, int64_t pos_limit);
00418 
00422     int flags;
00423 
00429     const char *extensions;
00430 
00434     int value;
00435 
00440     int (*read_play)(struct AVFormatContext *);
00441 
00446     int (*read_pause)(struct AVFormatContext *);
00447 
00448     const struct AVCodecTag * const *codec_tag;
00449 
00456     int (*read_seek2)(struct AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
00457 
00458 #if FF_API_OLD_METADATA2
00459     const AVMetadataConv *metadata_conv;
00460 #endif
00461 
00462     const AVClass *priv_class; 
00463 
00464     /* private fields */
00465     struct AVInputFormat *next;
00466 } AVInputFormat;
00467 
00468 enum AVStreamParseType {
00469     AVSTREAM_PARSE_NONE,
00470     AVSTREAM_PARSE_FULL,       
00471     AVSTREAM_PARSE_HEADERS,    
00472     AVSTREAM_PARSE_TIMESTAMPS, 
00473     AVSTREAM_PARSE_FULL_ONCE,  
00474 };
00475 
00476 typedef struct AVIndexEntry {
00477     int64_t pos;
00478     int64_t timestamp;
00479 #define AVINDEX_KEYFRAME 0x0001
00480     int flags:2;
00481     int size:30; //Yeah, trying to keep the size of this small to reduce memory requirements (it is 24 vs. 32 bytes due to possible 8-byte alignment).
00482     int min_distance;         
00483 } AVIndexEntry;
00484 
00485 #define AV_DISPOSITION_DEFAULT   0x0001
00486 #define AV_DISPOSITION_DUB       0x0002
00487 #define AV_DISPOSITION_ORIGINAL  0x0004
00488 #define AV_DISPOSITION_COMMENT   0x0008
00489 #define AV_DISPOSITION_LYRICS    0x0010
00490 #define AV_DISPOSITION_KARAOKE   0x0020
00491 
00497 #define AV_DISPOSITION_FORCED    0x0040
00498 #define AV_DISPOSITION_HEARING_IMPAIRED  0x0080  
00499 #define AV_DISPOSITION_VISUAL_IMPAIRED   0x0100  
00500 #define AV_DISPOSITION_CLEAN_EFFECTS     0x0200  
00509 typedef struct AVStream {
00510     int index;    
00511     int id;       
00512     AVCodecContext *codec; 
00521     AVRational r_frame_rate;
00522     void *priv_data;
00523 
00524     /* internal data used in av_find_stream_info() */
00525     int64_t first_dts;
00526 
00530     struct AVFrac pts;
00531 
00539     AVRational time_base;
00540     int pts_wrap_bits; 
00541     /* ffmpeg.c private use */
00542     int stream_copy; 
00543     enum AVDiscard discard; 
00544 
00545     //FIXME move stuff to a flags field?
00550     float quality;
00551 
00560     int64_t start_time;
00561 
00567     int64_t duration;
00568 
00569 #if FF_API_OLD_METADATA
00570     attribute_deprecated char language[4]; 
00571 #endif
00572 
00573     /* av_read_frame() support */
00574     enum AVStreamParseType need_parsing;
00575     struct AVCodecParserContext *parser;
00576 
00577     int64_t cur_dts;
00578     int last_IP_duration;
00579     int64_t last_IP_pts;
00580     /* av_seek_frame() support */
00581     AVIndexEntry *index_entries; 
00583     int nb_index_entries;
00584     unsigned int index_entries_allocated_size;
00585 
00586     int64_t nb_frames;                 
00587 
00588 #if FF_API_LAVF_UNUSED
00589     attribute_deprecated int64_t unused[4+1];
00590 #endif
00591 
00592 #if FF_API_OLD_METADATA
00593     attribute_deprecated char *filename; 
00594 #endif
00595 
00596     int disposition; 
00598     AVProbeData probe_data;
00599 #define MAX_REORDER_DELAY 16
00600     int64_t pts_buffer[MAX_REORDER_DELAY+1];
00601 
00607     AVRational sample_aspect_ratio;
00608 
00609     AVDictionary *metadata;
00610 
00611     /* Intended mostly for av_read_frame() support. Not supposed to be used by */
00612     /* external applications; try to use something else if at all possible.    */
00613     const uint8_t *cur_ptr;
00614     int cur_len;
00615     AVPacket cur_pkt;
00616 
00617     // Timestamp generation support:
00625     int64_t reference_dts;
00626 
00631 #define MAX_PROBE_PACKETS 2500
00632     int probe_packets;
00633 
00638     struct AVPacketList *last_in_packet_buffer;
00639 
00643     AVRational avg_frame_rate;
00644 
00648     int codec_info_nb_frames;
00649 
00655     int stream_identifier;
00656 
00660 #define MAX_STD_TIMEBASES (60*12+5)
00661     struct {
00662         int64_t last_dts;
00663         int64_t duration_gcd;
00664         int duration_count;
00665         double duration_error[MAX_STD_TIMEBASES];
00666         int64_t codec_info_duration;
00667     } *info;
00668 
00673     int request_probe;
00674 } AVStream;
00675 
00676 #define AV_PROGRAM_RUNNING 1
00677 
00684 typedef struct AVProgram {
00685     int            id;
00686 #if FF_API_OLD_METADATA
00687     attribute_deprecated char           *provider_name; 
00688     attribute_deprecated char           *name;          
00689 #endif
00690     int            flags;
00691     enum AVDiscard discard;        
00692     unsigned int   *stream_index;
00693     unsigned int   nb_stream_indexes;
00694     AVDictionary *metadata;
00695 
00696     int program_num;
00697     int pmt_pid;
00698     int pcr_pid;
00699 } AVProgram;
00700 
00701 #define AVFMTCTX_NOHEADER      0x0001 
00704 typedef struct AVChapter {
00705     int id;                 
00706     AVRational time_base;   
00707     int64_t start, end;     
00708 #if FF_API_OLD_METADATA
00709     attribute_deprecated char *title;            
00710 #endif
00711     AVDictionary *metadata;
00712 } AVChapter;
00713 
00714 #if FF_API_MAX_STREAMS
00715 #define MAX_STREAMS 20
00716 #endif
00717 
00725 typedef struct AVFormatContext {
00726     const AVClass *av_class; 
00727     /* Can only be iformat or oformat, not both at the same time. */
00728     struct AVInputFormat *iformat;
00729     struct AVOutputFormat *oformat;
00730     void *priv_data;
00731     AVIOContext *pb;
00732     unsigned int nb_streams;
00733 #if FF_API_MAX_STREAMS
00734     AVStream *streams[MAX_STREAMS];
00735 #else
00736     AVStream **streams;
00737 #endif
00738     char filename[1024]; 
00739     /* stream info */
00740     int64_t timestamp;
00741 #if FF_API_OLD_METADATA
00742     attribute_deprecated char title[512];
00743     attribute_deprecated char author[512];
00744     attribute_deprecated char copyright[512];
00745     attribute_deprecated char comment[512];
00746     attribute_deprecated char album[512];
00747     attribute_deprecated int year;  
00748     attribute_deprecated int track; 
00749     attribute_deprecated char genre[32]; 
00750 #endif
00751 
00752     int ctx_flags; 
00753     /* private data for pts handling (do not modify directly). */
00759     struct AVPacketList *packet_buffer;
00760 
00766     int64_t start_time;
00767 
00774     int64_t duration;
00775 
00779     int64_t file_size;
00780 
00786     int bit_rate;
00787 
00788     /* av_read_frame() support */
00789     AVStream *cur_st;
00790 #if FF_API_LAVF_UNUSED
00791     const uint8_t *cur_ptr_deprecated;
00792     int cur_len_deprecated;
00793     AVPacket cur_pkt_deprecated;
00794 #endif
00795 
00796     /* av_seek_frame() support */
00797     int64_t data_offset; 
00798 #if FF_API_INDEX_BUILT
00799     attribute_deprecated int index_built;
00800 #endif
00801 
00802     int mux_rate;
00803     unsigned int packet_size;
00804     int preload;
00805     int max_delay;
00806 
00807 #define AVFMT_NOOUTPUTLOOP -1
00808 #define AVFMT_INFINITEOUTPUTLOOP 0
00809 
00812     int loop_output;
00813 
00814     int flags;
00815 #define AVFMT_FLAG_GENPTS       0x0001 ///< Generate missing pts even if it requires parsing future frames.
00816 #define AVFMT_FLAG_IGNIDX       0x0002 ///< Ignore index.
00817 #define AVFMT_FLAG_NONBLOCK     0x0004 ///< Do not block when reading packets from input.
00818 #define AVFMT_FLAG_IGNDTS       0x0008 ///< Ignore DTS on frames that contain both DTS & PTS
00819 #define AVFMT_FLAG_NOFILLIN     0x0010 ///< Do not infer any values from other values, just return what is stored in the container
00820 #define AVFMT_FLAG_NOPARSE      0x0020 ///< Do not use AVParsers, you also must set AVFMT_FLAG_NOFILLIN as the fillin code works on frames and no parsing -> no frames. Also seeking to frames can not work if parsing to find frame boundaries has been disabled
00821 #if FF_API_FLAG_RTP_HINT
00822 #define AVFMT_FLAG_RTP_HINT     0x0040 ///< Deprecated, use the -movflags rtphint muxer specific AVOption instead
00823 #endif
00824 #define AVFMT_FLAG_CUSTOM_IO    0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it.
00825 #define AVFMT_FLAG_MP4A_LATM    0x8000 ///< Enable RTP MP4A-LATM payload
00826 #define AVFMT_FLAG_SORT_DTS    0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down)
00827 #define AVFMT_FLAG_PRIV_OPT    0x20000 ///< Enable use of private options by delaying codec open (this could be made default once all code is converted)
00828 #define AVFMT_FLAG_KEEP_SIDE_DATA 0x40000 ///< Dont merge side data but keep it seperate.
00829 
00830     int loop_input;
00831 
00835     unsigned int probesize;
00836 
00841     int max_analyze_duration;
00842 
00843     const uint8_t *key;
00844     int keylen;
00845 
00846     unsigned int nb_programs;
00847     AVProgram **programs;
00848 
00853     enum CodecID video_codec_id;
00854 
00859     enum CodecID audio_codec_id;
00860 
00865     enum CodecID subtitle_codec_id;
00866 
00877     unsigned int max_index_size;
00878 
00883     unsigned int max_picture_buffer;
00884 
00885     unsigned int nb_chapters;
00886     AVChapter **chapters;
00887 
00891     int debug;
00892 #define FF_FDEBUG_TS        0x0001
00893 
00900     struct AVPacketList *raw_packet_buffer;
00901     struct AVPacketList *raw_packet_buffer_end;
00902 
00903     struct AVPacketList *packet_buffer_end;
00904 
00905     AVDictionary *metadata;
00906 
00911 #define RAW_PACKET_BUFFER_SIZE 2500000
00912     int raw_packet_buffer_remaining_size;
00913 
00921     int64_t start_time_realtime;
00922 
00926     int fps_probe_size;
00927 
00932     int ts_id;
00933 } AVFormatContext;
00934 
00935 typedef struct AVPacketList {
00936     AVPacket pkt;
00937     struct AVPacketList *next;
00938 } AVPacketList;
00939 
00940 #if FF_API_FIRST_FORMAT
00941 attribute_deprecated extern AVInputFormat *first_iformat;
00942 attribute_deprecated extern AVOutputFormat *first_oformat;
00943 #endif
00944 
00950 AVInputFormat  *av_iformat_next(AVInputFormat  *f);
00951 
00957 AVOutputFormat *av_oformat_next(AVOutputFormat *f);
00958 
00959 #if FF_API_GUESS_IMG2_CODEC
00960 attribute_deprecated enum CodecID av_guess_image2_codec(const char *filename);
00961 #endif
00962 
00963 /* XXX: Use automatic init with either ELF sections or C file parser */
00964 /* modules. */
00965 
00966 /* utils.c */
00967 void av_register_input_format(AVInputFormat *format);
00968 void av_register_output_format(AVOutputFormat *format);
00969 #if FF_API_GUESS_FORMAT
00970 attribute_deprecated AVOutputFormat *guess_stream_format(const char *short_name,
00971                                     const char *filename,
00972                                     const char *mime_type);
00973 
00977 attribute_deprecated AVOutputFormat *guess_format(const char *short_name,
00978                                                   const char *filename,
00979                                                   const char *mime_type);
00980 #endif
00981 
00994 AVOutputFormat *av_guess_format(const char *short_name,
00995                                 const char *filename,
00996                                 const char *mime_type);
00997 
01001 enum CodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name,
01002                             const char *filename, const char *mime_type,
01003                             enum AVMediaType type);
01004 
01014 void av_hex_dump(FILE *f, uint8_t *buf, int size);
01015 
01028 void av_hex_dump_log(void *avcl, int level, uint8_t *buf, int size);
01029 
01038 void av_pkt_dump2(FILE *f, AVPacket *pkt, int dump_payload, AVStream *st);
01039 
01040 
01052 void av_pkt_dump_log2(void *avcl, int level, AVPacket *pkt, int dump_payload,
01053                       AVStream *st);
01054 
01055 #if FF_API_PKT_DUMP
01056 attribute_deprecated void av_pkt_dump(FILE *f, AVPacket *pkt, int dump_payload);
01057 attribute_deprecated void av_pkt_dump_log(void *avcl, int level, AVPacket *pkt,
01058                                           int dump_payload);
01059 #endif
01060 
01070 void av_register_all(void);
01071 
01079 enum CodecID av_codec_get_id(const struct AVCodecTag * const *tags, unsigned int tag);
01080 
01088 unsigned int av_codec_get_tag(const struct AVCodecTag * const *tags, enum CodecID id);
01089 
01090 /* media file input */
01091 
01095 AVInputFormat *av_find_input_format(const char *short_name);
01096 
01103 AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened);
01104 
01116 AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score_max);
01117 
01125 AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score_ret);
01126 
01142 int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
01143                           const char *filename, void *logctx,
01144                           unsigned int offset, unsigned int max_probe_size);
01145 
01146 #if FF_API_FORMAT_PARAMETERS
01147 
01152 attribute_deprecated int av_open_input_stream(AVFormatContext **ic_ptr,
01153                          AVIOContext *pb, const char *filename,
01154                          AVInputFormat *fmt, AVFormatParameters *ap);
01155 
01170 attribute_deprecated int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
01171                        AVInputFormat *fmt,
01172                        int buf_size,
01173                        AVFormatParameters *ap);
01174 #endif
01175 
01195 int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options);
01196 
01197 #if FF_API_ALLOC_FORMAT_CONTEXT
01198 
01201 attribute_deprecated AVFormatContext *av_alloc_format_context(void);
01202 #endif
01203 int av_demuxer_open(AVFormatContext *ic, AVFormatParameters *ap);
01204 
01210 AVFormatContext *avformat_alloc_context(void);
01211 
01212 #if FF_API_ALLOC_OUTPUT_CONTEXT
01213 
01216 attribute_deprecated
01217 AVFormatContext *avformat_alloc_output_context(const char *format,
01218                                                AVOutputFormat *oformat,
01219                                                const char *filename);
01220 #endif
01221 
01238 int avformat_alloc_output_context2(AVFormatContext **ctx, AVOutputFormat *oformat,
01239                                    const char *format_name, const char *filename);
01240 
01241 #if FF_API_FORMAT_PARAMETERS
01242 
01257 int av_find_stream_info(AVFormatContext *ic);
01258 #endif
01259 
01281 int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options);
01282 
01307 int av_find_best_stream(AVFormatContext *ic,
01308                         enum AVMediaType type,
01309                         int wanted_stream_nb,
01310                         int related_stream,
01311                         AVCodec **decoder_ret,
01312                         int flags);
01313 
01324 int av_read_packet(AVFormatContext *s, AVPacket *pkt);
01325 
01350 int av_read_frame(AVFormatContext *s, AVPacket *pkt);
01351 
01363 int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp,
01364                   int flags);
01365 
01392 int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
01393 
01398 int av_read_play(AVFormatContext *s);
01399 
01405 int av_read_pause(AVFormatContext *s);
01406 
01411 void av_close_input_stream(AVFormatContext *s);
01412 
01418 void av_close_input_file(AVFormatContext *s);
01419 
01424 void avformat_free_context(AVFormatContext *s);
01425 
01436 AVStream *av_new_stream(AVFormatContext *s, int id);
01437 AVProgram *av_new_program(AVFormatContext *s, int id);
01438 
01449 void av_set_pts_info(AVStream *s, int pts_wrap_bits,
01450                      unsigned int pts_num, unsigned int pts_den);
01451 
01452 #define AVSEEK_FLAG_BACKWARD 1 ///< seek backward
01453 #define AVSEEK_FLAG_BYTE     2 ///< seeking based on position in bytes
01454 #define AVSEEK_FLAG_ANY      4 ///< seek to any frame, even non-keyframes
01455 #define AVSEEK_FLAG_FRAME    8 ///< seeking based on frame number
01456 
01457 int av_find_default_stream_index(AVFormatContext *s);
01458 
01467 int av_index_search_timestamp(AVStream *st, int64_t timestamp, int flags);
01468 
01475 int av_add_index_entry(AVStream *st, int64_t pos, int64_t timestamp,
01476                        int size, int distance, int flags);
01477 
01486 int av_seek_frame_binary(AVFormatContext *s, int stream_index,
01487                          int64_t target_ts, int flags);
01488 
01497 void av_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp);
01498 
01506 int64_t av_gen_search(AVFormatContext *s, int stream_index,
01507                       int64_t target_ts, int64_t pos_min,
01508                       int64_t pos_max, int64_t pos_limit,
01509                       int64_t ts_min, int64_t ts_max,
01510                       int flags, int64_t *ts_ret,
01511                       int64_t (*read_timestamp)(struct AVFormatContext *, int , int64_t *, int64_t ));
01512 
01516 #if FF_API_FORMAT_PARAMETERS
01517 
01520 attribute_deprecated int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap);
01521 #endif
01522 
01542 void av_url_split(char *proto,         int proto_size,
01543                   char *authorization, int authorization_size,
01544                   char *hostname,      int hostname_size,
01545                   int *port_ptr,
01546                   char *path,          int path_size,
01547                   const char *url);
01548 
01564 int avformat_write_header(AVFormatContext *s, AVDictionary **options);
01565 
01566 #if FF_API_FORMAT_PARAMETERS
01567 
01578 attribute_deprecated int av_write_header(AVFormatContext *s);
01579 #endif
01580 
01593 int av_write_frame(AVFormatContext *s, AVPacket *pkt);
01594 
01610 int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt);
01611 
01627 int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
01628                                  AVPacket *pkt, int flush);
01629 
01639 int av_write_trailer(AVFormatContext *s);
01640 
01641 #if FF_API_DUMP_FORMAT
01642 
01645 attribute_deprecated void dump_format(AVFormatContext *ic,
01646                                       int index,
01647                                       const char *url,
01648                                       int is_output);
01649 #endif
01650 
01651 void av_dump_format(AVFormatContext *ic,
01652                     int index,
01653                     const char *url,
01654                     int is_output);
01655 
01656 #if FF_API_PARSE_FRAME_PARAM
01657 
01661 attribute_deprecated int parse_image_size(int *width_ptr, int *height_ptr,
01662                                           const char *str);
01663 
01668 attribute_deprecated int parse_frame_rate(int *frame_rate, int *frame_rate_base,
01669                                           const char *arg);
01670 #endif
01671 
01672 #if FF_API_PARSE_DATE
01673 
01680 attribute_deprecated
01681 int64_t parse_date(const char *datestr, int duration);
01682 #endif
01683 
01687 int64_t av_gettime(void);
01688 
01689 #if FF_API_FIND_INFO_TAG
01690 
01693 attribute_deprecated int find_info_tag(char *arg, int arg_size, const char *tag1, const char *info);
01694 #endif
01695 
01708 int av_get_frame_filename(char *buf, int buf_size,
01709                           const char *path, int number);
01710 
01717 int av_filename_number_test(const char *filename);
01718 
01733 int av_sdp_create(AVFormatContext *ac[], int n_files, char *buf, int size);
01734 
01735 #if FF_API_SDP_CREATE
01736 attribute_deprecated int avf_sdp_create(AVFormatContext *ac[], int n_files, char *buff, int size);
01737 #endif
01738 
01745 int av_match_ext(const char *filename, const char *extensions);
01746 
01747 #endif /* AVFORMAT_AVFORMAT_H */

Generated on Wed Apr 11 2012 07:31:32 for FFmpeg by  doxygen 1.7.1