[FFmpeg-devel] [PATCH 2/2] avformat/file: Combine all CONFIG_ANDROID_CONTENT_PROTOCOL blocks

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sat Mar 23 14:20:12 EET 2024


Besides improving readability this also ensures that
a developer who has the android content protocol enabled
and works on the other parts of the file will not
forget to add necessary inclusions just because of
(indirect) inclusions from the files included only
when said protocol is enabled.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 libavformat/file.c | 36 +++++++++++++++---------------------
 1 file changed, 15 insertions(+), 21 deletions(-)

diff --git a/libavformat/file.c b/libavformat/file.c
index 8f3b35c795..182995717a 100644
--- a/libavformat/file.c
+++ b/libavformat/file.c
@@ -40,12 +40,6 @@
 #include <stdlib.h>
 #include "os_support.h"
 #include "url.h"
-#if CONFIG_ANDROID_CONTENT_PROTOCOL
-#include <jni.h>
-#include "libavcodec/jni.h"
-#include "libavcodec/ffjni.c"
-#endif
-
 
 /* Some systems may not have S_ISFIFO */
 #ifndef S_ISFIFO
@@ -107,21 +101,6 @@ typedef struct FileContext {
     int64_t initial_pos;
 } FileContext;
 
-
-#if CONFIG_ANDROID_CONTENT_PROTOCOL
-static const AVOption android_content_options[] = {
-    { "blocksize", "set I/O operation maximum block size", offsetof(FileContext, blocksize), AV_OPT_TYPE_INT, { .i64 = INT_MAX }, 1, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
-    { NULL }
-};
-
-static const AVClass android_content_class = {
-    .class_name = "android_content",
-    .item_name  = av_default_item_name,
-    .option     = android_content_options,
-    .version    = LIBAVUTIL_VERSION_INT,
-};
-#endif
-
 static const AVOption file_options[] = {
     { "truncate", "truncate existing files on write", offsetof(FileContext, trunc), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, AV_OPT_FLAG_ENCODING_PARAM },
     { "blocksize", "set I/O operation maximum block size", offsetof(FileContext, blocksize), AV_OPT_TYPE_INT, { .i64 = INT_MAX }, 1, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
@@ -547,6 +526,9 @@ const URLProtocol ff_fd_protocol = {
 #endif /* CONFIG_FD_PROTOCOL */
 
 #if CONFIG_ANDROID_CONTENT_PROTOCOL
+#include <jni.h>
+#include "libavcodec/jni.h"
+#include "libavcodec/ffjni.c"
 
 typedef struct JFields {
     jclass uri_class;
@@ -670,6 +652,18 @@ done:
     return ret;
 }
 
+static const AVOption android_content_options[] = {
+    { "blocksize", "set I/O operation maximum block size", offsetof(FileContext, blocksize), AV_OPT_TYPE_INT, { .i64 = INT_MAX }, 1, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
+    { NULL }
+};
+
+static const AVClass android_content_class = {
+    .class_name = "android_content",
+    .item_name  = av_default_item_name,
+    .option     = android_content_options,
+    .version    = LIBAVUTIL_VERSION_INT,
+};
+
 const URLProtocol ff_android_content_protocol = {
     .name                = "content",
     .url_open            = android_content_open,
-- 
2.40.1



More information about the ffmpeg-devel mailing list