diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-04-30 21:35:48 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-04-30 22:09:15 +0200 |
commit | 492026209b9b58eaf6d2ea56423f6b1e1a8a76a5 (patch) | |
tree | b9b7f8dbccfe2ea08866bdb2fac697fd739c21c5 /libavformat/utils.c | |
parent | ce62b35c313c2618c2e3b49cae3441b3a7dd29fe (diff) | |
download | ffmpeg-492026209b9b58eaf6d2ea56423f6b1e1a8a76a5.tar.gz |
LAVFAPI: demuxer specific options.
(someone please add doxy)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r-- | libavformat/utils.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index 493c56389c..7f82d2d375 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -429,6 +429,10 @@ int av_open_input_stream(AVFormatContext **ic_ptr, err = AVERROR(ENOMEM); goto fail; } + if (fmt->priv_class) { + *(const AVClass**)ic->priv_data= fmt->priv_class; + av_opt_set_defaults(ic->priv_data); + } } else { ic->priv_data = NULL; } @@ -437,13 +441,13 @@ int av_open_input_stream(AVFormatContext **ic_ptr, if (ic->pb) ff_id3v2_read(ic, ID3v2_DEFAULT_MAGIC); - if (ic->iformat->read_header) { + if (!(ic->flags&AVFMT_FLAG_PRIV_OPT) && ic->iformat->read_header) { err = ic->iformat->read_header(ic, ap); if (err < 0) goto fail; } - if (pb && !ic->data_offset) + if (!(ic->flags&AVFMT_FLAG_PRIV_OPT) && pb && !ic->data_offset) ic->data_offset = avio_tell(ic->pb); ic->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE; @@ -470,6 +474,22 @@ int av_open_input_stream(AVFormatContext **ic_ptr, return err; } +int av_demuxer_open(AVFormatContext *ic, AVFormatParameters *ap){ + int err; + + if (ic->iformat->read_header) { + err = ic->iformat->read_header(ic, ap); + if (err < 0) + return err; + } + + if (ic->pb && !ic->data_offset) + ic->data_offset = avio_tell(ic->pb); + + return 0; +} + + /** size of probe buffer, for guessing file type from file contents */ #define PROBE_BUF_MIN 2048 #define PROBE_BUF_MAX (1<<20) |