Minor additional cleanup of multiple DVB subtitles per PID support
This commit is contained in:
parent
f903098721
commit
c50cfd8345
@ -23,6 +23,7 @@ import com.google.android.exoplayer2.extractor.ts.TsPayloadReader.DvbSubtitleInf
|
||||
import com.google.android.exoplayer2.extractor.ts.TsPayloadReader.TrackIdGenerator;
|
||||
import com.google.android.exoplayer2.util.MimeTypes;
|
||||
import com.google.android.exoplayer2.util.ParsableByteArray;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -58,8 +59,8 @@ public final class DvbSubtitleReader implements ElementaryStreamReader {
|
||||
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, subtitleInfo.initializationData,
|
||||
subtitleInfo.language, null));
|
||||
MimeTypes.APPLICATION_DVBSUBS, null, Format.NO_VALUE,
|
||||
Collections.singletonList(subtitleInfo.initializationData), subtitleInfo.language, null));
|
||||
outputs[i] = output;
|
||||
}
|
||||
}
|
||||
|
@ -517,11 +517,11 @@ public final class TsExtractor implements Extractor {
|
||||
dvbSubtitleInfos = new ArrayList<>();
|
||||
while (data.getPosition() < positionOfNextDescriptor) {
|
||||
String dvbLanguage = data.readString(3).trim();
|
||||
int dvbProgramElementType = data.readUnsignedByte();
|
||||
int dvbSubtitlingType = data.readUnsignedByte();
|
||||
byte[] initializationData = new byte[4];
|
||||
data.readBytes(initializationData, 0, 4);
|
||||
dvbSubtitleInfos.add(new DvbSubtitleInfo(dvbLanguage, dvbProgramElementType,
|
||||
Collections.singletonList(initializationData)));
|
||||
dvbSubtitleInfos.add(new DvbSubtitleInfo(dvbLanguage, dvbSubtitlingType,
|
||||
initializationData));
|
||||
}
|
||||
}
|
||||
// Skip unused bytes of current descriptor.
|
||||
|
@ -20,7 +20,6 @@ import com.google.android.exoplayer2.extractor.ExtractorOutput;
|
||||
import com.google.android.exoplayer2.extractor.TrackOutput;
|
||||
import com.google.android.exoplayer2.util.ParsableByteArray;
|
||||
import com.google.android.exoplayer2.util.TimestampAdjuster;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@ -85,18 +84,22 @@ public interface TsPayloadReader {
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds information about a DVB subtitle.
|
||||
* Holds information about a DVB subtitle, as defined in ETSI EN 300 468 V1.11.1 section 6.2.41.
|
||||
*/
|
||||
final class DvbSubtitleInfo {
|
||||
|
||||
public final String language;
|
||||
public final int programElementType;
|
||||
public final List<byte[]> initializationData;
|
||||
public final int type;
|
||||
public final byte[] initializationData;
|
||||
|
||||
public DvbSubtitleInfo(String language, int programElementType,
|
||||
List<byte[]> initializationData) {
|
||||
/**
|
||||
* @param language The ISO 639-2 three character language.
|
||||
* @param type The subtitling type.
|
||||
* @param initializationData The composition and ancillary page ids.
|
||||
*/
|
||||
public DvbSubtitleInfo(String language, int type, byte[] initializationData) {
|
||||
this.language = language;
|
||||
this.programElementType = programElementType;
|
||||
this.type = type;
|
||||
this.initializationData = initializationData;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user