[FFmpeg-devel] [PATCH v3 11/34] avformat: add control_message function to AVInputFormat

Diederick Niehorster dcnieho at gmail.com
Tue Jul 6 12:19:57 EEST 2021


Control messages are useful for programmatic control of not only outdevs
but also indevs.

Bumping avformat version.

Signed-off-by: Diederick Niehorster <dcnieho at gmail.com>
---
 libavdevice/avdevice.c | 8 +++++---
 libavformat/avformat.h | 6 ++++++
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/libavdevice/avdevice.c b/libavdevice/avdevice.c
index 4a40929007..e339cebf2d 100644
--- a/libavdevice/avdevice.c
+++ b/libavdevice/avdevice.c
@@ -53,9 +53,11 @@ const char * avdevice_license(void)
 int avdevice_app_to_dev_control_message(struct AVFormatContext *s, enum AVAppToDevMessageType type,
                                         void *data, size_t data_size)
 {
-    if (!s->oformat || !s->oformat->control_message)
-        return AVERROR(ENOSYS);
-    return s->oformat->control_message(s, type, data, data_size);
+    if (s->oformat && s->oformat->control_message)
+        return s->oformat->control_message(s, type, data, data_size);
+    if (s->iformat && s->iformat->control_message)
+        return s->iformat->control_message(s, type, data, data_size);
+    return AVERROR(ENOSYS);
 }
 
 int avdevice_dev_to_app_control_message(struct AVFormatContext *s, enum AVDevToAppMessageType type,
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index cd7b0d941c..ed02b48c84 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -742,6 +742,12 @@ typedef struct AVInputFormat {
      */
     int (*read_seek2)(struct AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
 
+    /**
+     * Allows sending messages from application to device.
+     */
+    int (*control_message)(struct AVFormatContext *s, int type,
+                           void *data, size_t data_size);
+
     /**
      * Returns device list with it properties.
      * @see avdevice_list_devices() for more details.
-- 
2.28.0.windows.1



More information about the ffmpeg-devel mailing list