libmedia: modify conditions to reuse track.
If recycled and new tracks are not on the same output, don't reuse the recycled one
Bug: 111196161
Test: manual audio smoke tests.
Change-Id: I36e012904bb45b71cf91509d108a89bb2822a020
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index 4d90d98..1d5ccca 100644
--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -2246,6 +2246,12 @@
mRecycledTrack->frameCount(), t->frameCount());
reuse = false;
}
+ // If recycled and new tracks are not on the same output,
+ // don't reuse the recycled one.
+ if (mRecycledTrack->getOutput() != t->getOutput()) {
+ ALOGV("output has changed, don't reuse track");
+ reuse = false;
+ }
}
if (reuse) {