Merge "MediaCodec: minor revision of APIs for vendor parameters"
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java
index 5633236..54d0659 100644
--- a/media/java/android/media/MediaCodec.java
+++ b/media/java/android/media/MediaCodec.java
@@ -4607,6 +4607,25 @@
             return mType;
         }
 
+        @Override
+        public boolean equals(Object o) {
+            if (o == null) {
+                return false;
+            }
+            if (!(o instanceof ParameterDescriptor)) {
+                return false;
+            }
+            ParameterDescriptor other = (ParameterDescriptor) o;
+            return this.mName.equals(other.mName) && this.mType == other.mType;
+        }
+
+        @Override
+        public int hashCode() {
+            return Arrays.asList(
+                    (Object) mName,
+                    (Object) Integer.valueOf(mType)).hashCode();
+        }
+
         private String mName;
         private @MediaFormat.Type int mType;
     }
@@ -4631,7 +4650,8 @@
     private native ParameterDescriptor native_getParameterDescriptor(@NonNull String name);
 
     /**
-     * Subscribe to vendor parameters, so that changes to these parameters generate
+     * Subscribe to vendor parameters, so that these parameters will be present in
+     * {@link #getOutputFormat} and changes to these parameters generate
      * output format change event.
      * <p>
      * Unrecognized parameter names or standard (non-vendor) parameter names will be ignored.
@@ -4660,8 +4680,9 @@
     private native void native_subscribeToVendorParameters(@NonNull List<String> names);
 
     /**
-     * Unsubscribe from vendor parameters, so that changes to these parameters
-     * no longer generate output format change event.
+     * Unsubscribe from vendor parameters, so that these parameters will not be present in
+     * {@link #getOutputFormat} and changes to these parameters no longer generate
+     * output format change event.
      * <p>
      * Unrecognized parameter names, standard (non-vendor) parameter names will be ignored.
      * {@link #reset} also resets the list of subscribed parameters.
@@ -4669,7 +4690,8 @@
      * <p>
      * This method can be called in any codec state except for released state. When called in
      * running state with newly unsubscribed parameters, it takes effect no later than the
-     * processing of the subsequently queued buffer.
+     * processing of the subsequently queued buffer. For the removed parameters, the codec will
+     * generate output format change event.
      * <p>
      * Note that any vendor parameters set in a {@link #configure} or
      * {@link #setParameters} call are automatically subscribed, and with this method