- Parse EMSG leaf atoms during FMP4 extraction (although
currently they're just discarded).
- Add readNullTerminatedString to ParsableByteArray.
Issue: #2176
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=143555965
I wrote this whilst investigating a user issue. It looks like
we don't need to do anything about the issue itself, but since
I wrote the test we may as well keep it!
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=143549697
- Errors reported by native stack use org.chromium.net.NetworkException class.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=143475649
This isn't perfect because it performs seeks whilst the
user is holding down L/R, rather than when they release
it. Performing the seek on release properly looks non
trivial, and would likely require extending SeekBar.
Issue: #2278
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=143440580
These currently lead to cryptic ArrayIndexOutOfBoundsExceptions being thrown from System.arraycopy() so my proposal is to throw a more useful ParserException instead.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142087132
- If there's no program-date-time then this change is
a no-op.
- If there is a program-date-time this change considers
the period as having started at the epoch rather than
at the start of the content. The window is then set
to start at the start of the content. This is a little
weird, but is required so that the period sample
timestamps match the start of the period. Note that
this also brings the handling of on-demand in line
with how the live case is handled, meaning there wont
be weird changes if a live stream changes into an
on-demand one.
Issue: #2224
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142442719
This has always been broken in V2, but the issue is now also
visible for the very first period in the timeline because we
offset if by 60s. Previously the issue would only have been
visible from the start of the second period.
Issue: #2208
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142252702
Also clarify when getNextLoadPositionUs and continueLoading
can be called.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142124497
- If there's no program-date-time then this change is
a no-op.
- If there is a program-date-time this change considers
the period as having started at the epoch rather than
at the start of the content. The window is then set
to start at the start of the content. This is a little
weird, but is required so that the period sample
timestamps match the start of the period. Note that
this also brings the handling of on-demand in line
with how the live case is handled, meaning there wont
be weird changes if a live stream changes into an
on-demand one.
Issue: #2224
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142442719
This has always been broken in V2, but the issue is now also
visible for the very first period in the timeline because we
offset if by 60s. Previously the issue would only have been
visible from the start of the second period.
Issue: #2208
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142252702
Create a MediaCodecVideoTrackRenderer.shouldDropFrame function that can be overriden by a child class. The YouTube override prevents a frame drop if we haven't rendered anything in the last 35 ms.
The YouTube override is off at the moment, I plan to use a server side flag to do a slow and controlled experiment.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142190774
Cue has been modified to optionally accept a fill color and a toggle specifying when to use the fill color. When the fill color toggle is set, then SubtitlePainter will use the fill color value instead of the color specified by the device's Accessibility settings. Cea708Decoder has also been modified to propagate that value, as well as cleaned up (in terms of documentation) to prepare it for inclusion in the open-source project.
There is also a new Cea708Cue, extending Cue, which holds the Cue's priority, which is used to sort potentially overlapping cues/windows.
Note that I've left the @ClosedSource annotation and logging in this CL. I intend to start testing the 608 and 708 functionality in the Fiber app to ensure that it works as expected on a wide-range of channels (as opposed to the single channel in ExoPlayer Demo) before removing these.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142173264
These are the new subsample clips used by the android-drm-team.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142162918
It's a nicer place for it to live once it starts being passed
around more widely (e.g. through the video renderer, for
tunneling)
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142158460
Although the underlying platform AudioTrack is capable of
writing the AV sync header from M onward, I've opted not
to use the functionality since it appears to allocate an
unnecessary (and large) number of ByteBuffers. We can swap
over from O if this is addressed.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142138988
Also clarify when getNextLoadPositionUs and continueLoading
can be called.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142124497
These currently lead to cryptic ArrayIndexOutOfBoundsExceptions being thrown from System.arraycopy() so my proposal is to throw a more useful ParserException instead.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142087132