This is similar to suppression of failures disabling the
renderers (in the block above).
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123847812
- Remove need for SampleSources to ref ChunkSources.
- Correctly propagate errors loading manifests through
ChunkSource components.
- Fix some misc warnings.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123732918
Aside from deleting code, this change (a) adds retry
functionality for initial manifest fetches, (b) uses
the same loader for the utc timing fetch as for the
manifest.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123634812
The issue is visible for DRM playbacks because
BUFFER_FLAG_ENCRYPTED is being cleared, which results
in trying to play encrypted samples without decryption.
The issue would have also incorrectly cleared key frame
flags too, for both clear and encrypted playbacks, but
I don't think we're using that flag downstream anywhere
and so the issue wasn't visible.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123426582
We allow 2 configurations: Forcing seamless adaptiveness and allowing
mixed mime types adaptation.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123420364
Pull more logic up to HlsSampleSource. Somewhat regretfully,
this also backs out the optimization work done toward the
ref'd issue. I think that's one for another time perhaps...
Issue: #551
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123417413
It's not a comprehensive solution for setting the
playback speed because (a) it doesn't apply when
audio is disabled, and (b) we do some timestamp
interpolation in a few places where we assume real
time. However in practice it works pretty well and
most apps probably don't allow disabling of audio,
so I think it makes sense to expose it.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123406605
This is in preparation for changing the TrackStream while keeping the renderer
enabled, to give seamless transitions for playlists.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123394733
Added a new method TestUtil.consumeTestData() to emulate
the exact behaviour and modified OggExtractorFileTests to
use it. Rest of the test will be fixed in follow up CLs.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123320538
Initially only the first source index is used. In a later change,
ExoPlayerImplInternal will create SampleSources for different playlist item
indices as necessary.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123312595
This change moves generally useful functionality (load timing
and fatal error propagation) inside of Loader, so that callers
don't have to duplicate effort.
The change also makes use of generics so that the callback
receives a Loadable with a more specific type.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123304369
Where multiple messages are required to be sent in order
to perform a player reconfiguration, it will usually be
desirable to process all messages in a single "transaction"
(i.e. without any rendering happening when only some of
the messages have been applied).
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123228334
This should be a no-op change, but it seems sensible to
have them not overlap.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123208140
- Simplify setSurface by always blocking when the surface
is being cleared.
- Add analogous setVolume API.
- Support setting of playback params for extension audio
decoders. We can probably use this to add a setPlaybackRate
API to SimpleExoPlayer for API level 23 and above only,
but we'd probably want to make sure it works properly when
there's no audio track too, so some thought will be
required.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123204581
DrmSessionManager is now an actual manager. For each session
request it may return a shared session (as things work now,
and as is suitable for Widevine VOD) or a separate instance
(e.g. for PlayReady where audio and video are protected with
different keys).
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123203664
DemoPlayer moves into core library as SimpleExoPlayer, which
implements ExoPlayer.
Issue: #383
Issue: #592
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123090184
With this CL:
* The first supported video track found is selected.
* The first supported audio track with preferred language is selected.
If none, we fallback to the first supported one.
* For text, we only present a selection if one of the tracks has the
preferred language and the track is flagged as forced.
TODO list:
* Add a selection policy for video (probably related with adaptiveness).
* We should decide what to do with the default flag.
* Perhaps, if no audio with the preferred language(assuming there is one)
is found, we should fall back to a text track that has the preferred
language.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122985006
1. Properly split out listening responsibilities so that
DemoPlayer only listens to its own components.
2. Revert StreamingDrmSessionManager UnsupportedDrmScheme
exceptions back to how they worked in V1, and inject
a DrmSessionManager rather than a MediaDrmCallback into
DemoPlayer.
This much better prepares DemoPlayer for promotion into
the core ExoPlayer library, since it removes assumptions
such as what SampleSource and DrmSessionManager impls
might be used with it.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122980952
- Parse APIC and TextInformation frames.
- In MPEG-TS, don't mind if packets contain end padding.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122743786
Bigger changes will be coming, but this gets DRM back
up and working again.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122719062
Previously, rounding down to the nearest frame wasn't
being done correctly; seeking could seek into a sample.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122618668
This field will allow us to flexibly add information provided by the container
or streaming manifests related to the tracks that must be selected.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=122559858