Bug 1384495 - p1: remove end of input flag. r?esawin draft
authorJohn Lin <jolin@mozilla.com>
Wed, 26 Jul 2017 15:07:23 +0800
changeset 616558 31c0ef4a44caf2c84c7df55822880d451d5cf6fd
parent 616205 f1693d664f8e8ee4c79801630c181c28095cad56
child 616559 01378861d0c69373e79b2e23d96267a04258729b
push id70719
push userbmo:jolin@mozilla.com
push dateThu, 27 Jul 2017 05:33:33 +0000
reviewersesawin
bugs1384495
milestone56.0a1
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
mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/CodecProxy.java
--- 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) {