Commit Graph

182 Commits

Author SHA1 Message Date
Sridhar Vashist
f60491183d MediaPlayer: Disable acquiring wakelocks based on property.
Ignore setWakeMode based on system property.
Wakelocks essential for playback will be held by audioflinger.

Change-Id: I413cd873bf21e1e999dbf89a27802fbe1b6022c7
Signed-off-by: Sridhar Vashist <svashist@motorola.com>
2015-11-23 14:09:25 -08:00
Wei Jia
de612dc1d1 MediaPlayer: remove obsolete function setPlaybackRate from comments.
Bug: 24260668
Change-Id: I20733e52dbd2dab5eb10b4607a1c1aadb93a1332
(cherry picked from commit cd860ac06c)
2015-10-13 21:31:22 +00:00
Ronghua Wu
c024de3c94 media: ignore null InputStream
Bug: 22854896
Change-Id: I20b9e28bbba6dec73538ee6937d337c2e2b971f4
2015-10-13 15:29:42 +00:00
Jean-Michel Trivi
cab361c9bb MediaPlayer subtitle controller: use debug log instead of warning
Don't use warning log for debug message.

Bug 22698299

Change-Id: Ibe3526fffffc9a7bdcda83c02fd745325db1238b
2015-07-23 23:03:45 +00:00
Jeff Sharkey
4fa85b7cad Better logging of MediaPlayer failure reason.
Otherwise exception details are dropped on the floor, making it
hard to debug.

Bug: 22525550
Change-Id: I6ab9eb8461a23b9d9b8a0ea6dd1ae8ee2495dd01
2015-07-20 09:38:02 -07:00
Robert Shih
706ebb3ad7 MediaPlayer: documentation for error/info codes.
Documented in this change:
MEDIA_ERROR_SYSTEM, and
MEDIA_INFO_NETWORK_BANDWIDTH

Bug: 18237764
Change-Id: I0e1efb5813ab0f65133d4119de7562912947c41d
2015-06-19 16:47:58 -07:00
Robert Shih
07830aa6ba MediaPlayer: trigger onError instead of exception on stale native notifications
This change also reverted commit 2c838fbd87,
"MediaPlayer: add mPreparing to weed out unwanted prepared messages".

Bug: 21266735
Change-Id: I392342519420bee2fde1fe1915c51d24101ca27d
2015-06-01 13:50:00 -07:00
Robert Shih
67ba691ad6 Merge "MediaPlayer: add mPreparing to weed out unwanted prepared messages" into mnc-dev 2015-05-22 16:02:06 +00:00
Robert Shih
410239b6bf MediaPlayer: add mPreparing to weed out unwanted prepared messages
Bug: 21266735
Change-Id: Ie4fe76533c9b7f505c57ba63df7992f2490942cc
2015-05-21 16:43:10 -07:00
Jean-Michel Trivi
d3969546a8 Fix reading attributes for playback restrictions
Playback restrictions can be lifted with the correct flag,
  FLAG_BYPASS_INTERRUPTION_POLICY, but this flag is for the
  system only. As such, it must be read by querying "all
  the flags" with AudioAttributes.getAllFlags() which is a
  system API which returns all the system flags. getFlags()
  only returns the public SDK flags.

Bug 19407114

Change-Id: I22dadfaf5d1b48b3c0754e1e6af00b734d790fec
2015-05-20 13:58:18 -07:00
Robert Shih
40bdcb7c52 Merge "MediaPlayer: persistent track indices" into mnc-dev 2015-05-18 15:56:31 +00:00
Robert Shih
a460ea1a2c MediaPlayer: persistent track indices
Maintain inband (from native extractor) and out-of-band tracks (added by
client) in a single append only vector. This ensures that the same track
corresponds to the same index through out playback.

Bug: 10373268
Change-Id: I87b3ca2d2c710ee9087f7686f82ab0e018f55fd0
2015-05-15 17:04:32 -07:00
Robert Shih
1973189fe0 MediaPlayer: clean up subtitle controller log spam
- create a default SubtitleController if not set explicitly
- log warning instead of error

Bug: 17594306
Change-Id: Ie7084205b3555bdfec0a2940d0e56398f778585a
2015-05-15 17:03:46 -07:00
Lajos Molnar
51bf5d9c07 Merge "media: remove setPlaybackRate from MediaPlayer and MediSync" into mnc-dev 2015-05-14 21:17:31 +00:00
Lajos Molnar
05a822161f media: change final fields to accessors in MediaTimestamp
Bug: 20887706
Change-Id: Iea0acdeec9dd7e818c80454af639f9480ff6b285
2015-05-14 12:17:40 -07:00
Lajos Molnar
dbc908fba8 media: remove setPlaybackRate from MediaPlayer and MediSync
Condensed them to an internal easyPlaybackParams to create
PlaybackParams from a rate and audio mode.

Bug: 21045118
Change-Id: I89879a3034c905e34cabef8ff0237048e097a8e0
2015-05-14 12:16:44 -07:00
Robert Shih
b7514effd1 MediaPlayer/TimedMetaData: API updates related to timed metadata
- renamed MediaPlayer.*OnTimedMetaData* to *OnTimedMetaDataAvailable*
- added `final` modifier to TimedMetaData class
- added javadocs for TimedMetaData public methods
- renamed private members and cooresponding accessors for TimedMetaData
- reworded existing TimedMetaData javadoc

Bug: 21045118
Change-Id: If0113307fce08083226fc7f64c4fe6f93553d899
2015-05-13 16:19:51 -07:00
Wei Jia
ea4eb326cf Merge "MediaSync: address API review." into mnc-dev 2015-05-08 23:23:47 +00:00
Wei Jia
2d61e2b97c MediaSync: address API review.
Rename *Settings to *Params;
Remove size parameter from MediaSync.queueAudio();

Bug: 20887706
Change-Id: I4c572da92ada51458031a482b96b3f624224e608
2015-05-08 15:23:28 -07:00
Chong Zhang
1e6be7285d MediaPlayer: pause media time when buffering
bug: 20500732
Change-Id: Ife7f75f5cc587af56451c85ea8adbdc380f38348
2015-05-07 22:43:27 +00:00
Robert Shih
5eac1da3bb Merge "MediaPlayer: setSubtitleAnchor on a HandlerThread" into mnc-dev 2015-05-04 23:50:07 +00:00
Robert Shih
98b6842e30 MediaPlayer: setSubtitleAnchor on a HandlerThread
This ensures that we wouldn't run into the error `Can't create handler
inside thread that has not called Looper.prepare` no matter on which
thread we attempt to set the SubtitleController internally.

Bug: 20821869
Change-Id: Ie53d60b58f5382428e7b7a01deccfa516b61b25f
2015-05-04 16:38:30 -07:00
Robert Shih
29767a8c34 MediaPlayer: provide mime type for all track types
Bug: 20729923
Change-Id: Id05ca0616a72f66abe6a541417baef491c49a417
2015-04-30 16:34:57 -07:00
Lajos Molnar
7f08763f41 media: make MediaTimestamp an immutable class
Change-Id: I75efee22c4f4babbeaa02624349b5e164fbfe0ec
2015-04-23 00:16:23 -07:00
Lajos Molnar
c98f58efd1 media: add SyncSettings to MediaSync and MediaPlayer
Bug: 18249558
Change-Id: I76d7e20d0e0c2d1d24bf60ade6386986573476f0
2015-04-22 22:45:08 -07:00
Lajos Molnar
b3d5fd2528 media: use PlaybackSettings in MediaSync and MediaPlayer
Bug: 19666434
Change-Id: Ic5e517534a26f4e3b0294205e0b93f95338bf072
2015-04-22 21:22:04 -07:00
Robert Shih
b14e37cb37 Merge "MediaPlayer: initial timed id3 support" 2015-04-18 02:50:13 +00:00
Robert Shih
ac033f033d MediaPlayer: initial timed id3 support
Change-Id: Ibf2ea8fa1b44f2953bda49cdc6da979c2d3f6be2
2015-04-17 19:49:13 -07:00
Chris Watkins
4eaa293808 Unhide the android.media.[Media]DataSource interface.
This allows apps to implement MediaDataSource, which is modeled on
stagefright's DataSource, to supply media data to the framework. This
was already implemented for MediaExtractor, but it was renamed from
DataSource.

MediaExtractor, MediaPlayer and MediaMetadataRetriever each have a new
overload: #setDataSource(android.media.MediaDataSource)

Only NuPlayer supports this new data source.

The change introduces:
 * IDataSource:        The binder interface for DataSource.
 * JMediaDataSource:   The native counterpart to the java interface. It
                       implements IDataSource.
 * CallbackDataSource: A stagefright DataSource that wraps an IDataSource.

Change-Id: I6d9c1167b4a7384c469b1e928f31791a7ebed716
2015-04-15 16:33:15 -07:00
Wei Jia
af2d2acc1a MediaPlayer: use local variable to check whether mTimeProvider is null.
Bug: 18753807
Change-Id: I05ef22edea5d06b1efb1a01bf540404eb75ac954
2015-03-30 11:16:29 -07:00
Wei Jia
d93fcf4002 MediaPlayer: add setPlaybackRate JAVA API.
Bug: 19196501
Change-Id: I43daced7d9b53bcaca4e6a8d81ca729b32efc79f
2015-03-03 14:43:55 -08:00
John Spurlock
08c7116ab9 Remove unused imports in frameworks/base.
Change-Id: I031443de83f93eb57a98863001826671b18f3b17
2015-02-28 14:47:49 -05:00
John Spurlock
bbfd31a5d4 AudioAttributes: introduce new flags to bypass audio restrictions.
- New @hidden @SystemApi FLAG_BYPASS_INTERRUPTION_POLICY, request
   to ignore any current audio restrictions, such as zen mode
   content-based notification filtering.
 - Wire up FLAG_BYPASS_INTERRUPTION_POLICY to the existing
   audio restriction checks in the framework.

 - New @hidden @SystemApi FLAG_BYPASS_MUTE, request to play
   audibly, even if the underlying stream is muted.
 - Wiring up to audio framework TBD.

 - Use both of these new flags on the inline volume slider
   controls used in Settings, ensuring playback is heard
   regardless of the current device filter state.

Bug: 19407114
Change-Id: I3d44394931592ccbc1b61ddd9a4d1cc984da17cc
2015-02-18 20:48:26 -05:00
Jeff Sharkey
87d76f6a3e Throw IOException when missing default ringtone.
This is caught by Ringtone, and we then fall back to built-in
ringtone, which matches the expected CTS behavior.

Bug: 18610451
Change-Id: I234d17f7cf623b9b0af434e5d367aed28f203b14
2014-12-09 15:27:25 -08:00
Ryan Lothian
1e88cf0796 Fix broken @see javadoc in android.media.* classes
This CL fixes all android.media.* javadoc that includes an "ERROR(...)"
message when rendered to HTML.

Bug: 18537403
Change-Id: Ic60f7cfe4cf4961da163d955387d65a5d2011905
(cherry picked from commit d550f9028e)
2014-11-26 18:49:01 +00:00
Jeff Sharkey
3b566b8470 Move ringtone redirection to MediaPlayer.
Way back in API 1 we defined Settings.System.DEFAULT_NOTIFICATION_URI
which redirects through SettingsProvider before finally ariving at
the real underlying ContentProvider, usually MediaStore.

With new SELinux rules, we're no longer allowing the system_server
to hold open FDs to shared storage devices, which causes these
proxied openFile() calls to fail.

To work around this, teach MediaPlayer to resolve the final ringtone
Uri without going through the system.

Bug: 18226181
Change-Id: I40c68617c952c0bb3e939e5084f5b68a35e31ae3
2014-11-13 13:52:41 -08:00
Robert Shih
8c4d53c3a9 MediaPlayer/SubtitleController:fix add/select timed text on start
- scan internal tracks when necessary
 - fix overflow in addTimedTextSource
 - do not hide timed text track in doSelectDefaultTrack; i.e. apply
   hiding logic to subtitle tracks only
 - do not notify stop in scheduleUpdate; it will be fired in onStopped
   if necessary

Bug: 17323221
Change-Id: I485f7d9197d10562fbd58d0afe5e9aa4cf610f1a
2014-09-10 01:33:17 +00:00
Ronghua Wu
48db783483 API: Document android-allow-cross-domain-redirect in MediaPlayer and VideoView
Bug: 17238151
Change-Id: Ib1e780cf5f93b07a7abbca839e7cc9f92a60d451
2014-08-25 15:08:34 -07:00
Lajos Molnar
d504ab14d2 media.MediaPlayer: don't check file-existence for URI-s with scheme
setDataSource can be called with URI-s as well as with file paths.
Check file-existence only for file:// URI-s as well as URI-s
without scheme (which are assumed to be paths).

Bug: 17109022
Change-Id: I70f16a4f614dcef0b47fa264cf708473036cef4e
2014-08-19 11:08:08 -07:00
Ying Wang
546f3bf5fe Fix docs build.
Change-Id: I735f5b5a3fe36a454e384d5060d9273a9aabf3aa
2014-07-29 16:23:15 -07:00
Robert Shih
05ad96e9a3 Merge "MediaPlayer: scanInternalSubtitleTracks in synchronous prepare" into lmp-dev 2014-07-28 22:45:16 +00:00
Robert Shih
c42a96dba4 MediaPlayer: scanInternalSubtitleTracks in synchronous prepare
Bug: 16385674
Change-Id: I56d205ad2fe33bd64ea2251440c88fd4ecfa13ad
2014-07-29 11:55:46 -07:00
Robert Shih
3cdf7c5b62 MediaPlayer: support external timed text in java
Bug: 16385674
Change-Id: I7c2bf7a7d88c8396c3e228e3cf500998a3fa9db8
2014-07-29 14:00:13 -07:00
Jean-Michel Trivi
e9111d3067 Merge "API for audio session ID generation" into lmp-dev 2014-07-19 22:40:06 +00:00
Jean-Michel Trivi
289cc8e887 API for audio session ID generation
Expose the value used by the framework to generate an audio
 session ID when a value isn't known.
Rename allocateAudioSessionId() to generateAudioSessionId()
 as this operation doesn't "allocate" anything, and there is
 no allocated resource to free after this operation.

Bug 16401631

Change-Id: I7a7bc05b39ea0b024ff225254eb755a9c85a2ad9
2014-07-20 11:25:48 -07:00
John Spurlock
7b41467704 Zen mode filtering should use new usage constants.
Refactor stream-based calls to usage-based calls.

Bug:15279516
Change-Id: I3f7757d8123c14670e2ad5f8e6aa4e9803efe7ec
2014-07-19 11:57:51 -04:00
Jean-Michel Trivi
d70ad7a128 MediaPlayer factory method with audio attributes and session ID
Change-Id: I4e7f633c84c90581e849af2865f5be84a026f32f
2014-07-16 18:36:20 +00:00
Jean-Michel Trivi
79f5cd1429 Unhide MediaPlayer.setAudioAttributes(), javadoc clarifications
Unhide MediaPlayer.setAudioAttributes() method.

Update javadoc to explicitly state that the factory methods
  do not let you set the audio stream type, attributes or session.

Change-Id: I0d097c314db010698b035349befe0659ab4d1dde
2014-07-16 14:41:06 +00:00
Robert Shih
bef45561b0 Merge "MediaPlayer: added getSelectedTrack" 2014-07-10 20:49:26 +00:00
Robert Shih
464da703ca MediaPlayer: added getSelectedTrack
Change-Id: Ic39b9b3d5e72e13452320a0272deb489a0285913
2014-07-10 20:32:37 -07:00