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
Rik Heijdens
ec65fe952c
Fixed code indentation
2015-10-26 09:59:19 -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
Patrik Åkerfeldt
95db1eacd1
Add onKeysLoaded callback
...
This adds a callback for when DRM keys have been loaded.
2015-09-25 10:03:00 +02:00
Oliver Woodman
765d1659be
Return "seeked to" position immediately after seek.
2015-09-18 18:25:25 +01:00
Oliver Woodman
c1b8352e33
Stylistic tweaks.
2015-09-18 18:25:07 +01:00
Oliver Woodman
da97e30e33
Support mp3 media segments in HLS.
...
Issue #804
2015-09-18 18:23:50 +01:00
Oliver Woodman
c960636d28
Stylistic cleanup.
2015-09-18 18:23:28 +01:00
Oliver Woodman
cf27b83e8a
Implement handlesTrack using MediaCodecUtil.
2015-09-18 18:22:40 +01:00
Oliver Woodman
3538e57797
Work around incorrect timestamp handling on Sony Xperia E.
...
Also include more Sony Xperia Z devices in the MP3 workaround.
2015-09-18 18:20:47 +01:00
Oliver Woodman
6ef8c3a61b
Avoid loading the first HLS segment twice.
...
Issue: #788
2015-09-18 18:20:12 +01:00
Oliver Woodman
8a723706d6
Provide more flexibility for setting caption font size.
...
- Respect any padding set on SubtitleLayout.
- Allow specification of absolute, fractional and fractional-ignoring-padding
text sizes.
2015-09-18 18:19:28 +01:00
ojw28
d6801389de
Merge pull request #807 from castlabs/feature/parse_audio_channels_only_for_mpeg_dash
...
Parse audioChannels only when on mpeg-dash
2015-09-18 11:58:28 +01:00
Miquel Beltran
ff6455aadb
Parse audioChannels only when on mpeg-dash
...
Only parse the @value as Int when the schemeIdUri is urn:mpeg:dash:23003:3:audio_channel_configuration:2011
2015-09-18 11:48:34 +02:00
ojw28
de68c982ab
Merge pull request #795 from jeoliva/webvtt-parser-improvements
...
Improve WebVTT parser according to WebVTT spec
2015-09-17 16:34:33 +01:00
ojw28
1be3f9dcbc
Merge pull request #796 from souji1103/dev
...
Prevent ArrayIndexOutOfBoundsException when proguard is enabled
2015-09-17 15:15:59 +01:00
joli
925795cb4f
Improve WebVTT parser according to WebVTT spec
...
- Line parameter
- Added support for value and line alignment attributes.
- Support negative numbers when line is an absolute number (not a
percentage).
- Position parameter
- Added support for value and position alignment attributes
- Added support for WebVTT comment blocks
- Percentage values now accept decimal numbers (as webvtt spec states)
- Added new WebVTT tests for testing all new implemented features
2015-09-16 21:09:44 +02:00
souji
e2ed741ddd
prevented excess loop, reading pes header
2015-09-16 09:04:04 +09:00
Oliver Woodman
d7697176ed
Include language in audio formats.
...
Issue: #437
2015-09-15 13:45:54 +01:00
Oliver Woodman
b6f15a17e0
TTML improvements.
...
- do not denormalize styles at parsing time but only put normalized style info
into TtmlNode tree. Resolve styles on demand when Cues are requested for a
given timeUs.
- create TtmlRenderUtil to have static render functions separate
- added unit test for TtmlRenderUtil
- adjusted testing strategy for unit test to check resolved style on Spannables after rendering
2015-09-15 13:44:52 +01:00
Oliver Woodman
908e4dfd5d
Search for synch' when sniffing ADTS and check four frames.
...
Issue: #791
2015-09-15 13:43:42 +01:00
Oliver Woodman
721956710f
Remove MediaFormat.create methods that don't take a duration.
2015-09-15 13:43:12 +01:00
Oliver Woodman
e7926145c6
Fix overflow for DASH live streams using large timescales.
...
Issue: #789
2015-09-15 13:42:16 +01:00
Oliver Woodman
ab46d263ad
Use decoders with names that don't start "OMX.".
...
There is no guarantee codec names start with this prefix in >= L.
Issue: #782
2015-09-15 13:41:42 +01:00
Oliver Woodman
e6e1e2c1d1
Tweaking TTML parsing logic.
2015-09-10 19:03:40 +01:00
Oliver Woodman
04342f2b76
Don't use toLowerCase :).
...
It can do weird things if the device has an unusual default Locale.
Util.toLowerInvariant uses the US Locale, which does the right thing
in this case.
2015-09-10 18:31:08 +01:00
Oliver Woodman
eeb73a86ea
Improve sniffer behavior for fragmented MP4.
...
- Allow a moof box to exceed the search size.
- Return immediately after reading an ftyp box with no compatible types.
Issue: #784
2015-09-10 18:30:47 +01:00
Oliver Woodman
6f9019a4e3
Use DTS to set timestamp adjustment where available.
...
Partial fix for #778
2015-09-10 18:30:13 +01:00
Oliver Woodman
1f3bd97a2d
Add non-strict SubRip parsing (enabled by default).
2015-09-10 18:29:36 +01:00
Oliver Woodman
ede7a69d95
Change DTS MIME type to vnd.dts.
2015-09-10 18:28:50 +01:00
Oliver Woodman
ab66dfa7c2
Parsing embedded TTML styling.
2015-09-10 18:27:03 +01:00