aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-04-30 21:35:48 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-04-30 22:09:15 +0200
commit492026209b9b58eaf6d2ea56423f6b1e1a8a76a5 (patch)
treeb9b7f8dbccfe2ea08866bdb2fac697fd739c21c5 /libavformat/utils.c
parentce62b35c313c2618c2e3b49cae3441b3a7dd29fe (diff)
downloadffmpeg-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.c24
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)