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
Oliver Woodman
f8d2229f52
Fix build break
2015-11-17 15:43:48 +00:00
Oliver Woodman
a3f894b86b
Add support for extracting E-AC-3 in Matroska files.
2015-11-17 15:43:24 +00:00
Oliver Woodman
5de7638f74
Handle laggy manifest servers. Don't reprocess discarded manifests twice.
2015-11-17 15:42:40 +00:00
Oliver Woodman
b27dc9b7dc
Clean up E-AC-3 naming.
2015-11-17 15:41:30 +00:00
Oliver Woodman
269757cb3e
Clean up MP4/FMP4 shouldParse methods.
2015-11-17 15:38:54 +00:00
Oliver Woodman
3cbb1fa1b9
Tweak error string
2015-11-17 15:32:25 +00:00
ebascel
1f309f7edf
Check for valid periods in DASH MPD after parsing.
2015-11-13 14:44:50 +01:00
Miquel Beltran
0089987055
Added missing MimeTypes to Smooth Streaming manifest parser
2015-11-03 16:51:05 +01:00
Oliver Woodman
a679e39ab7
Limit max line length to 100 chars.
2015-10-30 12:02:34 +00:00
Andrew Lewis
c53495e7e2
Check all descriptors for a registration_descriptor.
...
Issue: #898
2015-10-29 16:37:48 +00:00
Andrew Lewis
b64986ce82
Blacklist bad decoders
2015-10-29 16:28:00 +00:00
ojw28
ffc925f194
Merge pull request #885 from RikHeijdens/parse-hls-name-label
...
Parse HLS NAME label from the MasterPlaylist
2015-10-28 22:04:32 +00:00
Rik Heijdens
d49d3e2cd3
Changed formatName to something more concise
...
And fixed the indentation
2015-10-28 16:58:06 -04:00
Rik Heijdens
4a77d1a44e
Remove unnecessary getter
2015-10-28 11:14:05 -04:00
Rik Heijdens
022c1ad6dd
Store HLS trackname in the Variant class instead of Format class
2015-10-28 11:10:58 -04:00
Rik Heijdens
1c1f5af5d2
Changed the use of the name variable
2015-10-28 11:02:44 -04:00
Oliver Woodman
b9224160a3
Use equals rather than == for string equality
2015-10-28 13:42:40 +00:00
Oliver Woodman
4237e3d391
Cleanup following #884 II
2015-10-27 21:06:38 +00:00
Oliver Woodman
02cc495f1c
Cleanup following #884
2015-10-27 21:03:16 +00:00
Oliver Woodman
f4b07ab147
Resolve conflicts
2015-10-27 20:37:54 +00:00
Oliver Woodman
cda5b20353
Bump version to 1.5.2
2015-10-27 20:15:37 +00:00
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
Rik Heijdens
ec65fe952c
Fixed code indentation
2015-10-26 09:59:19 -04:00
Rik Heijdens
bc3125c5d2
Fixed MediaFormatTests
2015-10-26 09:59:05 -04: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
Rik Heijdens
282a3fe818
Converted trackId into String
2015-10-23 09:56:00 -04:00
joli
3e36f529f8
FLV Support - Added Video Reader and parsing improvements
2015-10-22 23:50:46 +02:00
Rik Heijdens
1b469f422f
Synced with upstream
2015-10-20 15:52:35 -04:00
Rik Heijdens
1d31521710
Merge branch 'dev' of github.com:/google/ExoPlayer into mediaformat-id-dash
...
Syncing my fork
2015-10-20 15:49:45 -04:00
Rik Heijdens
10f3be6d50
Hls NAME parsing changes
...
- NAME is optionial now in the Hls Manifest
- Use the id field in Format to store the NAME instead of
a field in Variant to mimic DASH's behaviour
(see the DASH Id PR, which is not merged yet at this time).
2015-10-20 15:01:44 -04:00
Rik Heijdens
eb282639c5
Parse NAME label from HLS Master Playlist
...
The HlsPlaylistParser now parses the "NAME" property
from the MasterHlsPlaylist and saves it in the Variant
2015-10-20 14:51:31 -04:00
Rik Heijdens
42351d3127
Added id property to MediaFormat
...
Added the property 'id' to the MediaFormat class
which serves as an identifier for the track.
DASH Representations will have the "id's" from their
Media Presentation Description mapped to the id property
in the MediaFormat class that will represent the track.
We needed this for an use case where we wanted to read the 'id'
value from the DASH representation and present it to the user
in order for the user to select the right track.
2015-10-20 14:21:41 -04: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
Oliver Woodman
e8895c8746
Fix AudioTrack EOS handling in ExoPlayer.
2015-09-28 12:25:30 +01:00
Oliver Woodman
15052052ee
Clean up TrackRenderer TODOs
2015-09-28 12:24:35 +01:00
Oliver Woodman
b81ac8cdc2
Added robustness for chunk removal.
...
Issue #812
2015-09-28 12:24:13 +01:00
Oliver Woodman
42416b82db
Fixed issue in which DashChunkSource didn't make use of the most recent
...
manifest.
2015-09-28 12:22:54 +01:00
Oliver Woodman
c3e0d34aa1
Fixed int overflow issue with callbacks on very long-running streams.
2015-09-28 12:22:12 +01:00
Oliver Woodman
e4e02f9189
Further improve WebVTT parser according to WebVTT spec
2015-09-28 12:20:27 +01:00
Oliver Woodman
71f542f7c2
If a parser really wants to throw a runtime exception, don't crash.
2015-09-28 12:16:26 +01:00
Oliver Woodman
e652019bb3
Tweak new drm listener method. Fix demo app
2015-09-28 11:59:10 +01:00