@@ -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,
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@outlook.com> --- libavformat/file.c | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-)