From 3444c00aab6e187360a5aa66216abeb15d26ddc6 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 20 Nov 2015 03:08:34 +0100 Subject: [PATCH] avformat/ffmdec: Add cleaner API for ffserver to interface without depending on internal ABI Reviewed-by: Andreas Cadhalpun Signed-off-by: Michael Niedermayer --- 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 b392b8d8d8..c445f472f7 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 59443b6985..c3850dbf4f 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 d66eeff270..22af345f0f 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 16 +#define LIBAVFORMAT_VERSION_MINOR 17 #define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \