diff options
author | Biswarup Pal <biswarupp@google.com> | 2021-02-15 13:39:36 +0000 |
---|---|---|
committer | Biswarup Pal <biswarupp@google.com> | 2021-02-22 19:39:25 +0000 |
commit | 93f4ec14166422b980a3d2535e8fb368936cba4d (patch) | |
tree | 28168df7bb4af7d3462f8c3c37ba33ff7d2f9697 /jni/com_android_providers_media_FuseDaemon.cpp | |
parent | 2ed0cd05470c6328c5b484f7599235120d3bb819 (diff) | |
download | MediaProvider-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.cpp | 26 |
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) { |