Bug 1302331 - [Part2] Make CryptoInfo as an argument for method CodecProxy.input.
MozReview-Commit-ID: JeqNNixbRvv
--- a/mobile/android/base/java/org/mozilla/gecko/media/CodecProxy.java
+++ b/mobile/android/base/java/org/mozilla/gecko/media/CodecProxy.java
@@ -9,16 +9,17 @@ import org.mozilla.gecko.GeckoAppShell;
import org.mozilla.gecko.mozglue.JNIObject;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.media.MediaCodec;
import android.media.MediaCodec.BufferInfo;
+import android.media.MediaCodec.CryptoInfo;
import android.media.MediaFormat;
import android.os.DeadObjectException;
import android.os.RemoteException;
import android.util.Log;
import android.view.Surface;
import java.nio.ByteBuffer;
// Proxy class of ICodec binder.
@@ -126,23 +127,23 @@ public final class CodecProxy {
return true;
} catch (RemoteException e) {
e.printStackTrace();
return false;
}
}
@WrapForJNI
- public synchronized boolean input(byte[] bytes, BufferInfo info) {
+ public synchronized boolean input(byte[] bytes, BufferInfo info, CryptoInfo cryptoInfo) {
if (mRemote == null) {
Log.e(LOGTAG, "cannot send input to an ended codec");
return false;
}
Sample sample = (info.flags == MediaCodec.BUFFER_FLAG_END_OF_STREAM) ?
- Sample.EOS : new Sample(ByteBuffer.wrap(bytes), info, null);
+ Sample.EOS : new Sample(ByteBuffer.wrap(bytes), info, cryptoInfo);
try {
mRemote.queueInput(sample);
} catch (DeadObjectException e) {
return false;
} catch (RemoteException e) {
e.printStackTrace();
Log.e(LOGTAG, "fail to input sample:" + sample);
return false;
--- a/widget/android/bindings/MediaCodec-classes.txt
+++ b/widget/android/bindings/MediaCodec-classes.txt
@@ -1,3 +1,4 @@
android.media.MediaCodec
android.media.MediaCodec$BufferInfo
+android.media.MediaCodec$CryptoInfo
android.media.MediaFormat
--- a/widget/android/fennec/FennecJNIWrappers.cpp
+++ b/widget/android/fennec/FennecJNIWrappers.cpp
@@ -206,19 +206,19 @@ constexpr char CodecProxy::Flush_t::sign
auto CodecProxy::Flush() const -> bool
{
return mozilla::jni::Method<Flush_t>::Call(CodecProxy::mCtx, nullptr);
}
constexpr char CodecProxy::Input_t::name[];
constexpr char CodecProxy::Input_t::signature[];
-auto CodecProxy::Input(mozilla::jni::ByteArray::Param a0, mozilla::jni::Object::Param a1) const -> bool
+auto CodecProxy::Input(mozilla::jni::ByteArray::Param a0, mozilla::jni::Object::Param a1, mozilla::jni::Object::Param a2) const -> bool
{
- return mozilla::jni::Method<Input_t>::Call(CodecProxy::mCtx, nullptr, a0, a1);
+ return mozilla::jni::Method<Input_t>::Call(CodecProxy::mCtx, nullptr, a0, a1, a2);
}
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/fennec/FennecJNIWrappers.h
+++ b/widget/android/fennec/FennecJNIWrappers.h
@@ -736,30 +736,31 @@ public:
auto Flush() const -> bool;
struct Input_t {
typedef CodecProxy Owner;
typedef bool ReturnType;
typedef bool SetterType;
typedef mozilla::jni::Args<
mozilla::jni::ByteArray::Param,
+ mozilla::jni::Object::Param,
mozilla::jni::Object::Param> Args;
static constexpr char name[] = "input";
static constexpr char signature[] =
- "([BLandroid/media/MediaCodec$BufferInfo;)Z";
+ "([BLandroid/media/MediaCodec$BufferInfo;Landroid/media/MediaCodec$CryptoInfo;)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 Input(mozilla::jni::ByteArray::Param, mozilla::jni::Object::Param) const -> bool;
+ auto Input(mozilla::jni::ByteArray::Param, mozilla::jni::Object::Param, mozilla::jni::Object::Param) 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[] =