Bug 1403849 - p2: add JNI method for native code to query tunneled playback support. r?esawin draft
authorJohn Lin <jolin@mozilla.com>
Fri, 29 Sep 2017 18:04:20 +0800
changeset 675315 5610c566a3eb9687c9371bdb4c6418a4d7aad3fe
parent 675314 ba859cb6e0380218768a861974fca336c21daf54
child 675316 2352c5da213f320fa921e733157a2a475e5cda5b
child 675319 b3928e10620786e3ce63383f17aabfa0797509de
push id83102
push userbmo:jolin@mozilla.com
push dateThu, 05 Oct 2017 05:31:08 +0000
reviewersesawin
bugs1403849
milestone58.0a1
Bug 1403849 - p2: add JNI method for native code to query tunneled playback support. r?esawin MozReview-Commit-ID: 29HgjCanjGP
mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/CodecProxy.java
widget/android/GeneratedJNIWrappers.cpp
widget/android/GeneratedJNIWrappers.h
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/CodecProxy.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/CodecProxy.java
@@ -187,16 +187,31 @@ public final class CodecProxy {
             return mRemote.isAdaptivePlaybackSupported();
         } catch (RemoteException e) {
             e.printStackTrace();
             return false;
         }
     }
 
     @WrapForJNI
+    public synchronized boolean isTunneledPlaybackSupported()
+    {
+      if (mRemote == null) {
+          Log.e(LOGTAG, "cannot check isTunneledPlaybackSupported with an ended codec");
+          return false;
+      }
+      try {
+            return mRemote.isTunneledPlaybackSupported();
+        } catch (RemoteException e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
+    @WrapForJNI
     public synchronized boolean input(ByteBuffer bytes, BufferInfo info, CryptoInfo cryptoInfo) {
         if (mRemote == null) {
             Log.e(LOGTAG, "cannot send input to an ended codec");
             return false;
         }
 
         boolean eos = info.flags == MediaCodec.BUFFER_FLAG_END_OF_STREAM;
 
--- a/widget/android/GeneratedJNIWrappers.cpp
+++ b/widget/android/GeneratedJNIWrappers.cpp
@@ -1819,16 +1819,24 @@ auto CodecProxy::Input(mozilla::jni::Byt
 constexpr char CodecProxy::IsAdaptivePlaybackSupported_t::name[];
 constexpr char CodecProxy::IsAdaptivePlaybackSupported_t::signature[];
 
 auto CodecProxy::IsAdaptivePlaybackSupported() const -> bool
 {
     return mozilla::jni::Method<IsAdaptivePlaybackSupported_t>::Call(CodecProxy::mCtx, nullptr);
 }
 
+constexpr char CodecProxy::IsTunneledPlaybackSupported_t::name[];
+constexpr char CodecProxy::IsTunneledPlaybackSupported_t::signature[];
+
+auto CodecProxy::IsTunneledPlaybackSupported() const -> bool
+{
+    return mozilla::jni::Method<IsTunneledPlaybackSupported_t>::Call(CodecProxy::mCtx, nullptr);
+}
+
 constexpr char CodecProxy::Release_t::name[];
 constexpr char CodecProxy::Release_t::signature[];
 
 auto CodecProxy::Release() const -> bool
 {
     return mozilla::jni::Method<Release_t>::Call(CodecProxy::mCtx, nullptr);
 }
 
--- a/widget/android/GeneratedJNIWrappers.h
+++ b/widget/android/GeneratedJNIWrappers.h
@@ -5207,16 +5207,35 @@ public:
         static const mozilla::jni::CallingThread callingThread =
                 mozilla::jni::CallingThread::ANY;
         static const mozilla::jni::DispatchTarget dispatchTarget =
                 mozilla::jni::DispatchTarget::CURRENT;
     };
 
     auto IsAdaptivePlaybackSupported() const -> bool;
 
+    struct IsTunneledPlaybackSupported_t {
+        typedef CodecProxy Owner;
+        typedef bool ReturnType;
+        typedef bool SetterType;
+        typedef mozilla::jni::Args<> Args;
+        static constexpr char name[] = "isTunneledPlaybackSupported";
+        static constexpr char signature[] =
+                "()Z";
+        static const bool isStatic = false;
+        static const mozilla::jni::ExceptionMode exceptionMode =
+                mozilla::jni::ExceptionMode::ABORT;
+        static const mozilla::jni::CallingThread callingThread =
+                mozilla::jni::CallingThread::ANY;
+        static const mozilla::jni::DispatchTarget dispatchTarget =
+                mozilla::jni::DispatchTarget::CURRENT;
+    };
+
+    auto IsTunneledPlaybackSupported() const -> bool;
+
     struct Release_t {
         typedef CodecProxy Owner;
         typedef bool ReturnType;
         typedef bool SetterType;
         typedef mozilla::jni::Args<> Args;
         static constexpr char name[] = "release";
         static constexpr char signature[] =
                 "()Z";