+TEST_F(MediaSourcePlayerTest, VideoMetadataChangeAfterConfigChange) {
+ SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
+
+ // Test that after a config change, metadata change will be happen
+ // after decoder is drained.
+ StartConfigChange(false, true, 2, false);
+ EXPECT_EQ(1, manager_.num_metadata_changes());
+ EXPECT_FALSE(IsDrainingDecoder(false));
+
+ // Create video data with new resolutions.
+ DemuxerData data = CreateReadFromDemuxerAckForVideo(true);
+
+ // Wait for the metadata change.
+ while(manager_.num_metadata_changes() == 1) {
+ player_.OnDemuxerDataAvailable(data);
+ WaitForVideoDecodeDone();
+ }
+ EXPECT_EQ(2, manager_.num_metadata_changes());
+ WaitForVideoDecodeDone();
+}
+