ojw28
b501f8ab39
Merge pull request #160 from google/dev
...
dev -> dev-hls
2014-11-20 11:12:06 +00:00
Oliver Woodman
33c37ebc82
Fix AudioTrack position reporting whilst paused.
...
Issue: #158
2014-11-20 11:04:38 +00:00
Oliver Woodman
2a832fd3c4
Minor stylistic tweaks.
2014-11-20 11:03:47 +00:00
ojw28
faf196a581
Merge pull request #154 from google/dev
...
Merge dev -> dev-hls
2014-11-19 16:10:17 +00:00
ojw28
d506d7660d
Merge pull request #147 from jonasl/dev-gc
...
MediaCodecTrackRenderer: Avoid excessive garbage generation
2014-11-19 16:08:38 +00:00
ojw28
25ddeab57d
Merge pull request #146 from jonasl/dev-hls-crop
...
TsExtractor: Account for frame cropping when parsing SPS
2014-11-19 16:08:27 +00:00
Oliver Woodman
127bcd18c3
Bring internal/external branches closer.
...
- Unredact internal error ids.
- Move images.
2014-11-19 15:58:26 +00:00
Oliver Woodman
4280511a33
Seamless splicing for adaptive HLS.
2014-11-19 10:34:49 +00:00
ojw28
87d0be252e
Merge pull request #149 from google/dev
...
dev -> dev-hls
2014-11-19 10:10:53 +00:00
Andrey Udovenko
3cfe894b93
Additional IV fix. Trim sign bit from BigInteger.toByteArray() output, if it creates a 17th byte for it. #145
2014-11-18 19:36:44 -05:00
Jonas Larsson
255c3b27f6
MediaCodecTrackRenderer: Avoid excessive garbage generation
...
Looking up a long in a HashSet<Long> auto boxes the long and leaves
it for the GC. As decodeOnly is relatively infrequent it's much
better to do a simple linear search in a List<Long>. That way
we can avoid boxing every incoming time stamp value. In the general
case this will be linear searching in an empty list, a very fast
operation.
Signed-off-by: Jonas Larsson <jonas@hallerud.se>
2014-11-18 15:41:16 -08:00
Andrey Udovenko
15d3df6a58
Add EIA-608 (CEA-608) Closed Captioning support for HLS #68
2014-11-18 14:48:40 -05:00
Andrey Udovenko
c57484f90a
Fix for IV bigger than 32 bits #145
2014-11-18 14:11:02 -05:00
Andrey Udovenko
3abcefa00c
Add EXT-X-BYTERANGE support #139
2014-11-18 14:05:34 -05:00
Oliver Woodman
bc303b730a
Factor out AudioTrack from MediaCodecAudioTrackRenderer.
...
AudioTrack contains the portions of MediaCodecAudioTrackRenderer that handle the
platform AudioTrack instance, including synchronization (playback position
smoothing), non-blocking writes and releasing.
This refactoring should not affect the behavior of audio playback, and is in
preparation for adding an Ac3PassthroughAudioTrackRenderer that will use the
AudioTrack.
2014-11-18 19:04:14 +00:00
Oliver Woodman
44bc01b28d
Add receiver for HDMI plugged-in configuration changes.
2014-11-18 19:02:32 +00:00
Oliver Woodman
7cd201c28b
Add missing class.
2014-11-18 19:02:20 +00:00
Oliver Woodman
2472637264
Add support for extracting Vorbis audio in WebM Extractor.
2014-11-18 19:00:30 +00:00
Oliver Woodman
6a544da2f8
Use new MediaCodecList APIs on L.
2014-11-18 18:58:04 +00:00
Oliver Woodman
685e1d1f06
Minimize memory leak risks.
...
Remove implicit back-reference from playback thread to player.
2014-11-18 18:54:45 +00:00
Jonas Larsson
467f19568b
TsExtractor: Account for frame cropping when parsing SPS
...
Passing uncropped dimensions to certain decoders will make them
output frames without proper cropping set.
Signed-off-by: Jonas Larsson <jonas@hallerud.se>
2014-11-18 08:53:54 -08:00
Oliver Woodman
360d452dad
Avoid seeking if seekPosition==currentPosition
2014-11-14 18:32:22 +00:00
Oliver Woodman
eb1210d410
Make sampleQueue thread safe
2014-11-14 18:31:55 +00:00
Oliver Woodman
6b123590ca
Correctly propagate errors
2014-11-14 16:31:47 +00:00
Oliver Woodman
643f33f7e9
Properly handle different profiles (skipping SPS data as needed).
2014-11-14 16:31:23 +00:00
Oliver Woodman
fd51901620
Big HLS update. Add start of adaptive support, but leave disabled for now.
2014-11-13 16:32:10 +00:00
Oliver Woodman
6c6ba900a9
Fix the build.
2014-11-13 16:23:44 +00:00
ojw28
0005f41fe9
Merge pull request #138 from google/dev
...
dev -> dev-hls
2014-11-13 16:20:13 +00:00
Oliver Woodman
d14e11c507
Additional extraction for AC3
2014-11-13 16:13:55 +00:00
Oliver Woodman
456d53e178
Minor cleanup.
2014-11-13 16:13:02 +00:00
Oliver Woodman
2d97d31a9e
Add ability to make fine-grained frame release timestamp adjustments
2014-11-13 16:11:52 +00:00
Oliver Woodman
f1c646b793
Add diagnostic info to decoder exceptions + minor cleanup
2014-11-13 16:10:21 +00:00
Oliver Woodman
59688397fa
Suppress deprecation warnings
2014-11-13 16:08:43 +00:00
Oliver Woodman
bc871c94a6
Add bitrate to MediaFormat
2014-11-13 16:08:16 +00:00
Oliver Woodman
4460b7c626
Fix typo
2014-11-13 16:06:49 +00:00
ojw28
7b5c4d705f
Merge pull request #131 from google/dev-l
...
Merge dev-l into dev-hls, now L SDK is released.
2014-11-10 08:49:20 +00:00
ojw28
5abb413f4e
Merge pull request #127 from google/dev
...
dev -> dev-l
2014-11-06 19:30:47 +00:00
ojw28
e9dacb08df
Merge pull request #126 from google/dev
...
dev -> dev-hls
2014-11-06 19:30:24 +00:00
Oliver Woodman
1653e81687
Add configurable retry count to ChunkSampleSource
2014-11-06 19:28:21 +00:00
Oliver Woodman
eccf8d7924
Minor Webvtt parsing tweaks
2014-11-06 19:27:28 +00:00
Oliver Woodman
d2e73dd566
Add brackets to make expression clearer.
2014-11-06 19:26:41 +00:00
Oliver Woodman
aeb17e6a88
HLS improvements + steps towards ABR.
2014-11-06 19:22:14 +00:00
Oliver Woodman
9790430a62
Trim whitespace from codecs
2014-11-06 19:17:22 +00:00
Oliver Woodman
55b4272a46
Pro-actively parse the final PES packet.
2014-11-05 17:25:02 +00:00
ojw28
e6c7e29647
Merge pull request #121 from google/dev
...
dev -> dev-l
2014-11-05 17:15:39 +00:00
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
059835e357
Merge pull request #113 from google/dev
...
dev -> dev-l
2014-11-03 12:21:45 +00: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
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
Andrey Udovenko
d3a05c9a44
Add ID3 Timed Metadata support for HLS #67
2014-10-28 13:24:12 -04:00
ojw28
dd2921f9b2
Merge pull request #97 from google/dev
...
dev
2014-10-28 14:19:18 +00: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
ojw28
1057a45812
Merge pull request #92 from google/dev
...
Dev -> Dev-l
2014-10-27 11:06:10 +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
4c348d8aa6
Merge pull request #83 from google/dev
...
Pull dev -> dev-l
2014-10-20 16:59:46 +01: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
Oliver Woodman
fcd9ec6c23
Tweak audio renderer to match dev/dev-hls.
2014-10-09 21:55:10 +01:00
Oliver Woodman
fd3016cd13
Use setVolume on API level 21 devices, plus minor naming cleanup.
2014-10-09 17:54:30 +01:00
ojw28
d2e480f01b
Merge pull request #75 from google/dev
...
Merge dev -> dev-hls
2014-10-09 17:31:36 +01:00
ojw28
989bbef24e
Merge pull request #74 from google/dev
...
Merge dev -> dev-l
2014-10-09 17:31:05 +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
Oliver Woodman
be721943c6
Fix incorrect condition.
2014-10-02 12:23:08 +01:00
ojw28
1c92b28b16
Merge pull request #65 from google/dev
...
Add file missing from "Improve subtitle handling" change.
2014-10-01 22:17:32 +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
f4d3079bba
Merge pull request #63 from google/dev
...
Update dev-l
2014-10-01 22:10:16 +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
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