853 Commits

Author SHA1 Message Date
Oliver Woodman
4422e8a015 Further cleanup to FLV extractor 2015-10-27 18:23:00 +00:00
Oliver Woodman
f91ea9039d Read AC-3 and HEVC signaled by private registration_descriptor.
Issue: #898
2015-10-27 18:20:53 +00:00
Oliver Woodman
195c0c8884 Fix parsing of multi-channel AAC audio specific config in MP4 and ADTS.
Previously, when spectral band replication (SBR) or parametric
stereo (PS) was in use in an MPEG-4 stream, the channel configuration
chosen was likely incorrect. The channel configuration was *always*
incorrect for 7.1 audio (gave 7 channels instead of 8).
2015-10-26 15:34:29 +00:00
Oliver Woodman
9246fbbe7d Add exception type for manifest load errors. 2015-10-26 15:33:53 +00:00
Oliver Woodman
f3113e7055 Use MediaCodecUtil.IsSizeAndRateSupportedV21 where available. 2015-10-26 15:32:49 +00:00
Oliver Woodman
a74fd17e92 Handle curle braces in SystemID UUID.
Issue: #863
2015-10-26 15:31:09 +00:00
Oliver Woodman
21c1b8ca06 Add basic handling for edit lists in MP4 streams.
Issue: #874
2015-10-26 15:29:10 +00:00
Oliver Woodman
b03278f2bf Don't assume representations are video in first two DashChunkSource constructors. 2015-10-26 15:28:10 +00:00
Oliver Woodman
4d9dd3f6e6 Remove spurious blank line 2015-10-26 15:26:05 +00:00
Oliver Woodman
941ca3f304 Add readShort to ParsableByteArray 2015-10-26 15:25:46 +00:00
Oliver Woodman
b766253116 m 2015-10-26 15:23:06 +00:00
Oliver Woodman
14c190310c Fix broken Javadoc 2015-10-26 15:19:10 +00:00
Oliver Woodman
c59fc47565 Throw ParserException from parsers when a parse exception occurs. 2015-10-26 15:18:53 +00:00
Oliver Woodman
13aaa5a5db Use C.MICROS_PER_SECOND more consistently. 2015-10-26 15:16:56 +00:00
Oliver Woodman
daa5835915 Timestamp HEVC samples based on the first NALU's timestamp.
Issue: #893
2015-10-26 15:15:42 +00:00
Oliver Woodman
c0f0cbcb7a Move to target API level 23 2015-10-26 15:02:32 +00:00
Oliver Woodman
02d42753ec A couple of final tweaks 2015-10-26 11:56:25 +00:00
Oliver Woodman
cdad156bae Further tweaks to ScriptTagPayloadReader 2015-10-26 11:52:23 +00:00
Oliver Woodman
dff17f244c Some probably correct tweaks to ScriptTagPayloadReader 2015-10-26 11:14:34 +00:00
Oliver Woodman
950cc70003 Purely stylistic changes to FLV extractor 2015-10-26 10:44:19 +00:00
Oliver Woodman
fb75b65a70 Fix compile error. 2015-10-26 10:24:30 +00:00
ojw28
f133524c2f Merge pull request #828 from jeoliva/flv-experiment
FLV (H.264 + AAC) support
2015-10-26 10:17:53 +00:00
joli
3e36f529f8 FLV Support - Added Video Reader and parsing improvements 2015-10-22 23:50:46 +02:00
Oliver Woodman
0545c58dee Bump version to 1.5.1 2015-10-14 12:12:03 +01:00
Oliver Woodman
6d44ec560e Skip to the sample/auxiliary data offset in fragmented MP4 streams.
The sample data position is the sum of the data offset and the base data offset.
The base data offset is either specified in the stream, or defaults to the first
byte position in the moof box. (We only support one traf per moof currently, so
the offset does not need to be assigned for later track fragments.) The data
position can optionally be offset by a data position read from the trun.

The auxiliary information offset is calculated in the same way, but using an
offset read from the saio box.

Issue: #837
Issue: #861
2015-10-14 11:51:16 +01:00
Oliver Woodman
aa647745a2 No-op re-orderings. 2015-10-12 17:59:14 +01:00
Oliver Woodman
20e05a31b2 Do TTML color parsing directly in Exoplayer.
- Added TtmlColorParser to workaround JellyBean issues with named colors.
- Support rgb and rgba expressions as well.
2015-10-12 17:57:10 +01:00
Oliver Woodman
bcb9f8282d Enable SmoothFrameTimeHelper by default.
Context:
- Currently, playback is significantly more juddery with it disabled,
  particularly on AndroidTV.
- We should be able to do the "best" job of this internally, so injection
  doesn't buy anything useful. If someone has a better implementation for
  adjusting the frame release, they should improve the core library.
2015-10-12 12:32:10 +01:00
Oliver Woodman
9b4e9723e5 Don't use SEC VP8 decoder on Galaxy S3s.
The only Samsung devices with names starting "d2" that we're aware of
are Galaxy S3 variants, and also one Samsung Galaxy Pocket Neo d2aio
SAMSUNG-SGH-I747Z. This change speculatively includes that device too because
its name is very similar to SAMSUNG-SGH-I747 which is known to be affected.

Issue: #548
2015-10-12 12:28:14 +01:00
Oliver Woodman
c4235d0e8d Ignore tfdt boxes for SmoothStreaming playbacks.
Issue #838
2015-10-12 12:26:58 +01:00
Oliver Woodman
7905506681 On Sony Bravia devices check for 4k panel.
Documentation: https://developer.sony.com/develop/tvs/android-tv/design-guide/

On API 23 we should also check Display.Mode (where supported).

Issue: #800
2015-10-12 12:25:58 +01:00
Oliver Woodman
952bd4e73c Don't calculate a maximum input size for H.264 on Sony 4k TV.
Issue: #800
2015-10-12 12:24:48 +01:00
Oliver Woodman
a764b359e8 Add support for DTS passthrough on supporting devices before API 23.
NVIDIA Shield before API 23 supports DTS passthrough, so this change inlines the
constant value.
2015-10-12 12:21:16 +01:00
Oliver Woodman
a5ebb49a1a Set the maximum input size based on the sample table for MP4s. 2015-10-12 12:20:15 +01:00
Oliver Woodman
3682141ee1 webm_extractor: Re-sync to next level 1 element on invalid data
Try re-sync'ing to the next level 1 element when invalid data is found. This
corrects the behavior for test case 4 in the mkv test suite.

Partially Fixes Issue #631
2015-10-12 12:18:12 +01:00
Oliver Woodman
6bf817f107 Workaround EOS propagation for all devices with RK decoder.
As per the end of the related issue, it's likely that all devices
running the affected API levels + decoder are affected by the same
issue.

Issue #464
2015-10-12 12:12:43 +01:00
ojw28
98426a782f Merge pull request #857 from IanDBird/dev-truehd
Add support for TrueHD audio codec in WebMExtractor
2015-10-12 12:03:31 +01:00
Ian Bird
e933e2d49f Add support for MPEG2 video codec in WebMExtractor 2015-10-09 14:38:39 +01:00
Ian Bird
ee8a00b68a Add support for TrueHD audio codec in WebMExtractor 2015-10-09 14:12:48 +01:00
Ian Bird
6a5cd68892 Make MediaCodecUtil.getMediaCodecInfo public 2015-10-09 12:33:01 +01:00
joli
8ddc73511e FLV Support - Added Audio and Script Data readers 2015-09-29 17:20:38 +02:00
Oliver Woodman
62ce0ff009 Fix indentation. 2015-09-29 11:40:59 +01:00
Oliver Woodman
d8934e2751 Make mapping from position to time more accurate in XING MP3 streams.
This change keeps the proportion offset * 256 as a floating point value rather
than rounding it before linear interpolation, which will increase precision
slightly when seeking in streams with XING headers.

In practice, this won't make much of a difference because precise seeking in VBR
MP3s with XING headers seems not to be possible without reading the entire file,
due to the fact that the (uneven) distribution of bits is represented by a fixed
number of table of contents entries.
2015-09-29 11:37:40 +01:00
Oliver Woodman
15da18d900 Fix format selection bug.
Issue: #825
2015-09-29 11:36:26 +01:00
Oliver Woodman
427cb34aca Bump version to 1.5.0 2015-09-28 20:56:28 +01:00
Oliver Woodman
dce74f4209 Add onDrmKeysLoaded back again (oops) 2015-09-28 20:24:46 +01:00
Oliver Woodman
e96e618046 Clean up expansion of sample buffers.
- The old approach was technically incorrect, because the checks
were "capacity < sampleSize" and hence neglected the fact that
the buffer position may be greater than 0 (e.g. if the caller
wants to prefix the sample with some additional data).

- Also proactively throw an exception if the buffer is too small,
rather than wait for the failure when we actually do the write.
2015-09-28 20:23:45 +01:00
Oliver Woodman
15c2f9c328 Explicitly set max input size for H264 decoders.
This works around an issue where some devices, such as the Acer Iconia,
don't allocate large enough input buffers for H264.

Issue: #616
Issue: #714
2015-09-28 12:38:35 +01:00
Oliver Woodman
decb7f58c7 Expose container track identifier via MediaFormat.
Issue: #770
2015-09-28 12:36:28 +01:00
Oliver Woodman
979fd083b4 Don't invoke adaptiveTrack with 0 or 1 representations.
0 will crash. 1 is pointless.
2015-09-28 12:34:19 +01:00