232 Commits

Author SHA1 Message Date
Oliver Woodman
a56c00268d Remove ability to disable frame accurate seek.
Everything I've seen that uses ExoPlayer sets it to true, and
setting it to false is poorly supported / likely to result in
bad initial A/V sync after each seek.
2015-07-30 10:05:04 +01:00
Oliver Woodman
e89c40cfd3 Handle renderer building cancellation.
If the manifest server response arrived after the player was released, the
renderer builder would set up renderers for a released player, causing an
exception to the thrown in the DASH case.

Also fix Issue #657
2015-07-27 12:45:23 +01:00
Oliver Woodman
03305c92cf Modified timing of manifest fetches to compensate for drift due to fetch time. 2015-07-23 13:44:52 +01:00
Oliver Woodman
85e0bca33d Add support for choosing an extractor based on sniffing the container.
- ExtractorSampleSource takes an array of extractors to test for suitability.
- Extractors now implement a sniff() method that returns whether they can
  extract samples in the input stream's format.
- Switch demo app samples to use format detection.

Issue: #438
2015-07-21 17:39:38 +01:00
Oliver Woodman
4451b06571 Use default subtitle parsers in demo app 2015-07-21 10:02:54 +01:00
Oliver Woodman
0279a9f791 Bump version to 1.4.1 2015-07-17 11:49:48 +01:00
Oliver Woodman
17c1b630b8 Bump version to 1.4.0 2015-07-16 18:26:50 +01:00
Oliver Woodman
c1e1497d13 Change how subtitles are laid out in the demo app.
The SubtitleLayout is now properly aligned with the surface.
This means the subtitles remain on top of the video in portrait
mode, rather than being huge and below it.
2015-07-15 11:09:20 +01:00
Oliver Woodman
fe52a486f4 Inject Allocator into ExtractorSampleSource. 2015-07-15 11:05:15 +01:00
Oliver Woodman
3bcd9ca6c3 Simplify HLS MP3 support. 2015-06-26 14:44:10 +01:00
Oliver Woodman
ed856b2a71 Test 2015-06-25 19:17:00 +01:00
Oliver Woodman
160a88baf9 Steps toward enabling seeking in DASH live 2015-06-18 14:28:54 +01:00
Oliver Woodman
8e58a3f5f5 Steps toward full multi-track support.
1. Remove requirement for TrackRenderer implementations to report
   current position, unless they are time sources.
2. Expose whether renderers have media to play. The immediate benefit
   of this is to solve the referenced GitHub issue, and also to only
   display the appropriate Audio/Video/Text buttons in the demo app
   for the media being played. This is also a natural step toward
   multi-track support.

Github issue: #541
2015-06-18 14:27:24 +01:00
Oliver Woodman
9de1bb7a01 Add Matroska sample 2015-06-18 14:18:51 +01:00
Oliver Woodman
8cf7d372e9 Fix test URL 2015-06-12 17:53:58 +01:00
Oliver Woodman
a70c1f1a4b Remove requirement to specify downstream renderer count.
This makes it so that it's no longer necessary to specify the number
of downstream renderers to HlsSampleSource, FrameworkSampleSource and
ExtractorSampleSource, by forcing the downstream renderers to register
with the SampleSource instances in their constructors. This eliminates
a common source of subtle client bugs where the passed value is incorrect.
2015-06-12 17:52:56 +01:00
Oliver Woodman
ae466cc59b Allow fmp4 in demo app (demuxed only) 2015-06-05 18:45:45 +01:00
Oliver Woodman
362ccea310 Clean up permissions 2015-06-05 18:29:37 +01:00
Oliver Woodman
01affbb93e Simplify tx3g support. 2015-06-04 15:47:57 +01:00
ood_tsen
f42ed89202 parse mp4 tx3g 2015-06-01 19:47:46 +08:00
Oliver Woodman
a85a169604 Simplify the demo app. 2015-05-28 17:18:26 +01:00
Oliver Woodman
b806109cfd Make HlsSampleSource use LoadControl.
This will be needed for keeping WebVTT subtitle and separate
audio tracks is sync whilst loading.

Issue: #151
2015-05-28 17:14:52 +01:00
Oliver Woodman
ea29c71d94 Temporarily revert bounded live seeking. It's causing issues in its current form. 2015-05-28 17:11:28 +01:00
Oliver Woodman
ac54b4f696 Cleanup/Sync with internal tree 2015-05-22 21:45:13 +01:00
Oliver Woodman
67d0154960 Use Java7 <> syntax 2015-05-22 21:40:22 +01:00
Oliver Woodman
efd0b1e3cf Updated all ExoPlayer Eclipse projects to use Java 1.7. 2015-05-22 21:34:51 +01:00
Oliver Woodman
54e2c2833c Bump to 1.3.3 2015-05-22 20:57:24 +01:00
Oliver Woodman
658a7ffba5 Step towards enhanced Webvtt parser to support HTML-rich captions and positioning. 2015-05-19 15:19:59 +01:00
Oliver Woodman
709fc7735b First steps toward implementing bounded live seek. 2015-05-19 15:16:29 +01:00
Oliver Woodman
763d68f26c Bump to 1.3.2 2015-05-19 14:37:29 +01:00
Oliver Woodman
6ae97ced3a Support content:// URIs, and some cleanup/consistency tweaks.
- There's definitely potential for more code sharing in these
classes, but deferring for now.
- Also made no-scheme default to file://, and allowed smoothstreaming
URLs to be specified with or without the /Manifest suffix.
2015-05-19 14:14:53 +01:00
Oliver Woodman
675c7738c1 Let DefaultUriDataSource load assets. 2015-05-19 14:12:59 +01:00
Oliver Woodman
5ca5df0bb2 Bump to 1.3.1 2015-05-12 18:42:46 +01:00
Oliver Woodman
64cc380fe1 Avoid loading first chunk when preparing HLS for non-zero position.
This also fixes a technical mistake where HlsChunkSource is fed
seekPositionUs=-1 when obtaining the first chunk. This is wrong,
but the usage of this variable within HlsChunkSource enforces that
the seek must stay within bounds, so we get away with it.

Issue: #385
2015-05-11 21:10:20 +01:00
Oliver Woodman
12d05a0917 Bump target API level to 22. 2015-05-11 21:04:51 +01:00
ojw28
2ce33c257a Merge pull request #436 from ened/dev
Simple gradle updates
2015-05-11 16:24:17 +01:00
Oliver Woodman
d9071710cf Read AC-3 tracks in MPEG TSs only if AC-3 playback is supported.
Partly fixes #434 as the AC-3 stream will now be ignored if the
audio capabilities don't allow it to be played back.
2015-05-08 17:08:13 +01:00
Oliver Woodman
54b71a5743 Allow cross-protocol redirects.
Issue: #423
2015-05-08 17:05:54 +01:00
Oliver Woodman
3360f5eda5 Enable passthrough based on the input MIME type. 2015-05-08 17:04:21 +01:00
Sebastian Roth
3079bf1d75 gradle updates 2015-05-07 16:35:53 +08:00
Oliver Woodman
02ea6f8937 Fix TYPE values. 2015-05-05 20:34:34 +01:00
Oliver Woodman
9d73104472 Remove unused imports. 2015-05-05 20:34:07 +01:00
Oliver Woodman
9921dfd1ce Deprecate FrameworkSampleSource as a deterrent. 2015-05-05 20:33:25 +01:00
Oliver Woodman
37827be8cb Use a UriDataSource for DASH manifests.
This allows loading a manifest from a file:// URI.
2015-05-05 20:32:28 +01:00
Oliver Woodman
d2ba5cfd97 Add TYPE_M4A, which is equivalent to TYPE_MP4. 2015-05-05 20:31:34 +01:00
Oliver Woodman
8eb7349987 Fix broken demo links 2015-05-05 20:12:32 +01:00
Oliver Woodman
7f58a0be81 Use TYPE_MP4 instead of TYPE_OTHER for Dizzy.
Issue: #72
Issue: #292
Issue: #302
Issue: #425
Issue: #424
2015-05-01 20:44:19 +01:00
Oliver Woodman
1cac22d2a2 Add support for standalone WebM playbacks. 2015-05-01 20:37:14 +01:00
Oliver Woodman
b3594051a1 Fix DemoPlayer's spurious transition through STATE_IDLE.
The spurious transitions were caused by calling pushTrackSelection
in onRenderers after changing the renderer building state to BUILT
and before calling player.prepare. pushTrackSelection can cause the
ExoPlayer to generate state changes, since it can call setPlayWhenReady.
This change transitions the renderer building state later, so that
when this happens getPlaybackState correctly masks the state and
returns STATE_PREPARING.
2015-05-01 20:35:54 +01:00
Oliver Woodman
79cdd03682 Filter unsupported video formats for HLS. 2015-05-01 20:34:57 +01:00