Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
c50cfd83
authored
Apr 25, 2017
by
Oliver Woodman
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Minor additional cleanup of multiple DVB subtitles per PID support
parent
f9030987
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
16 additions
and
12 deletions
library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/DvbSubtitleReader.java
library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java
library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsPayloadReader.java
library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/DvbSubtitleReader.java
View file @
c50cfd83
...
@@ -23,6 +23,7 @@ import com.google.android.exoplayer2.extractor.ts.TsPayloadReader.DvbSubtitleInf
...
@@ -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.extractor.ts.TsPayloadReader.TrackIdGenerator
;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.android.exoplayer2.util.ParsableByteArray
;
import
com.google.android.exoplayer2.util.ParsableByteArray
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -58,8 +59,8 @@ public final class DvbSubtitleReader implements ElementaryStreamReader {
...
@@ -58,8 +59,8 @@ public final class DvbSubtitleReader implements ElementaryStreamReader {
idGenerator
.
generateNewId
();
idGenerator
.
generateNewId
();
TrackOutput
output
=
extractorOutput
.
track
(
idGenerator
.
getTrackId
(),
C
.
TRACK_TYPE_TEXT
);
TrackOutput
output
=
extractorOutput
.
track
(
idGenerator
.
getTrackId
(),
C
.
TRACK_TYPE_TEXT
);
output
.
format
(
Format
.
createImageSampleFormat
(
idGenerator
.
getFormatId
(),
output
.
format
(
Format
.
createImageSampleFormat
(
idGenerator
.
getFormatId
(),
MimeTypes
.
APPLICATION_DVBSUBS
,
null
,
Format
.
NO_VALUE
,
subtitleInfo
.
initializationData
,
MimeTypes
.
APPLICATION_DVBSUBS
,
null
,
Format
.
NO_VALUE
,
subtitleInfo
.
language
,
null
));
Collections
.
singletonList
(
subtitleInfo
.
initializationData
),
subtitleInfo
.
language
,
null
));
outputs
[
i
]
=
output
;
outputs
[
i
]
=
output
;
}
}
}
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java
View file @
c50cfd83
...
@@ -517,11 +517,11 @@ public final class TsExtractor implements Extractor {
...
@@ -517,11 +517,11 @@ public final class TsExtractor implements Extractor {
dvbSubtitleInfos
=
new
ArrayList
<>();
dvbSubtitleInfos
=
new
ArrayList
<>();
while
(
data
.
getPosition
()
<
positionOfNextDescriptor
)
{
while
(
data
.
getPosition
()
<
positionOfNextDescriptor
)
{
String
dvbLanguage
=
data
.
readString
(
3
).
trim
();
String
dvbLanguage
=
data
.
readString
(
3
).
trim
();
int
dvb
ProgramElement
Type
=
data
.
readUnsignedByte
();
int
dvb
Subtitling
Type
=
data
.
readUnsignedByte
();
byte
[]
initializationData
=
new
byte
[
4
];
byte
[]
initializationData
=
new
byte
[
4
];
data
.
readBytes
(
initializationData
,
0
,
4
);
data
.
readBytes
(
initializationData
,
0
,
4
);
dvbSubtitleInfos
.
add
(
new
DvbSubtitleInfo
(
dvbLanguage
,
dvb
ProgramElement
Type
,
dvbSubtitleInfos
.
add
(
new
DvbSubtitleInfo
(
dvbLanguage
,
dvb
Subtitling
Type
,
Collections
.
singletonList
(
initializationData
)
));
initializationData
));
}
}
}
}
// Skip unused bytes of current descriptor.
// Skip unused bytes of current descriptor.
...
...
library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsPayloadReader.java
View file @
c50cfd83
...
@@ -20,7 +20,6 @@ import com.google.android.exoplayer2.extractor.ExtractorOutput;
...
@@ -20,7 +20,6 @@ import com.google.android.exoplayer2.extractor.ExtractorOutput;
import
com.google.android.exoplayer2.extractor.TrackOutput
;
import
com.google.android.exoplayer2.extractor.TrackOutput
;
import
com.google.android.exoplayer2.util.ParsableByteArray
;
import
com.google.android.exoplayer2.util.ParsableByteArray
;
import
com.google.android.exoplayer2.util.TimestampAdjuster
;
import
com.google.android.exoplayer2.util.TimestampAdjuster
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
...
@@ -85,18 +84,22 @@ public interface TsPayloadReader {
...
@@ -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
{
final
class
DvbSubtitleInfo
{
public
final
String
language
;
public
final
String
language
;
public
final
int
programElementT
ype
;
public
final
int
t
ype
;
public
final
List
<
byte
[]>
initializationData
;
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
.
language
=
language
;
this
.
programElementType
=
programElementT
ype
;
this
.
type
=
t
ype
;
this
.
initializationData
=
initializationData
;
this
.
initializationData
=
initializationData
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment