- 15 Jun, 2016 40 commits
-
-
This is needed to support fully demuxed audio in HLS. For the sample I have the video (only) variant still declares an AAC stream. I suspect there's at least one toolchain out there that hardcodes H264 and AAC streams in TS output. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117224224
olly committed -
https://github.com/google/ExoPlayer/pull/1234
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117224172
olly committed -
The idea here is that you'll be able to feed data through an extractor to a FakeExtractorOutput, then do the same again with some or all of the simulated flakiness settings toggled on FakeExtractorInput, and then assert that the output was the same in both cases. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117224019
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117220851
olly committed -
The upstream source (or its stream) should always provide data starting from a sync frame, so this logic shouldn't be necessary. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117220759
olly committed -
allow "center". This value (and not "middle") is listed in https://w3c.github.io/webvtt/ ( WebVTT: The Web Video Text Tracks Format, Draft Community Group Report, 21 December 2015). Leaving the behavior for "middle" unchanged. It was the value listed in older drafts, e.g. https://www.w3.org/TR/2014/WD-webvtt1-20141113/ ( W3C First Public Working Draft 13 November 2014 ) ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117220612
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117220536
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117220482
olly committed -
Failing to parse a UUID from a ContentProtection should only result in filtering if there was actually a cenc:pssh element there for us to get it from. Issue: #1256 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117220417
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117220360
olly committed -
This avoids accessing PtsTimestampAdjuster through a thunk method, and allows the PesReader classes to be static, which is nice in general. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117220139
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117220082
olly committed -
- Use it to simplify a bunch of tests. - Will also replace RecordableExtractorInput in a subsequent CL. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117220030
olly committed -
Issue: #497 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117219944
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117219856
olly committed -
Issue: #1195 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117155301
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117149421
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117148015
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117141509
olly committed -
Set the duration to the sum of the final period's start + duration (if available) if MPD@mediaPresentationDuration isn't set in the manifest. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117141391
olly committed -
Issue: #1193 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117136800
olly committed -
Issue: #1185 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117136646
olly committed -
Issue #1181 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117136370
olly committed -
Issue: #1235 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117131149
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117131005
olly committed -
- readFully calls when reading a string or varint may have 0 length. The behavior of a 0 length read isn't well defined either at the ExtractorInput or DataSource level, particularly when the read may also coincide with EOS. We'll work on defining these cases properly going forward, but in the meantime this fix avoids attempting 0 length reads. - [Aside] UTF8 the is guaranteed default charset on Android. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117130356
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117129870
olly committed -
DTS Express (which is DTS LBR according to http://www.mp4ra.org/codecs.html) is not supported for passthrough playback currently. Associate a different MIME type with it so that we don't try to use DTS passthrough for playing DTS Express. The MIME type for DTS Express is just vnd.dts.hd, with a profile parameter indicating that it's DTS Express rather than one of the other formats. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117129583
olly committed -
Handle minor timing difference between the different media content and the available range values as specified in the MPD. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117127112
olly committed -
The logic in the platform was causing captions and the reported playback position to gradually drift out of sync with respect to audio and video. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117126970
olly committed -
Issue: #1197 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117125081
olly committed -
Notes: - The way this works is that every time the player needs to select some tracks it invokes the TrackSelector. When a track selection is actually activated (i.e. "hits the screen") it gets passed back to the TrackSelector, which allows it to expose the current tracks through an API that it may choose to define. Since playlist support doesn't exist yet, it's currently the case that the pass-back always occurs immediately. - A TrackSelector can invalidate its previous selections if its selection criteria changes. This will force the player to invoke it again to make a new selection. If the new selection is the same as the previous one for a renderer then the player handles this efficiently (i.e. turns it into a no-op). - DefaultTrackSelector supports disabling/enabling of renderers. Separately, it supports overrides to select specific formats. Since formats may change (playlists/periods), overrides are specific to not only the renderer but also the set of formats that are available to it. If the formats available to a renderer change then the override will no longer apply. If the same set of formats become available at some point later, it will apply once more. This will nicely handle cases like ad-insertion where the ads have different formats, but all segments of main content use the same set of formats. - In general, in multi-period or playlist cases, the preferred way of selecting formats will be via constraints (e.g. "don't play HD", "prefer higher quality audio") rather than explicit format selections. The ability to set various constraints on DefaultTrackSelector is future work. Note about the demo app: - I've removed the verbose log toggle. I doubt anyone has ever used it! I've also removed the background audio option. Without using a service it can't be considered a reference implementation, so it's probably best to leave developers to figure this one out. Finally, listening to AudioCapabilities has also gone. This will be replaced by having the player detect and handle the capabilities change internally in a future CL. This will work by allowing a renderer to invalidate the track selections when its capabilities change, much like how a selector is able to invalidate the track selections in this CL. - It's now possible to enable ABR with an arbitrary subset of tracks. - Unsupported tracks are shown grayed out in the UI. I'm not showing tracks that aren't associated to any renderer, but we could optionally add that later. - Every time the tracks change, there's logcat output showing all of the tracks and which ones are enabled. Unassociated tracks are displayed in this output. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=117122202
olly committed -
- I don't think the length is useful in hashCode; if the length is different then Arrays.hashCode should account for that. - "this." just for consistency across these classes. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=116641142
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=116638211
olly committed -
This change replaces TrackGroup[] with TrackGroupArray. This is to allow equality based hashCode and equals implementations. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=115563146
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=115561885
olly committed -
This change allows a TrackRenderer to distinguish between the "I don't support this type at all" case and the "I am a general purpose renderer of this type, but cannot support the specific subtype" case. Bug=26622675 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=115454950
olly committed -
The TrackSelector API will look like: TrackSelection[] selectTrack( TrackRenderer[] renderers, TrackGroup[] trackGroups); In this CL: - SampleSources return TrackGroup[], so that the result can be easily passed to the selector. - TrackStream gets its own file to sit alongside other Track* classes. - A TrackSelection object is introduced to encapsulate group and track indices. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=115251331olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=114963314
olly committed -
- Add a top level failure type (source/renderer/unexpected), and convenience methods for retrieving the underlying cause without needing to cast. - Also add renderer index in the case of renderer failures. - setIndex/getIndex is a little . . . unclean, but alternatives involve either having the top line of the stack trace be a non-interesting line, or loads of try/catch blocks in ExoPlayerImplInternal. Issue: #777 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=114763073
olly committed
-