Commit c6a6e0d6 by olly Committed by kim-vde

Migrate various call sites to Format.Builder

PiperOrigin-RevId: 297562889
parent bfd8474e
......@@ -442,11 +442,11 @@ public class PlayerActivity extends AppCompatActivity
return Collections.emptyList();
}
Format subtitleFormat =
Format.createTextSampleFormat(
/* id= */ null,
subtitleInfo.mimeType,
C.SELECTION_FLAG_DEFAULT,
subtitleInfo.language);
new Format.Builder()
.setSampleMimeType(subtitleInfo.mimeType)
.setSelectionFlags(C.SELECTION_FLAG_DEFAULT)
.setLanguage(subtitleInfo.language)
.build();
MediaSource subtitleMediaSource =
new SingleSampleMediaSource.Factory(dataSourceFactory)
.createMediaSource(subtitleInfo.uri, subtitleFormat, C.TIME_UNSET);
......
......@@ -104,16 +104,11 @@ import com.google.android.gms.cast.MediaTrack;
* @return The equivalent {@link Format}.
*/
public static Format mediaTrackToFormat(MediaTrack mediaTrack) {
return Format.createContainerFormat(
mediaTrack.getContentId(),
/* label= */ null,
mediaTrack.getContentType(),
/* sampleMimeType= */ null,
/* codecs= */ null,
/* bitrate= */ Format.NO_VALUE,
/* selectionFlags= */ 0,
/* roleFlags= */ 0,
mediaTrack.getLanguage());
return new Format.Builder()
.setId(mediaTrack.getContentId())
.setContainerMimeType(mediaTrack.getContentType())
.setLanguage(mediaTrack.getLanguage())
.build();
}
private CastUtils() {}
......
......@@ -27,7 +27,6 @@ import com.google.android.exoplayer2.audio.SimpleDecoderAudioRenderer;
import com.google.android.exoplayer2.drm.ExoMediaCrypto;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.MimeTypes;
import java.util.Collections;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/**
......@@ -122,22 +121,12 @@ public final class FfmpegAudioRenderer extends SimpleDecoderAudioRenderer {
@Override
public Format getOutputFormat() {
Assertions.checkNotNull(decoder);
int channelCount = decoder.getChannelCount();
int sampleRate = decoder.getSampleRate();
@C.PcmEncoding int encoding = decoder.getEncoding();
return Format.createAudioSampleFormat(
/* id= */ null,
MimeTypes.AUDIO_RAW,
/* codecs= */ null,
Format.NO_VALUE,
Format.NO_VALUE,
channelCount,
sampleRate,
encoding,
Collections.emptyList(),
/* drmInitData= */ null,
/* selectionFlags= */ 0,
/* language= */ null);
return new Format.Builder()
.setSampleMimeType(MimeTypes.AUDIO_RAW)
.setChannelCount(decoder.getChannelCount())
.setSampleRate(decoder.getSampleRate())
.setPcmEncoding(decoder.getEncoding())
.build();
}
private boolean isOutputSupported(Format inputFormat) {
......
......@@ -114,18 +114,11 @@ public final class LibflacAudioRenderer extends SimpleDecoderAudioRenderer {
@Override
protected Format getOutputFormat() {
Assertions.checkNotNull(streamMetadata);
return Format.createAudioSampleFormat(
/* id= */ null,
MimeTypes.AUDIO_RAW,
/* codecs= */ null,
/* bitrate= */ Format.NO_VALUE,
/* maxInputSize= */ Format.NO_VALUE,
streamMetadata.channels,
streamMetadata.sampleRate,
Util.getPcmEncoding(streamMetadata.bitsPerSample),
/* initializationData= */ null,
/* drmInitData= */ null,
/* selectionFlags= */ 0,
/* language= */ null);
return new Format.Builder()
.setSampleMimeType(MimeTypes.AUDIO_RAW)
.setChannelCount(streamMetadata.channels)
.setSampleRate(streamMetadata.sampleRate)
.setPcmEncoding(Util.getPcmEncoding(streamMetadata.bitsPerSample))
.build();
}
}
......@@ -90,18 +90,11 @@ public class LibopusAudioRenderer extends SimpleDecoderAudioRenderer {
@Override
protected Format getOutputFormat() {
return Format.createAudioSampleFormat(
/* id= */ null,
MimeTypes.AUDIO_RAW,
/* codecs= */ null,
Format.NO_VALUE,
Format.NO_VALUE,
channelCount,
sampleRate,
C.ENCODING_PCM_16BIT,
/* initializationData= */ null,
/* drmInitData= */ null,
/* selectionFlags= */ 0,
/* language= */ null);
return new Format.Builder()
.setSampleMimeType(MimeTypes.AUDIO_RAW)
.setChannelCount(channelCount)
.setSampleRate(sampleRate)
.setPcmEncoding(C.ENCODING_PCM_16BIT)
.build();
}
}
......@@ -77,10 +77,8 @@ public final class DashUtilTest {
new Format.Builder()
.setContainerMimeType(MimeTypes.VIDEO_MP4)
.setSampleMimeType(MimeTypes.VIDEO_H264)
.setDrmInitData(drmInitData)
.build();
if (drmInitData != null) {
format = format.copyWithDrmInitData(drmInitData);
}
return Representation.newInstance(0, format, "", new SingleSegmentBase());
}
......
......@@ -1504,7 +1504,9 @@ public class FragmentedMp4Extractor implements Extractor {
TrackEncryptionBox encryptionBox =
track.getSampleDescriptionEncryptionBox(fragment.header.sampleDescriptionIndex);
@Nullable String schemeType = encryptionBox != null ? encryptionBox.schemeType : null;
output.format(track.format.copyWithDrmInitData(drmInitData.copyWithSchemeType(schemeType)));
DrmInitData updatedDrmInitData = drmInitData.copyWithSchemeType(schemeType);
Format format = track.format.buildUpon().setDrmInitData(updatedDrmInitData).build();
output.format(format);
}
/** Resets the current fragment and sample indices. */
......
......@@ -385,9 +385,9 @@ public final class HlsPlaylistParser implements ParsingLoadable.Parser<HlsPlayli
/* groupId= */ null,
/* name= */ null,
Assertions.checkNotNull(urlToVariantInfos.get(variant.url)));
deduplicatedVariants.add(
variant.copyWithFormat(
variant.format.copyWithMetadata(new Metadata(hlsMetadataEntry))));
Metadata metadata = new Metadata(hlsMetadataEntry);
Format format = variant.format.buildUpon().setMetadata(metadata).build();
deduplicatedVariants.add(variant.copyWithFormat(format));
}
}
......
......@@ -386,7 +386,7 @@ public class SsManifestParser implements ParsingLoadable.Parser<SsManifest> {
if (type == C.TRACK_TYPE_VIDEO || type == C.TRACK_TYPE_AUDIO) {
Format[] formats = streamElement.formats;
for (int i = 0; i < formats.length; i++) {
formats[i] = formats[i].copyWithDrmInitData(drmInitData);
formats[i] = formats[i].buildUpon().setDrmInitData(drmInitData).build();
}
}
}
......
......@@ -82,41 +82,26 @@ public class SsMediaPeriodTest {
}
private static Format createVideoFormat(int bitrate) {
return Format.createContainerFormat(
/* id= */ null,
/* label= */ null,
MimeTypes.VIDEO_MP4,
MimeTypes.VIDEO_H264,
/* codecs= */ null,
bitrate,
/* selectionFlags= */ 0,
/* roleFlags= */ 0,
/* language= */ null);
return new Format.Builder()
.setContainerMimeType(MimeTypes.VIDEO_MP4)
.setSampleMimeType(MimeTypes.VIDEO_H264)
.setAverageBitrate(bitrate)
.build();
}
private static Format createAudioFormat(int bitrate) {
return Format.createContainerFormat(
/* id= */ null,
/* label= */ null,
MimeTypes.AUDIO_MP4,
MimeTypes.AUDIO_AAC,
/* codecs= */ null,
bitrate,
/* selectionFlags= */ 0,
/* roleFlags= */ 0,
/* language= */ null);
return new Format.Builder()
.setContainerMimeType(MimeTypes.AUDIO_MP4)
.setSampleMimeType(MimeTypes.AUDIO_AAC)
.setAverageBitrate(bitrate)
.build();
}
private static Format createTextFormat(String language) {
return Format.createContainerFormat(
/* id= */ null,
/* label= */ null,
MimeTypes.APPLICATION_MP4,
MimeTypes.TEXT_VTT,
/* codecs= */ null,
/* bitrate= */ Format.NO_VALUE,
/* selectionFlags= */ 0,
/* roleFlags= */ 0,
language);
return new Format.Builder()
.setContainerMimeType(MimeTypes.APPLICATION_MP4)
.setSampleMimeType(MimeTypes.TEXT_VTT)
.setLanguage(language)
.build();
}
}
......@@ -114,15 +114,10 @@ public class SsManifestTest {
}
private static Format newFormat(String id) {
return Format.createContainerFormat(
id,
/* label= */ null,
MimeTypes.VIDEO_MP4,
MimeTypes.VIDEO_H264,
/* codecs= */ null,
/* bitrate= */ Format.NO_VALUE,
/* selectionFlags= */ 0,
/* roleFlags= */ 0,
/* language= */ null);
return new Format.Builder()
.setId(id)
.setContainerMimeType(MimeTypes.VIDEO_MP4)
.setSampleMimeType(MimeTypes.VIDEO_H264)
.build();
}
}
......@@ -62,32 +62,21 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
/** A generic video {@link Format} which can be used to set up media sources and renderers. */
public static final Format VIDEO_FORMAT =
Format.createVideoSampleFormat(
/* id= */ null,
/* sampleMimeType= */ MimeTypes.VIDEO_H264,
/* codecs= */ null,
/* bitrate= */ 800_000,
/* maxInputSize= */ Format.NO_VALUE,
/* width= */ 1280,
/* height= */ 720,
/* frameRate= */ Format.NO_VALUE,
/* initializationData= */ null,
/* drmInitData= */ null);
new Format.Builder()
.setSampleMimeType(MimeTypes.VIDEO_H264)
.setAverageBitrate(800_000)
.setWidth(1280)
.setHeight(720)
.build();
/** A generic audio {@link Format} which can be used to set up media sources and renderers. */
public static final Format AUDIO_FORMAT =
Format.createAudioSampleFormat(
/* id= */ null,
/* sampleMimeType= */ MimeTypes.AUDIO_AAC,
/* codecs= */ null,
/* bitrate= */ 100_000,
/* maxInputSize= */ Format.NO_VALUE,
/* channelCount= */ 2,
/* sampleRate= */ 44100,
/* initializationData=*/ null,
/* drmInitData= */ null,
/* selectionFlags= */ 0,
/* language= */ null);
new Format.Builder()
.setSampleMimeType(MimeTypes.AUDIO_AAC)
.setAverageBitrate(100_000)
.setChannelCount(2)
.setSampleRate(44100)
.build();
private Clock clock;
private Timeline timeline;
......
......@@ -34,28 +34,18 @@ import org.junit.runner.RunWith;
public final class FakeAdaptiveDataSetTest {
private static final Format[] TEST_FORMATS = {
Format.createVideoSampleFormat(
null,
MimeTypes.VIDEO_H264,
null,
1000000,
Format.NO_VALUE,
1280,
720,
Format.NO_VALUE,
null,
null),
Format.createVideoSampleFormat(
null,
MimeTypes.VIDEO_H264,
null,
300000,
Format.NO_VALUE,
640,
360,
Format.NO_VALUE,
null,
null)
new Format.Builder()
.setSampleMimeType(MimeTypes.VIDEO_H264)
.setAverageBitrate(1_000_000)
.setWidth(1280)
.setHeight(720)
.build(),
new Format.Builder()
.setSampleMimeType(MimeTypes.VIDEO_H264)
.setAverageBitrate(300_000)
.setWidth(640)
.setHeight(360)
.build()
};
private static final TrackGroup TRACK_GROUP = new TrackGroup(TEST_FORMATS);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment