Commit graph

61 commits

Author SHA1 Message Date
Oliver Woodman
037aeaf764 Some minor cleanup 2017-01-05 14:57:31 +00:00
olly
361241f81c Make SeekBar work properly with key events if focusable
This isn't perfect because it performs seeks whilst the
user is holding down L/R, rather than when they release
it. Performing the seek on release properly looks non
trivial, and would likely require extending SeekBar.

Issue: #2278

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=143440580
2017-01-04 23:04:07 +00:00
Oliver Woodman
0b141aeeee Revert "Improving handling of atoms with size less than header in FragmentedMp4Extractor."
This reverts commit 71186ef16e.
2017-01-04 22:32:28 +00:00
cblay
71186ef16e Improving handling of atoms with size less than header in FragmentedMp4Extractor.
These currently lead to cryptic ArrayIndexOutOfBoundsExceptions being thrown from System.arraycopy() so my proposal is to throw a more useful ParserException instead.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142087132
2017-01-04 22:26:58 +00:00
meteoorkip
eda393ba82 Add default artwork support to SimpleExoPlayerView
Add support for a default artwork image that is displayed if no artwork can be found in the metadata.
2017-01-02 22:20:04 +01:00
cdrolle
65490f52f8 Added support for handling window/cue priority and fill color to Cue and SubtitlePainter.
Cue has been modified to optionally accept a fill color and a toggle specifying when to use the fill color. When the fill color toggle is set, then SubtitlePainter will use the fill color value instead of the color specified by the device's Accessibility settings. Cea708Decoder has also been modified to propagate that value, as well as cleaned up (in terms of documentation) to prepare it for inclusion in the open-source project.

There is also a new Cea708Cue, extending Cue, which holds the Cue's priority, which is used to sort potentially overlapping cues/windows.

Note that I've left the @ClosedSource annotation and logging in this CL. I intend to start testing the 608 and 708 functionality in the Fiber app to ensure that it works as expected on a wide-range of channels (as opposed to the single channel in ExoPlayer Demo) before removing these.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142173264
2016-12-16 16:21:16 +00:00
olly
31e2fa8597 Add hook for modifying or cancelling a user invoked seek
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142007001
2016-12-14 14:23:38 +00:00
olly
e86bfd6dbe Improvements for 608 positioning
- Infer likely left/center/right alignment for pop-on captions.
  This makes the rendering much better in practice, particularly
  when the captions were intended to be center aligned.
- Fix line anchoring.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=141156222
2016-12-06 20:02:42 +00:00
olly
88fc682dde Expose manual playback control hiding from SimpleExoPlayerView
Issue #2146

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=141036866
2016-12-06 19:59:41 +00:00
Oliver Woodman
421dab433a Restore accidentally clobbered SimpleExoPlayerView change 2016-12-02 19:47:50 +00:00
andrewlewis
45bc4a0374 Pass player and isTopLevelSource to MediaSource.prepareSource.
These additions are useful for sources that need to track the playback position
and control playback.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=140828310
2016-12-02 19:23:35 +00:00
Oliver Woodman
a7736e101f Merge branch 'dev-v2_subtitles_view' of git://github.com/drhill/ExoPlayer into drhill-dev-v2_subtitles_view 2016-12-02 16:27:29 +00:00
Drew Hill
8fcc8c63ef change to getview call instead of set property 2016-12-01 16:25:49 -05:00
Oliver Woodman
0cc874dd01 Fix indentation 2016-12-01 18:35:14 +00:00
Oliver Woodman
a6ccedf741 Merge branch 'eia-608-improvements' of git://github.com/RikHeijdens/ExoPlayer into RikHeijdens-eia-608-improvements 2016-12-01 18:31:39 +00:00
Drew Hill
214c55b665 add function to change subtitles style 2016-11-30 19:44:47 -05:00
olly
195a93e5af Fix playback control focus
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=140623107
2016-11-30 22:04:18 +00:00
olly
ce9ec79e59 Make Timeline always non-null from ExoPlayer
Note that we still have null timelines in ExoPlayerImplInternal.
This is deliberate; and is likely necessary to distinguish between
the no-timeline-yet and timeline-is-empty cases (we want to try
and process a pending seek for the latter, but not the former).

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=140200980
2016-11-25 20:18:32 +00:00
andrewlewis
8236efe6a5 Provide an overlay FrameLayout in SimpleExoPlayerView.
This can be used by the app for showing arbitrary UI on top of the player (for
example, UI elements associated with an ad).

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=138610733
2016-11-10 21:15:20 +00:00
olly
d5cbb101ed SimpleExoPlayerView: Remove a bit of dead code
These variables are never read, since the underlying control
view reads them directly from the attrs.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=138528246
2016-11-10 21:15:20 +00:00
olly
6c7ead5d0c Document all the ways our new UI components can be customised.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=138082864
2016-11-10 21:14:28 +00:00
olly
488c2d8270 Fixes for Issue #1962
- Use A/V tracks only for buffering position when available
  in ExtractorMediaPeriod.
- Fix layering of exo_simple_player_view so that subtitles
  are above album art. The test stream provided has both.
- Make album art in SimpleExoPlayer view respect the resize
  mode, like we do for video.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=137698473
2016-10-31 19:49:54 +00:00
Oliver Woodman
c4b4e84579 Add artwork support to SimpleExoPlayerView + misc improvements 2016-10-27 12:47:26 +01:00
olly
2c54363204 Report track groups and selections through ExoPlayer
TrackSelector no longer has a listener. Instead, tracks
change events are reported through ExoPlayer.EventListener.
Applications interested in retrieving the selection info
should retrieve it directly from the TrackSelector by
calling an exposed getter.

Pretty sure the ref'd issue is fixed as a side effect of
this change.

Issue: #1942

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=137183073
2016-10-27 12:27:55 +01:00
[]inger
8b3025d450 Make control view layout resource customizable.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=137145209
2016-10-27 12:25:52 +01:00
andrewlewis
ba6368a07a Don't try to access the caption manager when in edit mode.
Issue: #1991

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=137131819
2016-10-27 12:25:10 +01:00
olly
586e6257cd Add explicit TargetApi annotation to remove lint error
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136597149
2016-10-19 17:00:33 +01:00
olly
3a5cb43541 Fix use of API level 19 method
Issue: #1965

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136595233
2016-10-19 17:00:33 +01:00
olly
91f8328a5f UI component improvements
- Make sure no events are posted on PlaybackControlView
  if it's not attached to a window. This can cause leaks.
  The target hide time is recorded if necessary and
  processed when the view is re-attached.
- Deduplicated PlaybackControlView.VisibilityListener
  invocations.
- Fixed timeouts to be more intuitive (I think).
- Fixed initial visibility of PlaybackControlView when
  used as part of SimpleExoPlayerView.
- Made some more attributes configurable from layout xml.

Issue: #1908
Issue: #1919
Issue: #1923

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135679988
2016-10-11 18:16:28 +01:00
olly
6c12ec629a Some minor UI refinements
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135353593
2016-10-06 15:05:34 +01:00
[]inger
053dc27a3e Introduce resize mode for AspectRatioFrameLayout.
https://github.com/google/ExoPlayer/issues/1827

Three different modes available: fit (default), fixed_width, fixed_height
Developers need to use wrap_content for the dimension which is not fixed:

app:resize_mode="fixed_width"
android:layout_width="320dp"
android:layout_height="wrap_content"

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135264861
2016-10-05 21:21:13 +01:00
olly
7c3fe15426 Add convenience getPlayer methods to UI components
Issue: #1895

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135211179
2016-10-05 18:06:34 +01:00
olly
eaf8218855 Fix shutter open/close behavior
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=134389619
2016-09-28 11:26:12 +01:00
andrewlewis
1546da899b Use @IntDef where possible.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=133932812
2016-09-28 11:25:02 +01:00
olly
c17190319b Rename assets to avoid naming conflicts
Issue #1823

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=133267642
2016-09-16 18:54:09 +01:00
olly
ab49425e43 Fix crash on pre-api-21 devices.
The four-arg constructor didn't exist in ViewGroup for
earlier API levels. I think it can probably be safely
omitted, unless you know otherwise?

Issue: #1820

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=133156975
2016-09-14 20:18:13 +01:00
olly
f4248410d9 PlaybackControlView improvements
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=132981908
2016-09-13 17:45:40 +01:00
olly
383966b307 No-op cleanup for playback controls II
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=132862043
2016-09-13 17:40:00 +01:00
olly
bcec597023 No-op cleanup for playback controls
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=132859943
2016-09-13 17:38:40 +01:00
[]inger
7925342fa0 Provide a VideoView for simple use cases.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=132855091
2016-09-13 17:35:11 +01:00
olly
04c28c6d7d Minimal change to fix seeking before prepare + finalize API
- This change fixes seeking before the prepare (or more
  accurately, before the timeline is set). The fix a minimal
  one to fix the behavior. It's inefficient compared to
  posting the pending seek onto the playback thread, which
  will be the long term solution.
- As of this change, I think we can call V2 "done". There are
  some loose ends to tie up, but the API is effectively
  finalized and the implementation is in a state where you
  can take it, use it and expect it to work.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=132468107
2016-09-08 16:29:48 +01:00
olly
962b5940c2 Update ExoPlayer documentation + tweak method naming
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=131843222
2016-09-02 16:08:45 +01:00
olly
5f1a2c71f0 Finalize V2 ExoPlayer API
There's still some internal to clean up to do, and in particular
it remains a TODO to be able to handle seek calls before the
timeline is set (for this CL, such calls are dropped). This change
does however finalize the API.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=131171318
2016-08-31 15:25:25 +01:00
olly
94c908e89c Rename Window->MediaWindow, Timline->MediaTimeline
Window is potentially confusing with Android's Window class.
Once Window is renamed, it makes sense to rename Timeline too.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130938392
2016-08-31 15:25:24 +01:00
olly
fb55254f90 Fix a bunch more Javadoc
Also inline a few methods/classes where they can be made
private and therefore be removed from the public API.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130935090
2016-08-31 15:25:24 +01:00
olly
1579b68cf6 Sanitize constants
- Use a single constant for unset/unknown times across
  all time bases. Note also that this moves away from
  use of -1 for unset/unknown times in ms, which was a
  bad choice (it might conflict with real times, such
  as a time representing being just behind the start
  of a live window).
- Add a few other unset constants, and use them.
- Fix some hardcoding of -1 where existing constants
  should have been used.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130775594
2016-08-31 15:25:18 +01:00
olly
c009028dad Prepare for removal of period based ExoPlayer methods
- This change marks the methods that will be removed, and
  renames the Window methods to remove "Window" from their
  names.
- The Window methods need to be made to work (rather than
  throw exceptions) when the timeline isn't set. Once that
  gets done in a subsequent CL, the deprecated methods will
  be removed.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130612979
2016-08-31 15:25:17 +01:00
olly
b35648eafb Add window based methods to ExoPlayer
- This change also enables seeking in live windows in the
  ExoPlayer demo app.
- The added playlist doesn't transition properly by itself,
  but for manual transitions it works correctly, and
  demonstrates seeking into a default position.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130515880
2016-08-31 15:25:07 +01:00
olly
e35f9addaf Remove playWhenReadyCommitted.
This was always a bit of a hack; for Play Movies. It may well
no longer be necessary, and if not I'd like to think of a nicer
or more general way of doing it. We can always bring it back
if needed.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130373433
2016-08-31 15:25:06 +01:00
olly
1a909fd163 Change SeekWindow -> Window, and add window duration.
- This avoids the need to have to use the timeline to
  calculate a window duration, which can be awkward.
- Window now represents a window of availability with
  an isSeekable flag, rather than a window of
  seekability.
- Promoted Timeline and Window to top package; they're
  pretty important :).

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130278509
2016-08-31 15:25:06 +01:00