Bug 1384495 - p1: remove end of input flag. r?esawin
The flag is needed only for the old onInputExhausted() callback and should not be used for onInputStatus(). (It prevents native implementation from receiving notification required for resolving promise.)
MozReview-Commit-ID: 9NKmY38zHGI
--- 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
@@ -52,33 +52,32 @@ public final class CodecProxy {
@Override // JNIObject
protected void disposeNative() {
throw new UnsupportedOperationException();
}
}
private class CallbacksForwarder extends ICodecCallbacks.Stub {
private final Callbacks mCallbacks;
- private boolean mEndOfInput;
private boolean mCodecProxyReleased;
CallbacksForwarder(Callbacks callbacks) {
mCallbacks = callbacks;
}
@Override
public synchronized void onInputQueued(long timestamp) throws RemoteException {
- if (!mEndOfInput && !mCodecProxyReleased) {
+ if (!mCodecProxyReleased) {
mCallbacks.onInputStatus(timestamp, true /* processed */);
}
}
@Override
public synchronized void onInputPending(long timestamp) throws RemoteException {
- if (!mEndOfInput && !mCodecProxyReleased) {
+ if (!mCodecProxyReleased) {
mCallbacks.onInputStatus(timestamp, false /* processed */);
}
}
@Override
public synchronized void onOutputFormatChanged(FormatParam format) throws RemoteException {
if (!mCodecProxyReleased) {
mCallbacks.onOutputFormatChanged(format.asFormat());
@@ -113,20 +112,16 @@ public final class CodecProxy {
}
private synchronized void reportError(boolean fatal) {
if (!mCodecProxyReleased) {
mCallbacks.onError(fatal);
}
}
- private void setEndOfInput(boolean end) {
- mEndOfInput = end;
- }
-
private synchronized void setCodecProxyReleased() {
mCodecProxyReleased = true;
}
}
@WrapForJNI
public static CodecProxy create(boolean isEncoder,
MediaFormat format,
@@ -198,17 +193,16 @@ public final class CodecProxy {
@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;
- mCallbacks.setEndOfInput(eos);
if (eos) {
return sendInput(Sample.EOS);
}
try {
return sendInput(mRemote.dequeueInput(info.size).set(bytes, info, cryptoInfo));
} catch (RemoteException | NullPointerException e) {