summaryrefslogtreecommitdiff
path: root/jni/com_android_providers_media_FuseDaemon.cpp
diff options
context:
space:
mode:
authorBiswarup Pal <biswarupp@google.com>2021-02-15 13:39:36 +0000
committerBiswarup Pal <biswarupp@google.com>2021-02-22 19:39:25 +0000
commit93f4ec14166422b980a3d2535e8fb368936cba4d (patch)
tree28168df7bb4af7d3462f8c3c37ba33ff7d2f9697 /jni/com_android_providers_media_FuseDaemon.cpp
parent2ed0cd05470c6328c5b484f7599235120d3bb819 (diff)
downloadMediaProvider-93f4ec14166422b980a3d2535e8fb368936cba4d.tar.gz
Implement MediaProvider#getOriginalMediaFormatFileDescriptor
Test: TranscodeTest Bug: 170488060 Change-Id: I74e9e0de58a2b6283ddc1a485f5aecfcfd9eb609
Diffstat (limited to 'jni/com_android_providers_media_FuseDaemon.cpp')
-rw-r--r--jni/com_android_providers_media_FuseDaemon.cpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/jni/com_android_providers_media_FuseDaemon.cpp b/jni/com_android_providers_media_FuseDaemon.cpp
index 3a65696f6..d67123d03 100644
--- a/jni/com_android_providers_media_FuseDaemon.cpp
+++ b/jni/com_android_providers_media_FuseDaemon.cpp
@@ -101,6 +101,25 @@ void com_android_providers_media_FuseDaemon_invalidate_fuse_dentry_cache(JNIEnv*
// TODO(b/145741152): Throw exception
}
+jstring com_android_providers_media_FuseDaemon_get_original_media_format_file_path(
+ JNIEnv* env, jobject self, jlong java_daemon, jint fd) {
+ fuse::FuseDaemon* const daemon = reinterpret_cast<fuse::FuseDaemon*>(java_daemon);
+ const std::string path = daemon->GetOriginalMediaFormatFilePath(fd);
+ return env->NewStringUTF(path.c_str());
+}
+
+void com_android_providers_media_FuseDaemon_initialize_device_id(JNIEnv* env, jobject self,
+ jlong java_daemon,
+ jstring java_path) {
+ fuse::FuseDaemon* const daemon = reinterpret_cast<fuse::FuseDaemon*>(java_daemon);
+ ScopedUtfChars utf_chars_path(env, java_path);
+ if (!utf_chars_path.c_str()) {
+ LOG(WARNING) << "Couldn't initialise FUSE device id";
+ return;
+ }
+ daemon->InitializeDeviceId(utf_chars_path.c_str());
+}
+
bool com_android_providers_media_FuseDaemon_is_fuse_thread(JNIEnv* env, jclass clazz) {
return pthread_getspecific(fuse::MediaProviderWrapper::gJniEnvKey) != nullptr;
}
@@ -120,7 +139,12 @@ const JNINativeMethod methods[] = {
reinterpret_cast<void*>(com_android_providers_media_FuseDaemon_is_started)},
{"native_invalidate_fuse_dentry_cache", "(JLjava/lang/String;)V",
reinterpret_cast<void*>(
- com_android_providers_media_FuseDaemon_invalidate_fuse_dentry_cache)}};
+ com_android_providers_media_FuseDaemon_invalidate_fuse_dentry_cache)},
+ {"native_get_original_media_format_file_path", "(JI)Ljava/lang/String;",
+ reinterpret_cast<void*>(
+ com_android_providers_media_FuseDaemon_get_original_media_format_file_path)},
+ {"native_initialize_device_id", "(JLjava/lang/String;)V",
+ reinterpret_cast<void*>(com_android_providers_media_FuseDaemon_initialize_device_id)}};
} // namespace
void register_android_providers_media_FuseDaemon(JavaVM* vm, JNIEnv* env) {