2783 Commits

Author SHA1 Message Date
aquilescanta
d3fe20cc64 Check the type of the (non-initial) loaded HLS playlist
This prevents illegal casts.

Issue:#2702

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=154078240
2017-04-24 21:38:33 +01:00
olly
f0a72c4908 Fix playback of DASH/VP9/SegmentList DASH content
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=154077149
2017-04-24 21:37:33 +01:00
olly
8e8a6a2994 Support efficient switching between SimpleExoPlayerView instances
Prior to this change, the only way to switch SimpleExoPlayerView
was to do:

oldView.setPlayer(null);
newView.setPlayer(player);

This would cause the video renderer to have to transition through
oldSurface->noSurface->newSurface, which is inefficient (noSurface
requires platform decoders to be fully released).

After this change we support:

newView.setPlayer(player);
oldView.setPlayer(null);

This results in direct oldSurface->newSurface transitions, which are
seamless on Android M and above. The change also adds some robustness
against developers ending up with strange behavior as a result of
clearing the player from a view in a different ordering than we expect
w.r.t. registering of other listeners.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=154044976
2017-04-24 21:35:24 +01:00
olly
4c0b539054 Allow disabling hide on touch for SimpleExoPlayerView
Issue: #2501

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=154036726
2017-04-24 21:34:12 +01:00
tasnimsunny
e1c82fbb1a Libvpx: configure a way in Medialib to drop frames instead of video lag.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153858804
2017-04-24 21:33:01 +01:00
Oliver Woodman
51de6e53eb Clean up multiple DVB subtitles per PID support 2017-04-24 16:58:01 +01:00
Oliver Woodman
68ff7e0f6f Merge branch 'tresvecesseis-dev-v2-dvbsubs-leftovers' into dev-v2 2017-04-24 15:31:38 +01:00
Oliver Woodman
aa43556b79 Merge branch 'dev-v2-dvbsubs-leftovers' of git://github.com/tresvecesseis/ExoPlayer into tresvecesseis-dev-v2-dvbsubs-leftovers 2017-04-24 15:31:19 +01:00
Oliver Woodman
860eb26301 Misc cleanup for merged pull requests 2017-04-21 18:09:01 +01:00
ojw28
5381b4ec56 Merge pull request #2683 from tylerjroach/dev-v2
Added mp3 support to FLV extractor
2017-04-21 17:57:18 +01:00
ojw28
4c096505d3 Merge pull request #2688 from tylerjroach/dev-v2-NALU-OOM-Fix
Fix potential OOM that can occur reading first NAL packet before seq header
2017-04-21 17:56:49 +01:00
ojw28
2e25eecf84 Merge pull request #2708 from gpinigin/ffmpeg-host-platform
Simplify cross-compiling on Mac OS X host machine by copy-paste commands
2017-04-21 17:56:08 +01:00
ojw28
d8666ac03d Merge pull request #2715 from canatella/out-of-tree-build
Allow out of tree builds.
2017-04-21 17:55:56 +01:00
olly
86ed73e744 Use method arguments instead of member variables
This is a no-op cleanup change.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153830409
2017-04-21 17:48:28 +01:00
olly
1506b6d2b7 Pragmatic fix for Concat(source1, Looping(source2))
Issue: #2680

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153827243
2017-04-21 17:48:28 +01:00
cblay
3280dc8777 Make SonicAudioProcessor public
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153762476
2017-04-21 17:47:54 +01:00
Damien Merenne
41f4f24f53 Allow out of tree builds.
Before modularisation of the code, it was possible to do an out of tree build
giving an -PbuildDir=someDir argument to gradle. With the modularisation, it's
broken as using -PbuildDir=someDir will force the same directory for each
projects, which breaks the gradle build system.

This commit adds a new externalBuildDir project property to allow out of tree
builds again. When set, it updates the buildDir property for each project to
point to ${externalBuildDir}/${project.name}. That way, the build artifacts are
written in the out of tree directory in a project specific folder.

To do an out of tree build, use

    gradle -PexternalBuildDir=someDir ...

It supports absolute and relative path. Relative path are interpreted against
the ExoPlayer root directory.
2017-04-21 11:32:00 +02:00
Sergio Moreno Mozota
3b7f47551c Add support for multiple subtitle tracks per PID and subtitle type identification 2017-04-20 21:32:59 +02:00
tonihei
da1b55ed4c NullPointerException in CronetDataSource constructor
When calling CronetDataSourceFactory.createDataSourceInteral, a null pointer
is passed as clock to the CronetDataSource constructor which in turn throws a
NullPointerException. Can be prevented by using other constructor without
clock parameter.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153470874
2017-04-18 19:45:50 +01:00
olly
ecb62cccd5 Delete broken PriorityHandlerThread class
This class is unnecessary; you can simply pass a thread
priority to HandlerThread's own constructor. It's also
broken, since HandlerThread.run() immediately overrides
the priority being set!

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153461225
2017-04-18 19:44:50 +01:00
olly
3c49044fb4 Updates for ExoPlayer modularization
- Update relevant documentation
- Use individual modules for the demo app. Given it's
  preferable to use them over the full library, and that
  many people probably use the demo app as a starting
  point, we should set the right example even though we
  currently need to include all of them.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153454898
2017-04-18 19:43:41 +01:00
olly
8be85d4d2f Consolidate version codes in root gradle file
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153453768
2017-04-18 19:42:27 +01:00
eguven
42e4100c05 Add DashDownloaderService which downloads DASH streams at the background
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153446615
2017-04-18 19:41:16 +01:00
andrewlewis
e87e2318d8 Fully reset AudioProcessors on releasing AudioTrack
Issue: #2675

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153445372
2017-04-18 19:40:05 +01:00
andrewlewis
835839456f Apply playback parameters when uninitialized
If AudioTrack.setPlaybackParameters was called before initialization (for
example, when an audio renderer is enabled) the parameters would actually be
dropped, because configure calls reset, which didn't apply draining playback
parameters if the track was not initialized. It would then overwrite the
draining parameters with the current parameters.

Set the playback parameters directly (without draining) for uninitialized tracks
so that the call to setPlaybackParameters in configure is a no-op.

Also, reset the stored channel count and sample rate when the audio processor
is released so that configure returns true when it is next used, which makes
sure that it gets flushed.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153078759
2017-04-18 19:37:26 +01:00
tonihei
579d57b445 Less memory allocations for repeated calls to SubtitleView.draw()
The draw method checks if all inputs are the same as in the previous call.
The options to strip the subtitle of its styles were applied each time,
in order to check if the final CharSequence is still the same.

This additional computation (and memory allocations) can be prevented by
checking if the original CharSequence (including all styles) and the
flags to remove those styles are the same. The actual style removal is now
part of setupTextlayout().

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=153061064
2017-04-18 19:36:08 +01:00
olly
12433ad146 Support intercepting setPlayWhenReady calls
Issue: #2454

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152938743
2017-04-18 19:34:39 +01:00
tonihei
0a7011b390 Support default style in Tx3g decoder.
The track initialization data of Tx3g includes default style values for
font styles, colour, and font family. Additionally the decoder now supports
vertical subtitle placements other than the Tx3g default of 85% video height.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152930057
2017-04-18 19:33:30 +01:00
sxp
1a22a4be5f Automated g4 rollback of changelist 152815185.
*** Reason for rollback ***

The force submit broke GVR: []

*** Original change description ***

Add DashDownloaderService which downloads DASH streams at the background

***

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152877808
2017-04-18 19:32:18 +01:00
eguven
5a6a1af441 Add DashDownloaderService which downloads DASH streams at the background
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152815185
2017-04-18 19:31:04 +01:00
olly
85adecf948 Remove reflection + make it easy to set extractor flags
The idea of using reflection was so that a developer could
delete a package they didn't want and have everything else
still compile. However, a developer doing this is likely
building from source, in which case editing the factories
too is pretty trivial.

Removing the reflection makes specifying extractor flags
via the default factory easy, and removes the need for
special proguard config.

Issue: #2657

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152810423
2017-04-18 19:29:56 +01:00
tonihei
1dc8bb5bb1 Support 'styl' in Tx3g decoder.
Extended Tx3gDecoder to read additional information after subtitle text.
Currently parses font face, font size, and foreground colour.

Font identifier and other information provided in subtitle sample description
not yet supported.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152793774
2017-04-18 19:28:42 +01:00
Tyler Roach
3b4d981891 If hasOutputFormat is true, nalUnitLengthFieldLengthDiff will never be 0 2017-04-18 09:32:40 -04:00
Rohit Krishnan
329b8910ca Remove unnecessary check. sampleRateIndex is masked with 0x03 so it is constrained to be between 0 and 3. 2017-04-17 22:07:33 -04:00
Rohit Krishnan
896f63a3c3 Fixes OOM that can occur from reading first NAL packet before sequence header 2017-04-14 12:11:04 -04:00
Gleb Pinigin
d27d6426c4 Simplify cross-compiling on Mac OS X host machine by copy-paste commands 2017-04-14 14:23:23 +07:00
Tyler Roach
59c44af4cb Added mp3 support to FLV extractor 2017-04-13 14:56:22 -04:00
aquilescanta
f36500c200 Add support for audio adaptation
When no video tracks or renderers are present, attempt audio adaptation.

Issue:#1975

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152708422
2017-04-11 12:15:04 +01:00
aquilescanta
2a4df60b01 Add pattern information to ExoPlayer's CryptoInfo
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152708351
2017-04-11 12:15:04 +01:00
olly
0aee235e0a Make ID3 parser more robust (again)
I've also removed unnecessary "empty" cases, since to add them
everywhere would bloat the code quite a lot. Note that
new String(new byte[0], 0, 0, encoding) is valid and will produce
and empty string.

Issue: #2663

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152697288
2017-04-11 12:15:04 +01:00
aquilescanta
c185963355 Add IntDef to reader internal state and default branch
Adding the default branch prevents linting warnings.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152675789
2017-04-11 12:15:04 +01:00
aquilescanta
8da2e2c8d5 Track format changes in (E-)AC-3 syncframes
This allows propagating format changes to the track output.

Issue:#2552

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152672983
2017-04-11 12:15:04 +01:00
andrewlewis
147020f816 Hide player controls when an ad is playing
Also fix an issue where ad timelines with unknown ad period durations
would not be shown in multi-window mode. (The time bar doesn't use the
duration of ad periods, but shows a fix-size indicator instead.)

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152666055
2017-04-11 12:15:04 +01:00
andrewlewis
d8c71df255 On re-preparation, suppress source info refresh until ack'ed
ExoPlayerImpl.prepare() replaces the timeline with an empty timeline. After this
happens, MSG_SOURCE_INFO_REFRESHED could be handled on the main thread and
could relate to the old source, so the player could expose a stale timeline.

Count pending prepares in ExoPlayerImpl so that source info refreshes can be
suppressed until preparation actually completes.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152496255
2017-04-11 12:15:04 +01:00
olly
cf4358b8fa Fix VP9 extension surface attach/detach + make it seamless
Issue: #2582

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152494408
2017-04-11 12:15:03 +01:00
andrewlewis
4b94877476 Fix DefaultTimeBar vertical positioning in the demo app
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152492104
2017-04-11 12:15:03 +01:00
tonihei
ac0a4353da SubtitleView - New method setApplyEmbeddedFontSizes
When option is set to false, SubtitlePainter strips all absolute
and relative font size spans from the cue text.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=152484724
2017-04-11 12:14:44 +01:00
Oliver Woodman
156bc52c8f Clean up DVB support
- Removed the PES_STRIPPED flag. It's unnecessary. We can strip
  PES in the TS extractor instead.
- Made nearly all of the object classes in DvbParser immutable.
  Else it's non-obvious that none of this state can be mutated.
- Made a a lot of the methods in DvbParser static for the same
  reason.
- Removed unnecessary null checks, code that was never executed,
  unused fields etc.
- Add proper flushing of DvbParser, to prevent corrupt output
  following a seek.
2017-04-06 19:16:31 +01:00
Oliver Woodman
8c05b5b168 Merge branch 'tresvecesseis-dev-v2-dvbsubs' into dev-v2 2017-04-06 19:03:06 +01:00
Oliver Woodman
538e71c090 Merge branch 'dev-v2-dvbsubs' of git://github.com/tresvecesseis/ExoPlayer into tresvecesseis-dev-v2-dvbsubs 2017-04-06 19:02:51 +01:00