Deprecate SingleSampleMediaSource.Factory#setTrackId

This method is no longer needed since we added SubtitleConfiguration#id
in 59d98b9a4e.

Issue: google/ExoPlayer#10016

PiperOrigin-RevId: 432169262
(cherry picked from commit 540f2061cb)
This commit is contained in:
ibaker 2022-03-03 13:20:51 +00:00 committed by Ian Baker
parent 9f0351cbe5
commit 71685dabf1
2 changed files with 16 additions and 10 deletions

View file

@ -6,6 +6,12 @@
* FMP4: Fix issue where emsg sample metadata could be output in the wrong * FMP4: Fix issue where emsg sample metadata could be output in the wrong
order for streams containing both v0 and v1 emsg atoms order for streams containing both v0 and v1 emsg atoms
([#9996](https://github.com/google/ExoPlayer/issues/9996)). ([#9996](https://github.com/google/ExoPlayer/issues/9996)).
* Text:
* Fix the interaction of `SingleSampleMediaSource.Factory.setTrackId` and
`MediaItem.SubtitleConfiguration.Builder.setId` to prioritise the
`SubtitleConfiguration` field and fall back to the `Factory` value if
it's not set
([#10016](https://github.com/google/ExoPlayer/issues/10016)).
### 2.17.0 (2022-02-24) ### 2.17.0 (2022-02-24)

View file

@ -72,11 +72,12 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
} }
/** /**
* Sets an optional track id to be used. * @deprecated Use {@link MediaItem.SubtitleConfiguration.Builder#setId(String)} instead (on the
* * {@link MediaItem.SubtitleConfiguration} passed to {@link
* @param trackId An optional track id. * #createMediaSource(MediaItem.SubtitleConfiguration, long)}). {@code trackId} will only be
* @return This factory, for convenience. * used if {@link MediaItem.SubtitleConfiguration#id} is {@code null}.
*/ */
@Deprecated
public Factory setTrackId(@Nullable String trackId) { public Factory setTrackId(@Nullable String trackId) {
this.trackId = trackId; this.trackId = trackId;
return this; return this;
@ -155,29 +156,28 @@ public final class SingleSampleMediaSource extends BaseMediaSource {
this.durationUs = durationUs; this.durationUs = durationUs;
this.loadErrorHandlingPolicy = loadErrorHandlingPolicy; this.loadErrorHandlingPolicy = loadErrorHandlingPolicy;
this.treatLoadErrorsAsEndOfStream = treatLoadErrorsAsEndOfStream; this.treatLoadErrorsAsEndOfStream = treatLoadErrorsAsEndOfStream;
mediaItem = this.mediaItem =
new MediaItem.Builder() new MediaItem.Builder()
.setUri(Uri.EMPTY) .setUri(Uri.EMPTY)
.setMediaId(subtitleConfiguration.uri.toString()) .setMediaId(subtitleConfiguration.uri.toString())
.setSubtitleConfigurations(ImmutableList.of(subtitleConfiguration)) .setSubtitleConfigurations(ImmutableList.of(subtitleConfiguration))
.setTag(tag) .setTag(tag)
.build(); .build();
format = this.format =
new Format.Builder() new Format.Builder()
.setId(trackId)
.setSampleMimeType(firstNonNull(subtitleConfiguration.mimeType, MimeTypes.TEXT_UNKNOWN)) .setSampleMimeType(firstNonNull(subtitleConfiguration.mimeType, MimeTypes.TEXT_UNKNOWN))
.setLanguage(subtitleConfiguration.language) .setLanguage(subtitleConfiguration.language)
.setSelectionFlags(subtitleConfiguration.selectionFlags) .setSelectionFlags(subtitleConfiguration.selectionFlags)
.setRoleFlags(subtitleConfiguration.roleFlags) .setRoleFlags(subtitleConfiguration.roleFlags)
.setLabel(subtitleConfiguration.label) .setLabel(subtitleConfiguration.label)
.setId(subtitleConfiguration.id) .setId(subtitleConfiguration.id != null ? subtitleConfiguration.id : trackId)
.build(); .build();
dataSpec = this.dataSpec =
new DataSpec.Builder() new DataSpec.Builder()
.setUri(subtitleConfiguration.uri) .setUri(subtitleConfiguration.uri)
.setFlags(DataSpec.FLAG_ALLOW_GZIP) .setFlags(DataSpec.FLAG_ALLOW_GZIP)
.build(); .build();
timeline = this.timeline =
new SinglePeriodTimeline( new SinglePeriodTimeline(
durationUs, durationUs,
/* isSeekable= */ true, /* isSeekable= */ true,