This CL allows passing multiple formats describing CC channels to the
TS payload reader factory. As a simple usecase, ATSC can expose both
608 channels by passing a two element list with the corresponding
accessibility channels. The HLS media source can construct this list
from the EXT-X-MEDIA:TYPE="CLOSED-CAPTIONS" tags, including language
and selection flags. The interface extends without modification to
708.
Pending work:
* Multiple CC channels in HLS.
* caption_service_descriptor parsing for overriding the user's selection.
* 708 support in SEI reader.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148030293
This avoids breaking the player if the first variant is not
supported by the device.
Issue:#2353
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148025791
InitializationChunk calls init(null). When the initialization and index data is separate they need to
be loaded separately which results to two init(null) calls.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=147837985
I've also added a TODO to not even bother trying to parse CEA from
SEI NAL units if they're fully or partially encrypted, which it's
possible to determine in the FMP4 extractor.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=147613979
SoftAAC2 would cause an exception to be thrown from
dequeueOutputBuffer/releaseOutputBuffer after queueing an end-of-stream buffer
for certain streams.
The bug was introduced in L and fixed in L MR1, so the workaround is targeted to
API 21.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=147613659
The outputBuffer is not necessarily empty after a flush, so the assertion could
fail in normal usage. The assertion can just be removed as the output buffer is
rewritten in full on every call to handleBuffer.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=147541016
- It's always fine to prefer the manifest drm init data. In
DASH we always do this anyway. In SS the manifest and sample
formats are identical.
- Optimized the case where the manifest and sample formats are
identical by avoiding the format copy.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=147385282
The addition of sample mime types can make it easier to identify tracks in the case of mixed media (e.g. CEA-608 and CEA-708 caption tracks). This change appends the mime type to the end of the track description for all media types.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=147303187
Tab commands were being used cumulatively (i.e. moving the cursor farther and farther over) resulting in the text eventually trying to write beyond the bounds of the screen and throwing an exception.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=146783284
This allows binding by track type in ChunkExtractorWrapper, which
allows the EMSG and 608 tracks to be enabled on FragmentedMp4Extractor
in DefaultDashChunkSource. ChunkExtractorWrapper currently binds these
to DummyTrackOutputs.
Note: I wanted to pass the mimeType instead, since it's a more specific,
but unfortunately there's at least one place where it's not known at the
point of invoking track() (FlvExtractor).
Issue #2176
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=146471082