21347 Commits

Author SHA1 Message Date
ojw28
8ea3f9805c Add class to enable loading of out-of-band subtitle files. 2014-10-01 21:23:50 +01:00
ojw28
e99aaa4d67 Update CaptionStyleCompat for L. 2014-09-29 16:59:08 +01:00
ojw28
9cfe5fcf44 API level 21 enhancements for ExoPlayer playbacks.
- Use native frame release timing in video renderer for
  smoother video playback.
- Avoid unnecessary memory copy steps in audio renderer.
- Use non-blocking AudioTrack API.
2014-09-25 20:29:44 +01:00
ojw28
dd30632aa1 SmoothStreaming Live support.
Issue: #12
2014-09-25 20:16:30 +01:00
ojw28
4adf8f77f4 Tweak stop/disable cycles. 2014-09-25 20:13:40 +01:00
Oliver Woodman
fc230733ae Ignore blockingSendMessage calls after release.
Previously we'd end up blocking forever in this case, which
is the worst thing we could do :). We could either throw an
exception or just print a warning. Printing a warning is more
in line with what other methods do (Handler prints a "sending
message to dead thread" warning).
2014-09-23 11:21:44 +01:00
Oliver Woodman
da125bb5cc Merge DashLiveMpdFetcher logic into generic ManifestFetcher.
This allows ManifestFetcher to both execute the initial
manifest load and be plugged into an ExoPlayer ChunkSource,
where it can be used for repeated manfiest refreshes during
live playback.
2014-09-23 11:17:36 +01:00
Oliver Woodman
f82a331728 Fix StreamingDrmSessionmanager.
Use locally bound variable instead of class variable.
2014-09-23 11:14:16 +01:00
Oliver Woodman
1ed048dba8 Clean up TTML timestamp parsing. 2014-09-23 11:13:54 +01:00
Oliver Woodman
7cb55e23f6 Correctly handle zero length fragmentRun. 2014-09-23 11:13:31 +01:00
Oliver Woodman
4fdd68facf Fix SmoothStreamingManifest to handle large timestamps. 2014-09-23 11:13:09 +01:00
Oliver Woodman
c4e1c3543c Enhance Loader API. 2014-09-19 18:36:12 +01:00
Oliver Woodman
ce5eea72d2 Auto-infer character encoding. 2014-09-19 18:34:46 +01:00
Oliver Woodman
4344675098 Add WebVTT parser. 2014-09-19 18:34:05 +01:00
Oliver Woodman
525b309764 SmoothStreaming - Parse last chunk duration. 2014-09-19 18:33:23 +01:00
Oliver Woodman
f52742b100 Ensure that we try and call release on a renderer
Do this even if stop/disable fails.
2014-09-19 18:32:21 +01:00
Oliver Woodman
4e96caa623 Resolve reference Uris correctly.
Ignore the path of the base Uri if the reference starts with "/".
Spec - http://tools.ietf.org/html/rfc3986#section-5.2.2
2014-09-19 18:31:17 +01:00
Oliver Woodman
bf95592b2c Remove unused import. Tweak documentation. 2014-09-19 18:30:21 +01:00
Oliver Woodman
8378019839 Fix SmoothStreaming where audio FourCC is missing. 2014-09-19 18:29:34 +01:00
Oliver Woodman
b2fc944af1 Remove getLoadedData API from ExoPlayer components.
This API wasn't particularly nice. Best to remove it whilst
hopefully no-one is using it. Leaving the ReadHead abstraction
in place, since it might well prove useful in the future.
2014-09-19 18:26:04 +01:00
Oliver Woodman
c19faa63cd A few tiny bug fixes. 2014-09-11 18:03:11 +01:00
Oliver Woodman
ec90eac301 Support anamorphic video content. 2014-09-11 16:34:35 +01:00
Oliver Woodman
6c3ae7f175 Add SubtitleView and CaptionStyleCompat to ExoPlayer. 2014-09-11 16:30:39 +01:00
Oliver Woodman
e4b35e884a Transition ExoPlayer to use longs for ms timestamps. 2014-09-11 16:26:43 +01:00
Oliver Woodman
d85f4abb2b Support negative media timestamps (if people *really* want to send us them!). 2014-09-11 16:23:50 +01:00
Oliver Woodman
6b2b6ca479 Prevent device provisioning when another device provisioning request is already under process. 2014-09-11 16:23:13 +01:00
Oliver Woodman
bc01a4f48d Relax MediaCodecVideoTrackRenderer.canReconfigureCodec().
Allow non-H264 adaptive decoders.
2014-09-11 16:22:40 +01:00
Oliver Woodman
bf5ee6ff23 1. Parse live attributes from SmoothStreaming manifest.
2. Common interface for manifest parsers.
- This effectively moves the common interface from the Fetcher level
  (i.e. ManifestFetcher) to the Parser level (i.e. ManifestParser).
- The motivation here is to allow the implementation of components that
  can work with a generic ManifestParser implementation.
2014-09-11 16:22:01 +01:00
Oliver Woodman
d4e35358a1 Fix bad assertion. It doesn't hold for TTML subtitle chunks. 2014-09-11 16:09:52 +01:00
ojw28
280ccb1630 Merge pull request #43 from google/dev
Merge 1.0.13 to master
2014-09-08 11:41:56 +01:00
Oliver Woodman
6e9ba9ba47 Bump version to 1.0.13. 2014-09-08 11:38:20 +01:00
Oliver Woodman
ddd2d004f0 Make SmoothStreaming manifest more robust.
- Skips unrecognized elements rather than crashing.
- FourCC treated as required for video and optional elsewhere,
  as per the SmoothStreaming spec.
- Only parse initData text when we're actually in the ProtectionHeader element
2014-09-08 11:35:39 +01:00
Oliver Woodman
181eceaf4b Fixed MPD date/time parsing issue. 2014-09-08 11:34:06 +01:00
Oliver Woodman
52a300f1fd Merge fMP4/H264 and WebM/VP9 DASH implementations. 2014-09-08 11:33:12 +01:00
Oliver Woodman
1ddd5c6e16 Parse some DASH manifest components for DVB LIVE. 2014-09-08 11:30:21 +01:00
Oliver Woodman
5d35698d8f Make MediaCodecTrackRenderer discard non-keyframes after seek.
This means that after a decoder flush, the renderer will avoid
feeding non-keyframes into the decoder until it has received and
fed the first keyframe. The decoder has no way of correctly
decoding non-keyframes that arrive before a keyframe.
2014-09-08 11:30:20 +01:00
Oliver Woodman
5059690a7a Add https->http redirect sample video. 2014-09-08 11:30:19 +01:00
Oliver Woodman
5b2f0566a7 Fix potential cause of infinite-spinner-without-failure.
It looks like for the case of self-contained media segments,
it's possible to get stuck without failure in the case that
the load fails having loaded less than the length of the init
data.
2014-09-08 11:30:19 +01:00
Oliver Woodman
92e3208121 Don't try and read a trackEncryptionBox unless we actually have a saiz atom to parse.
Issue: #35
2014-09-08 11:30:18 +01:00
Oliver Woodman
14048b013a Add disclaimer to stop people getting confused by the minSdkVersion.
Issue: #31
2014-09-08 11:30:17 +01:00
Oliver Woodman
d465ab7029 Call FormatHolder what it really is.
Since we have a Format class as well, it's very confusing that
FormatHolder actually holds a MediaFormat. I think it's quite
likely that Format will need promoting into the root package as
part of the HLS work, which will make this even more confusing
(although it is possible that for HLS we'll define yet another
Format class, if it turns out we need significantly different
fields).

Note - I deliberately avoided renaming the formatHolder
args/params, because they're not particularly ambiguous and
because it introduces some ugly line breaks.
2014-09-08 11:30:16 +01:00
Oliver Woodman
3b25928a13 Make audio renderer more robust to bad getTimestamp values. 2014-09-08 11:30:15 +01:00
Oliver Woodman
a7b88cd6a9 Tighten isReady() up again.
- Bring back requirement for the first video frame to be rendered
  before isReady returns true, *unless* we've deduced that the
  upstream source is serving multiple renderers.
- Ditto for requiring that the audio track has some buffered data.
2014-09-08 11:30:14 +01:00
Oliver Woodman
98a7573812 Minor changes to fix Javadoc.
- cache ref didn't work because it referred to a private variable
  (which isn't documented) from a public interface definition
  (which is). Meaning the Javadoc generator was trying to link
  to documentation that didn't exist.
2014-09-08 11:30:12 +01:00
ojw28
79c2f535c6 Merge pull request #29 from google/dev
Merge 1.0.12 to master
2014-08-14 17:04:34 +01:00
Oliver Woodman
cc04fd1e76 Fix the build. 2014-08-14 16:19:30 +01:00
Oliver Woodman
5b9c92cb83 Bump version to 1.0.12. 2014-08-14 15:45:33 +01:00
Oliver Woodman
4e7b333aee Support chunked requests. 2014-08-14 15:44:09 +01:00
Oliver Woodman
af6e144adc Fix bug introduced supporting self-contained media chunks.
The equals check we perform needs to ignore the max dimensions.
This tended to work in practice because formats would be the
same object, but in the case where different format objects
are used, things can break.
2014-08-12 21:35:13 +01:00
Oliver Woodman
5cfa9adacc Add missing C file. 2014-08-12 14:16:28 +01:00