mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Add KEY_TRACK_ID to MediaFormat returned by getTrackFormat(int)
This aligns the behavior with `MediaExtractor`, which sets this key in its [`MediaFormat`](https://developer.android.com/reference/android/media/MediaExtractor#getTrackFormat(int)) output. Additionally, unnecessary `selectTrack` calls have been removed from the existing `getTrackFormat_...` tests, as they are not required to fetch the track format. PiperOrigin-RevId: 700741326
This commit is contained in:
parent
6e29b96337
commit
08619bf6fa
2 changed files with 24 additions and 3 deletions
|
|
@ -649,7 +649,6 @@ public class MediaExtractorCompatTest {
|
||||||
return Extractor.RESULT_CONTINUE;
|
return Extractor.RESULT_CONTINUE;
|
||||||
});
|
});
|
||||||
mediaExtractorCompat.setDataSource(PLACEHOLDER_URI, /* offset= */ 0);
|
mediaExtractorCompat.setDataSource(PLACEHOLDER_URI, /* offset= */ 0);
|
||||||
mediaExtractorCompat.selectTrack(/* trackIndex= */ 0);
|
|
||||||
|
|
||||||
MediaFormat mediaFormat = mediaExtractorCompat.getTrackFormat(/* trackIndex= */ 0);
|
MediaFormat mediaFormat = mediaExtractorCompat.getTrackFormat(/* trackIndex= */ 0);
|
||||||
|
|
||||||
|
|
@ -671,7 +670,6 @@ public class MediaExtractorCompatTest {
|
||||||
return Extractor.RESULT_CONTINUE;
|
return Extractor.RESULT_CONTINUE;
|
||||||
});
|
});
|
||||||
mediaExtractorCompat.setDataSource(PLACEHOLDER_URI, /* offset= */ 0);
|
mediaExtractorCompat.setDataSource(PLACEHOLDER_URI, /* offset= */ 0);
|
||||||
mediaExtractorCompat.selectTrack(/* trackIndex= */ 0);
|
|
||||||
|
|
||||||
MediaFormat mediaFormat = mediaExtractorCompat.getTrackFormat(/* trackIndex= */ 0);
|
MediaFormat mediaFormat = mediaExtractorCompat.getTrackFormat(/* trackIndex= */ 0);
|
||||||
|
|
||||||
|
|
@ -694,13 +692,35 @@ public class MediaExtractorCompatTest {
|
||||||
return Extractor.RESULT_CONTINUE;
|
return Extractor.RESULT_CONTINUE;
|
||||||
});
|
});
|
||||||
mediaExtractorCompat.setDataSource(PLACEHOLDER_URI, /* offset= */ 0);
|
mediaExtractorCompat.setDataSource(PLACEHOLDER_URI, /* offset= */ 0);
|
||||||
mediaExtractorCompat.selectTrack(/* trackIndex= */ 0);
|
|
||||||
|
|
||||||
MediaFormat mediaFormat = mediaExtractorCompat.getTrackFormat(/* trackIndex= */ 0);
|
MediaFormat mediaFormat = mediaExtractorCompat.getTrackFormat(/* trackIndex= */ 0);
|
||||||
|
|
||||||
assertThat(mediaFormat.containsKey(MediaFormat.KEY_DURATION)).isFalse();
|
assertThat(mediaFormat.containsKey(MediaFormat.KEY_DURATION)).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getTrackFormat_withMultipleTracks_returnsCorrectTrackId() throws IOException {
|
||||||
|
fakeExtractor.addReadAction(
|
||||||
|
(input, seekPosition) -> {
|
||||||
|
TrackOutput output1 = extractorOutput.track(/* id= */ 1, C.TRACK_TYPE_VIDEO);
|
||||||
|
TrackOutput output2 = extractorOutput.track(/* id= */ 2, C.TRACK_TYPE_AUDIO);
|
||||||
|
extractorOutput.endTracks();
|
||||||
|
output1.format(PLACEHOLDER_FORMAT_VIDEO);
|
||||||
|
output2.format(PLACEHOLDER_FORMAT_AUDIO);
|
||||||
|
return Extractor.RESULT_CONTINUE;
|
||||||
|
});
|
||||||
|
|
||||||
|
mediaExtractorCompat.setDataSource(PLACEHOLDER_URI, /* offset= */ 0);
|
||||||
|
|
||||||
|
MediaFormat videoFormat = mediaExtractorCompat.getTrackFormat(/* trackIndex= */ 0);
|
||||||
|
assertThat(videoFormat.containsKey(MediaFormat.KEY_TRACK_ID)).isTrue();
|
||||||
|
assertThat(videoFormat.getInteger(MediaFormat.KEY_TRACK_ID)).isEqualTo(1);
|
||||||
|
|
||||||
|
MediaFormat audioFormat = mediaExtractorCompat.getTrackFormat(/* trackIndex= */ 1);
|
||||||
|
assertThat(audioFormat.containsKey(MediaFormat.KEY_TRACK_ID)).isTrue();
|
||||||
|
assertThat(audioFormat.getInteger(MediaFormat.KEY_TRACK_ID)).isEqualTo(2);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getLogSessionId_withUnsetSessionId_returnsNone() {
|
public void getLogSessionId_withUnsetSessionId_returnsNone() {
|
||||||
assumeTrue(Util.SDK_INT >= 31);
|
assumeTrue(Util.SDK_INT >= 31);
|
||||||
|
|
|
||||||
|
|
@ -1002,6 +1002,7 @@ public final class MediaExtractorCompat {
|
||||||
FormatHolder scratchFormatHolder, DecoderInputBuffer scratchNoDataDecoderInputBuffer) {
|
FormatHolder scratchFormatHolder, DecoderInputBuffer scratchNoDataDecoderInputBuffer) {
|
||||||
Format format = getFormat(scratchFormatHolder, scratchNoDataDecoderInputBuffer);
|
Format format = getFormat(scratchFormatHolder, scratchNoDataDecoderInputBuffer);
|
||||||
MediaFormat mediaFormatResult = MediaFormatUtil.createMediaFormatFromFormat(format);
|
MediaFormat mediaFormatResult = MediaFormatUtil.createMediaFormatFromFormat(format);
|
||||||
|
mediaFormatResult.setInteger(MediaFormat.KEY_TRACK_ID, getIdOfBackingTrack());
|
||||||
if (compatibilityTrackMimeType != null) {
|
if (compatibilityTrackMimeType != null) {
|
||||||
if (Util.SDK_INT >= 29) {
|
if (Util.SDK_INT >= 29) {
|
||||||
mediaFormatResult.removeKey(MediaFormat.KEY_CODECS_STRING);
|
mediaFormatResult.removeKey(MediaFormat.KEY_CODECS_STRING);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue