Commit graph

52 commits

Author SHA1 Message Date
Oliver Woodman
67d0154960 Use Java7 <> syntax 2015-05-22 21:40:22 +01:00
Oliver Woodman
79d557dd80 Move WEBVTT custom header constants.
They're current location is annoying, because it creates a dependency
from the dash package to the webvtt package. For apps like Play Movies
where WEBVTT isn't used, it's nice just to delete the whole package at
import time, which requires that this dependency be removed.
2015-05-22 21:36:35 +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
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
1a9bf018a4 Add frame rate to Format for use in format selection (when known). 2015-04-22 16:16:42 +01:00
Oliver Woodman
9092fad8e8 Fix subtitles. 2015-04-17 20:02:20 +01:00
Oliver Woodman
d745384d99 Change decodeOnly to be a sample flag. 2015-04-10 22:55:12 +01:00
Oliver Woodman
eec6458b43 Add handling of Extended Western European character set for CEA-608. 2015-03-10 19:37:47 +00:00
Oliver Woodman
4076b08e4b Naming tweak 2015-02-20 15:07:22 +00:00
Oliver Woodman
b510088689 Fix EIA-608 issues.
- Data needs to be unescaped before it's passed to SeiReader.
- SeiReader should loop over potentially multiple child messages.
- I also changed the sample passed to the EIA-608 renderer so that
  it's the entire sei message payload. The first 8 bytes are
  unnecessary, but it seems nicer conceptually to do it this way.

Issue: #295
2015-02-19 11:22:42 +00:00
Oliver Woodman
784431f3e0 Move EIA reordering back to the renderer (sorry for churn).
Reordering in the extractor isn't going to work well with the
optimizations I'm making there. This change moves sorting back
to the renderer, although keeps all of the renderer
simplifications. It's basically just moving where the sort
happens from one place to another.
2015-02-12 12:48:27 +00:00
Oliver Woodman
797fa7f872 Make TsExtractor use ParsableByteArray where possible.
- TsExtractor is now based on ParsableByteArray rather than BitArray.
  This makes is much clearer that, for the most part, data is byte
  aligned. It will allow us to optimize TsExtractor without worrying
  about arbitrary bit offsets.
- BitArray is renamed ParsableBitArray for consistency, and is now
  exclusively for bit-stream level reading.
- There are some temporary methods in ParsableByteArray that should be
  cleared up once the optimizations are in place.

Issue: #278
2015-02-10 22:13:01 +00:00
Oliver Woodman
b0a3c30a90 Improve EIA608 caption support.
- Also make text renderers respect the decodeOnly flag.
- Also fix AC3 passthrough to always allocate direct buffers.
2015-02-09 17:28:07 +00:00
Oliver Woodman
fbf75e1263 Fix SubtitleView to redraw if text changes but bounds stay the same. 2015-02-06 11:31:13 +00:00
Oliver Woodman
0ef28abbec Modified Webvtt parser to handle cue identifiers and tags.
Issue: #268
2015-02-03 12:41:49 +00:00
Oliver Woodman
6f3ccc3615 Handle byte-order-mark prefix to WebVTT file.
Issue: #268
2015-02-02 14:56:33 +00:00
Oliver Woodman
ed0b02d09b Package restructuring to accommodate incoming features (sorry).
This may be painful in terms of applications having to change their
imports. Sorry about that.
2015-01-27 17:00:46 +00:00
Andrey Udovenko
b30f55f147 Process only type == 0 captions. #156 2015-01-22 12:53:33 -05:00
Andrey Udovenko
4158ede6e3 Move Closed Captions processing to Eia608TrackRenderer. Use TextRenderer interface for captions. Sort captions based on video frames DTS. Add better control characters and special characters in basic North American character set support. Fixes #156 2015-01-21 11:54:23 -05:00
Oliver Woodman
3a9d08edb5 Misc performance/correctness tweaks. 2014-12-17 19:18:33 +00:00
Oliver Woodman
81bf68b1cb Minor doc fixes. 2014-12-12 14:13:58 +00:00
Oliver Woodman
9d4e177347 Support DASH Live TTML subtitles.
Also add missing file.
2014-12-12 14:12:00 +00:00
Oliver Woodman
dc644ae86d Make single MICROS_PER_SECOND constant + use it everywhere. 2014-12-03 18:30:15 +00:00
Oliver Woodman
ab00a4da03 Allow non-strict webvtt parsing. 2014-11-26 11:23:15 +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
4460b7c626 Fix typo 2014-11-13 16:06:49 +00:00
ojw28
5abb413f4e Merge pull request #127 from google/dev
dev -> dev-l
2014-11-06 19:30:47 +00:00
Oliver Woodman
eccf8d7924 Minor Webvtt parsing tweaks 2014-11-06 19:27:28 +00:00
ojw28
1057a45812 Merge pull request #92 from google/dev
Dev -> Dev-l
2014-10-27 11:06:10 +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
ojw28
989bbef24e Merge pull request #74 from google/dev
Merge dev -> dev-l
2014-10-09 17:31:05 +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
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
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
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
e99aaa4d67 Update CaptionStyleCompat for L. 2014-09-29 16:59:08 +01:00
Oliver Woodman
1ed048dba8 Clean up TTML timestamp parsing. 2014-09-23 11:13:54 +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
6c3ae7f175 Add SubtitleView and CaptionStyleCompat to ExoPlayer. 2014-09-11 16:30:39 +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
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
58e9e61688 Remove unnecessary SuppressWarning annotations. 2014-08-12 14:13:43 +01:00
Oliver Woodman
8ec8840261 Minor cleanup.
- Add constants class. Currently housing a single lonely variable,
which is used generally throughout the library, and so no longer
nicely fits into a specific class.

- Rename a few other constants to add clear units.

- Made minor tweak to ExoPlayer documentation.
2014-08-11 18:38:39 +01:00
Oliver Woodman
9a124120ff Changes around renderer readiness and extraction.
- Make MediaCodecTrackRenderer.isReady more permissive.
  This largely fixes #21
- Bring WebmExtractor closer to FragmentedMp4Extractor.
  The two will probably be placed under a common interface
  fairly soon, which will allow significant code
  deduplication.
2014-08-01 15:56:26 +01:00