[FFmpeg-devel] [PATCH 1/2] avformat: add AVFMT_FILE to allow demuxers to be used with and without files

Michael Niedermayer michaelni at gmx.at
Fri Sep 12 12:29:36 CEST 2014


Suggested-by: Benoit Fouet <benoit.fouet at free.fr>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
---
 doc/APIchanges         |    3 +++
 libavformat/avformat.h |    8 ++++++++
 libavformat/format.c   |    3 ++-
 libavformat/version.h  |    4 ++--
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index 6d214ef..45ed60a 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,9 @@ libavutil:     2014-08-09
 
 API changes, most recent first:
 
+2014-09-xx - xxxxxxx - lavf 56.5.100 - avformat.h
+  Add AVFMT_FILE
+
 2014-08-xx - xxxxxxx - lavc 56.1.0 - avcodec.h
   Add AV_PKT_DATA_STEREO3D to export container-level stereo3d information.
 
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index b915148..a95d702 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -446,6 +446,14 @@ typedef struct AVProbeData {
 
 #define AVFMT_SEEK_TO_PTS   0x4000000 /**< Seeking is based on PTS */
 
+#define AVFMT_FILE          0x8000000 /**< demuxer can be used with a file, this
+                                           is default if AVFMT_NOFILE is not set.
+                                           If AVFMT_NOFILE and AVFMT_FILE is set
+                                           then the demuxer can be used with and
+                                           without a file (so this flag makes
+                                           only sense together with AVFMT_NOFILE)
+                                           */
+
 /**
  * @addtogroup lavf_encoding
  * @{
diff --git a/libavformat/format.c b/libavformat/format.c
index 828ab52..d59fe8a 100644
--- a/libavformat/format.c
+++ b/libavformat/format.c
@@ -202,7 +202,8 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened,
 
     fmt = NULL;
     while ((fmt1 = av_iformat_next(fmt1))) {
-        if (!is_opened == !(fmt1->flags & AVFMT_NOFILE))
+        if (!is_opened == !(fmt1->flags & AVFMT_NOFILE) &&
+            (fmt1->flags & (AVFMT_FILE | AVFMT_NOFILE)) != (AVFMT_FILE | AVFMT_NOFILE))
             continue;
         score = 0;
         if (fmt1->read_probe) {
diff --git a/libavformat/version.h b/libavformat/version.h
index f5808eb..b1dde2c 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -30,8 +30,8 @@
 #include "libavutil/version.h"
 
 #define LIBAVFORMAT_VERSION_MAJOR 56
-#define LIBAVFORMAT_VERSION_MINOR  4
-#define LIBAVFORMAT_VERSION_MICRO 101
+#define LIBAVFORMAT_VERSION_MINOR  5
+#define LIBAVFORMAT_VERSION_MICRO 100
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
                                                LIBAVFORMAT_VERSION_MINOR, \
-- 
1.7.9.5



More information about the ffmpeg-devel mailing list