123 Commits

Author SHA1 Message Date
Andrey Udovenko
71f918c01b ID3 refactoring to match apple's player behavior #67 2014-11-05 11:54:45 -05:00
Andrey Udovenko
c781fcd13d Merge pull request #117 from google/dev
Add cookies support and use the same UserAgent in ManifestFetcher and in...
2014-11-04 14:20:36 -05:00
Andrey Udovenko
712e46085d Add cookies support and use the same UserAgent in ManifestFetcher and in HttpDataSource. 2014-11-04 14:06:37 -05:00
Andrey Udovenko
a76addba5d Add AES-128 encryption support for HLS #69 and parsing logic for CODECS and RESOLUTION attributes. 2014-11-04 13:38:22 -05:00
ojw28
f4a5cd637f Merge pull request #112 from google/dev
dev -> dev-hls
2014-11-03 12:21:04 +00:00
Oliver Woodman
19eb7795fe Fix default startNumber.
Issue: #108
2014-11-03 12:01:53 +00:00
Oliver Woodman
4c146ee28d Neaten TsExtractor a little.
- Add a readBit method to BitsArray for reading a boolean flag.
- Make things accessed from inner classes package visibility to avoid
  the compiler generating thunk methods.
2014-10-28 19:48:54 +00:00
ojw28
b6bbf50c0e Merge pull request #99 from google/dev
dev -> dev-hls
2014-10-28 19:29:29 +00:00
Oliver Woodman
2422912be8 Refactor HLS support.
- The HlsSampleSource now owns the extractor. TsChunk is more or less dumb.
  The previous model was weird, because you'd end up "reading" samples from
  TsChunk objects that were actually parsed from the previous chunk (due to
  the way the extractor was shared and maintained internal queues).
- Split out consuming and reading in the extractor.
- Make it so we consume 5s ahead. This is a window we allow for uneven
  interleaving, whilst preventing huge read-ahead (e.g. in the case of sparse
  ID3 samples).
- Avoid flushing the extractor for a discontinuity until it has been fully
  drained of previously parsed samples. This avoids skipping media shortly
  before discontinuities.
- Also made start-up faster by avoiding double-loading the first segment.

Issue: #3
2014-10-28 19:25:44 +00:00
Oliver Woodman
78f34cf480 Add svg source for diagrams. 2014-10-28 18:22:26 +00:00
Oliver Woodman
11cbe2819e Clean up project files. 2014-10-28 17:55:21 +00:00
Andrey Udovenko
d3a05c9a44 Add ID3 Timed Metadata support for HLS #67 2014-10-28 13:24:12 -04:00
ojw28
3bee259de9 Merge pull request #96 from google/dev
dev -> dev-hls
2014-10-28 14:18:56 +00:00
Oliver Woodman
c34f7368ae Minor tweak to UriDataSource. 2014-10-28 14:12:55 +00:00
Oliver Woodman
5ba3f1eea3 Fix build. 2014-10-28 10:08:49 +00:00
ojw28
119eb6712a Merge pull request #93 from google/dev
Dev -> Dev-hls
2014-10-27 11:06:31 +00:00
Oliver Woodman
192cdc66a2 Ignore secure decoders. They shouldn't be explicitly listed. 2014-10-27 11:00:04 +00:00
Oliver Woodman
067422a491 Cleanup TextTrackRenderer. 2014-10-27 10:59:37 +00:00
Oliver Woodman
5f6b197355 Allow direct and indirect buffer replacement.
Also tweak ManifestFetcher.
2014-10-27 10:58:43 +00:00
Oliver Woodman
ae6e082d2f Add a UriDataSource for reading from file or network. 2014-10-27 10:54:51 +00:00
Oliver Woodman
6aeb989327 Add some MimeTypes that will be useful in the future. 2014-10-27 10:54:20 +00:00
Oliver Woodman
f859205438 Let FileDataSource report to a TransferListener. 2014-10-27 10:52:45 +00:00
Oliver Woodman
b8415dba59 Parse all UUID boxes, not just the first one. 2014-10-27 10:51:45 +00:00
ojw28
c2c7a75681 Merge pull request #82 from google/dev
Pull dev -> dev-hls
2014-10-20 16:59:18 +01:00
Oliver Woodman
1f0d411886 Make mpd parser more ameanable for extension. 2014-10-20 16:55:38 +01:00
Oliver Woodman
5a87133219 Add case for 7.1 audio. 2014-10-20 16:54:51 +01:00
Oliver Woodman
5f0be427a4 Update HlsSampleSource + correctly propagate error from prepare.
Issue: #81
2014-10-20 16:53:43 +01:00
Oliver Woodman
4853611803 Remove additional "/" from merged URLs.
Issue: #81
2014-10-20 16:45:56 +01:00
Oliver Woodman
60d162df18 Fix overflow when comparing HLS Segments for long videos. 2014-10-15 20:42:26 +01:00
ojw28
d2e480f01b Merge pull request #75 from google/dev
Merge dev -> dev-hls
2014-10-09 17:31:36 +01:00
Oliver Woodman
759431048d Treat "no chunk to load yet" in the same way as finished.
The key change here is that nextLoadPositionUs is set to -1
if we're not loading but don't have a next chunk ready to
load. This ensures that "missing chunks" in one stream don't
prevent chunks in another stream from loading. This occurs
in SmoothStreaming with TTML subtitles, where the chunks are
sparse.
2014-10-09 17:27:20 +01:00
Oliver Woodman
027d9eefbd Smoother playback #1.
Propagate elapsedRealtimeUs to the video renderer. This allows
the renderer to calculate and adjust for the elapsed time since
the start of the current rendering loop. Typically this is <2ms,
but there situations where it can go higher (normally when the
video renderer ends up processing more than 1 output buffer in
a single loop).

Also made variable naming more consistent throughout the package.
2014-10-09 17:26:01 +01:00
Oliver Woodman
3b4409ae0b Allow relaxation of TTML validity requirement when parsing subtitles. 2014-10-09 17:19:14 +01:00
Oliver Woodman
d4e824634c Throw a checked exception rather than unchecked one.
So that we actually catch it, rather than having the process crash!
2014-10-09 17:17:43 +01:00
Oliver Woodman
43712ce41c Cap AudioTrack latencies at 10 seconds and log a warning if too large. 2014-10-09 17:16:13 +01:00
Oliver Woodman
ac18ac087b Fix missing ->IN_SYNC transition. 2014-10-09 17:13:14 +01:00
ojw28
7794df7bd8 Merge pull request #64 from google/dev
Add file missing from "Improve subtitle handling" change.
2014-10-01 22:17:11 +01:00
Oliver Woodman
dec40bcbd3 Add file missing from "Improve subtitle handling" change. 2014-10-01 22:14:44 +01:00
ojw28
422f23aceb Merge pull request #62 from google/dev
Update dev-hls
2014-10-01 22:09:48 +01:00
Andrey Udovenko
d64036c5ed Add basic HLS support (VOD and Live) with EXT-X-DISCONTINUITY. 2014-10-01 17:03:07 -04:00
ojw28
8c665e3dd2 Improve subtitle handling.
- Move parsing onto a background thread. This is analogous
  to how frame decoding is pushed to MediaCodec, and should
  prevent possible jank when new subtitle samples are parsed.
  This is more important for out-of-band subtitles, which can
  take a second or two to parse fully.

- Add Useful DataSpec method.
2014-10-01 21:27:25 +01:00
ojw28
ea1ab674a4 Strip trailing newline from WebVTT subtitles. 2014-10-01 21:26:12 +01:00
ojw28
9fc963acc6 Add missing param documentation. 2014-10-01 21:25:02 +01:00
ojw28
8ea3f9805c Add class to enable loading of out-of-band subtitle files. 2014-10-01 21:23:50 +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