932 Commits

Author SHA1 Message Date
eguven
f16b8baf75 ExtractorInput new skip methods to make skip methods analogous to the three read methods.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=110155932
2015-12-16 20:41:51 +00:00
Oliver Woodman
009b454b69 Add InputStream to byte[] method to Util. 2015-12-16 20:33:50 +00:00
Oliver Woodman
7f8ddeac39 Added little endian methods to ParsableByteArray. 2015-12-16 20:33:04 +00:00
Oliver Woodman
50d5cbea70 Don't treat network_PID as program_map_PID.
Issue: #1068
Issue: #1001
2015-12-16 19:57:14 +00:00
yauhen
7fce590db2 blacklisted broken mp3 decoder on api lower than 20 2015-12-14 17:50:54 +03:00
eguven
a1d5626fe7 Fixed DefaultExtractorInput.read(...) to allow to read bytes in the peek buffer
when the dataSource reaches to the end.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=110131793
2015-12-14 10:39:55 +00:00
aquilescanta
80bd91e636 Add "Webvtt embedded in MP4" support
Issue: #689
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=110003312
2015-12-14 10:39:45 +00:00
andrewlewis
63dc769bff Improve seeking in MP3 files with XING headers.
Fix behavior of getTimeUs when seeking after the last entry in the table of
contents. Round correctly in getPosition, clipping to the stream duration based
on the input length (if known), falling back to the stream size from the header.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=109993852
2015-12-14 10:39:45 +00:00
aptly-io
cd1b991c48 Allow multiple identical but intermittent spans
Multiple identical TTML fontStyles or fontWeights or textDecorations
on the content for a specific moment were rendered as if there's only
one decoration (span).
That's because SpannableStringBuilder.setSpan(span, start, end, flag)
found an earlier set span (the static allocated span's reference
is the same each time) and only refreshed this first span's start and
end values instead of adding a new span at its (new) different range.
This patch removes the static data members;
this makes the newly allocated span objects distinguishable.
A correct implementation is favoured over worries about memory
consumption.
2015-12-14 10:39:45 +00:00
andrewlewis
36ea0f8acd Fix Seeker.getTimeUs for positions before the first frame.
Issue: #1038
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=109906628
2015-12-14 10:39:45 +00:00
olly
345e4ec74e Bump version to 1.5.3.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=109698010
2015-12-08 18:00:46 +00:00
Oliver Woodman
bdc7633f5a Cleanup in TsExtractor. 2015-12-08 17:17:30 +00:00
olly
84307eff50 Document ChunkSampleSource constructors.
Issue: #1030
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=109674800
2015-12-08 16:15:41 +00:00
ojw28
c0b19ed72b Merge pull request #1007 from alex3d/large-pmt
Fixed large PMT packet parsing
2015-12-08 11:39:12 +00:00
olly
fb7ddb722c Minor tweaks to AudioTrack playback params logic.
- Use allowDefaults to fix crash if params are passed without
  the speed being explicitly set.
- Allow null to be passed to clear previously set params.
- Clarify in doc that the passed params shouldn't be modified
  after they're passed.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=109591580
2015-12-07 19:55:21 +00:00
andrewlewis
20e3ca73ec Don't use CIPMP3Decoder.
Issue: #1000
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=109318738
2015-12-07 19:54:56 +00:00
andrewlewis
46481fabcc Mark AudioTrackUtilV23 overriding methods with @Override.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=109093558
2015-12-02 17:02:03 +00:00
aquilescanta
6570ef0e48 Add support for AudioTrack pitch/speed alteration on API 23.
Issue #26
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=108958826
2015-12-02 17:00:29 +00:00
alex3d
f752a023c8 Fixed large (>ts packet) PMT parsing 2015-11-30 19:41:14 +03:00
Andrew Lewis
33506adab5 Remove executable bit from some test assets. 2015-11-30 16:01:35 +00:00
Oliver Woodman
a6bfe02d24 Add additional Widevine samples + improve errors.
* Add additional Widevine samples.
* Improve error messaging in demo app around decoders.
* Display toasts for playback errors related to missing insecure
  decoders, missing secure decoders, decoder instantiation failure
  and decoder query failure.
* Remove checks from SampleChooserActivity, since the above largely
  covers off this problem.
2015-11-27 16:40:31 +00:00
Oliver Woodman
c2df814b58 Add special WebvttExtractor for HLS.
This is the main component required to enable WebVTT subtitles in HLS.
It passes through each WebVTT file as a sample, and derives the correct,
adjusted timestamp for each of them on the way through.

Not yet wired up because we need to properly share the same
PtsTimestampAdjuster everywhere, and also stop instantiating new instances
of the adjuster. The adjuster will also need to correctly handle
discontinuities, since we'll no longer be creating new instances of it.

Issue: #151
2015-11-27 16:03:37 +00:00
Oliver Woodman
1a9b2be551 WebVTT styling.
- parse webvtt cue
- remove all tags from string (supported or not)
- apply spans for b, i and u
- honor class names in tags to properly parse the cue but do not apply styles for them
2015-11-27 16:02:30 +00:00
Oliver Woodman
cdb6ac4073 Added a isLocalFileUrlOrPath(Uri) method to remove manual checks
Also replaced the manual checks with a call to this method
2015-11-27 15:59:25 +00:00
Oliver Woodman
c667feca4b Get the physical display resolution if possible.
Issue: #800
2015-11-27 15:58:11 +00:00
Oliver Woodman
c62e535cf0 Make HLS behind-live-window behavior consistent.
- Propagate BehindLiveWindowException if we fall off the back
  of an HLS live stream.
- Consolidate seekPositionUs and playbackPositionUs into a
  single parameter.

Issue: #765
2015-11-27 15:57:20 +00:00
Oliver Woodman
4bb8bea952 Subtitle renditions can be represented by Variant instances.
This will make it easier to use HlsChunkSource with WebVTT HLS
media playlists.
2015-11-25 17:07:40 +00:00
Oliver Woodman
761b8137eb Use API level 23 constants. 2015-11-25 17:05:59 +00:00
Oliver Woodman
72f093c4f6 WebVTT parser improvements.
* Split findNextCueHeader and validateWebVttHeader into static methods.
  This is a step toward WebVTT in HLS, where we'll need to re-use these
  to peek at the top of the WebVTT file (they'll be moved into a util
  class).
* Made parser robust against bad cue headers + added a test.
* Removed spurious looking assertion in WebvttSubtitle.
2015-11-25 17:05:20 +00:00
Oliver Woodman
963e604ffd Misc cleanup.
- Remove some unnecessary condition checking.
- Rename variable to a better name.
2015-11-25 17:03:57 +00:00
Oliver Woodman
1fc32d56c8 check maximum consecutively dropped frames in video tests 2015-11-25 17:01:21 +00:00
Oliver Woodman
ddaa9092ec Parse the sequence number at discontinuities.
This is required to match up segments in one playlist (e.g. VTT)
to those in another (e.g. Audio/Video).
2015-11-25 17:00:18 +00:00
Oliver Woodman
6f62b499c5 Merge seek/playback positions in ChunkSource interface. 2015-11-25 16:50:30 +00:00
Oliver Woodman
f11a204b4a Remove caption parser strict modes.
They don't seem particularly useful; they don't technically force
strict compliance, but rather just catch a few token things in
each case. Furthermore, for playback, probably the right thing to
do is to always turn strict mode off.
2015-11-25 16:49:25 +00:00
Oliver Woodman
4fbe4fc7d5 Throw correct exception. 2015-11-25 16:48:45 +00:00
Oliver Woodman
042bd2ff82 Clean up WebvttParser somewhat. 2015-11-25 16:47:52 +00:00
Oliver Woodman
7e2fffe74d Make sure we use the correct mimeType with DRM initialization data.
We were previously using the container format of the media being
played as the mimeType generating key requests, but this is not
always correct. As an example, where a manifest contains webm streams
but specifies initialization data using cenc:pssh elements in the
manifest, the media has a webm mimeType, but the DRM initialization
data has an mp4 mimeType.
2015-11-25 16:47:05 +00:00
Oliver Woodman
ad7237b5d0 Handle E-AC-3 audio in HLS. 2015-11-25 16:45:37 +00:00
Oliver Woodman
9fd575e1be Allow Representations to have custom cache keys. 2015-11-25 16:44:43 +00:00
Oliver Woodman
632ccc6c20 Simplify passthrough playback rate calculation.
This change also fixes pre-M DTS HD passthrough playback on NVIDIA Shield.
2015-11-25 16:43:56 +00:00
Oliver Woodman
b8e7e1077e Fix bad pixel w:h ratio calculation in H262 reader.
It appears the spec calculation gives the h:w pixel ratio, where-as
we want w:h. It's pretty easy to convince oneself that this way round
is correct. Consider a video that's 100px by 100px, and setting
aspectRatioCode=3 to achieve this. The pixelWidthHeightRatio needs to
be 16/9 and not 9/16 :).

Issue: #965
2015-11-25 16:42:12 +00:00
Oliver Woodman
57ee90a96c Clean up AudioTrack. 2015-11-17 16:29:42 +00:00
Oliver Woodman
a4f1e3ce53 Don't re-buffer when AudioTrack underruns occur. 2015-11-17 16:27:53 +00:00
Oliver Woodman
e65f726458 Allow video format filtering without viewport constraint. 2015-11-17 16:06:43 +00:00
Oliver Woodman
80e829d7d1 Fix some warnings. 2015-11-17 16:03:10 +00:00
Oliver Woodman
8234a25110 Add H262 support for TS.
Built on top of https://github.com/google/ExoPlayer/pull/915.
2015-11-17 16:01:28 +00:00
Oliver Woodman
b1e4283058 Some cleanup to TS H264/H265 readers. 2015-11-17 15:55:57 +00:00
Oliver Woodman
d96fe37c05 Don't use getClass().getSimpleName() where it's pointless to do so 2015-11-17 15:52:58 +00:00
Oliver Woodman
bcbfe9f708 Add AMR-NB and AMR-WB support to ExoPlayer 2015-11-17 15:52:16 +00:00
Oliver Woodman
b293cf2a76 Parse QuickTime variant audio sample entries.
Issue: #958
2015-11-17 15:50:20 +00:00