[FFmpeg-devel] [PATCH 1/3] avformat/ffmdec: Add cleaner API for ffserver to interface without depending on internal ABI

Michael Niedermayer michaelni at gmx.at
Fri Nov 20 03:26:19 CET 2015


From: Michael Niedermayer <michael at niedermayer.cc>

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
 libavformat/ffm.h     |    2 ++
 libavformat/ffmdec.c  |   14 ++++++++++++++
 libavformat/version.h |    2 +-
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/libavformat/ffm.h b/libavformat/ffm.h
index b392b8d..c445f47 100644
--- a/libavformat/ffm.h
+++ b/libavformat/ffm.h
@@ -42,6 +42,7 @@ enum {
 };
 
 typedef struct FFMContext {
+    const AVClass *class;
     /* only reading mode */
     int64_t write_index, file_size;
     int read_state;
@@ -55,6 +56,7 @@ typedef struct FFMContext {
     uint8_t *packet_ptr, *packet_end;
     uint8_t packet[FFM_PACKET_SIZE];
     int64_t start_time;
+    int server_attached;
 } FFMContext;
 
 #endif /* AVFORMAT_FFM_H */
diff --git a/libavformat/ffmdec.c b/libavformat/ffmdec.c
index 59443b6..c3850db 100644
--- a/libavformat/ffmdec.c
+++ b/libavformat/ffmdec.c
@@ -731,6 +731,19 @@ static int ffm_probe(AVProbeData *p)
     return 0;
 }
 
+static const AVOption options[] = {
+    {"server_attached", NULL, offsetof(FFMContext, server_attached), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_EXPORT },
+    {"ffm_write_index", NULL, offsetof(FFMContext, write_index), AV_OPT_TYPE_INT64, {.i64 = 0}, 0, 1, AV_OPT_FLAG_EXPORT },
+    {"ffm_file_size", NULL, offsetof(FFMContext, file_size), AV_OPT_TYPE_INT64, {.i64 = 0}, 0, 1, AV_OPT_FLAG_EXPORT },
+    { NULL },
+};
+
+static const AVClass ffm_class = {
+    .class_name = "ffm demuxer",
+    .item_name  = av_default_item_name,
+    .option     = options,
+    .version    = LIBAVUTIL_VERSION_INT,
+};
 AVInputFormat ff_ffm_demuxer = {
     .name           = "ffm",
     .long_name      = NULL_IF_CONFIG_SMALL("FFM (FFserver live feed)"),
@@ -740,4 +753,5 @@ AVInputFormat ff_ffm_demuxer = {
     .read_packet    = ffm_read_packet,
     .read_close     = ffm_close,
     .read_seek      = ffm_seek,
+    .priv_class     = &ffm_class,
 };
diff --git a/libavformat/version.h b/libavformat/version.h
index 55198e7..d66eeff 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -30,7 +30,7 @@
 #include "libavutil/version.h"
 
 #define LIBAVFORMAT_VERSION_MAJOR  57
-#define LIBAVFORMAT_VERSION_MINOR  15
+#define LIBAVFORMAT_VERSION_MINOR  16
 #define LIBAVFORMAT_VERSION_MICRO 100
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
-- 
1.7.9.5



More information about the ffmpeg-devel mailing list