@Override public void createTracks(ExtractorOutput extractorOutput, TrackIdGenerator idGenerator) { for (int i = 0; i < outputs.length; i++) { DvbSubtitleInfo subtitleInfo = subtitleInfos.get(i); idGenerator.generateNewId(); TrackOutput output = extractorOutput.track(idGenerator.getTrackId(), C.TRACK_TYPE_TEXT); output.format( Format.createImageSampleFormat( idGenerator.getFormatId(), MimeTypes.APPLICATION_DVBSUBS, null, Format.NO_VALUE, 0, Collections.singletonList(subtitleInfo.initializationData), subtitleInfo.language, null)); outputs[i] = output; } }
type = C.TRACK_TYPE_TEXT; format = Format.createImageSampleFormat( Integer.toString(trackId), mimeType,
@NonNull @Override protected Format buildFormat(int streamIndex, @NonNull HtspMessage stream) { final int compositionId = stream.getInteger("composition_id"); final int ancillaryId = stream.getInteger("ancillary_id"); List<byte[]> initializationData = Collections.singletonList(new byte[]{ (byte) ((compositionId >> 8) & 0xFF), (byte) ((compositionId) & 0xFF), (byte) ((ancillaryId >> 8) & 0xFF), (byte) ((ancillaryId) & 0xFF) }); return Format.createImageSampleFormat( Integer.toString(streamIndex), MimeTypes.APPLICATION_DVBSUBS, null, Format.NO_VALUE, SELECTION_FLAG_DEFAULT, initializationData, stream.getString("language", "und"), null); }