Commit Graph

60 Commits

Author SHA1 Message Date
John "Juce" Bruce
2ce9ab8e67 [WVDRM] Fix effectively-unlimited memory usage
Change 14f0d to read the maximum buffer size from a device property did not
work correctly on Mako and Prime devices, as they did not have the property
set, and the code to fall back to a default value was not working. An empty
string would be read instead of the default value, resulting in a maximum of
zero. Because Widevine Media Kit would then subtract a few megabytes from this,
it would underflow, giving a maximum buffer size of several gigabytes. This
would lead to the download code trying to pre-buffer the entire, many-gigabyte
movie. As the media server's memory usage grew and grew, other programs would
become starved for memory, leading to most other processes on the phone being
forced to close. Eventually, the playback app, the media server, or some other
crucial piece of functionality would be starved, resulting in a crash.

The fix is to fix how we get the default, so that when the property is not
available, we get a sensible result. We check the return value of property_get.
If it is greater than zero, the property was read successfully, and we parse
the answer. If it is equal to (or less than) zero, we fall back to the default
value.

Bug: 7222769
Change-Id: Ie6186a0533036ab8fa45b1e467611d55f7c345ac
2012-10-03 19:12:35 -07:00
Jeff Tinker
54993c50e9 [WVDRM] Fix for stuttering on low bandwidth
Reintroduces the play/pause rebuffering logic we eliminated
in JB zero day to fix double spins and slow startup - but
activates that logic only based on a comparison of the
current bandwidth measurement and the lowest bitrate track
in the movie.

Needs to be submitted with related changes in /frameworks/av

bug: 7230071
Change-Id: Ib3859a961bd3901a9c4df01eeab2b8b75f49aefe
2012-10-01 15:17:07 -07:00
Jeff Tinker
33b24fba9d [WVDRM] Allow adaptive logging of more than 10 tracks
Change-Id: I9d2f8efcc658532dc2a0b1d69b8551444120f664
related-to-bug: 7173307
2012-09-17 15:08:42 -07:00
Edwin Wong
d72b67cdeb Add getError and setError to propagate error code from WVMMediaExtractor up to player.
Error code from the plugin is not propagated from WVMExtractorImpl.cpp to the MediaPlayer.
The two APIs addresses this issue and provide a path for the player to retrieve the last error.

Change-Id: I60040eaf2d396379eecca46bfe333c44a39c35ec
related-to-bug: 7073630
2012-09-11 17:38:57 -07:00
Jeffrey Tinker
415ce6714a Merge "Send current bandwidth info event when buffering occurs" into jb-mr1-dev 2012-08-23 17:24:37 -07:00
Jeffrey Tinker
326dde3b28 Send current bandwidth info event when buffering occurs
There is a dependent change in frameworks/av

Change-Id: Ic189654486936a501a1b45c5acb442753303d362
related-to-bug: 5883234
2012-08-23 02:01:21 -07:00
Jeffrey Tinker
14f0deafac Configure the Widevine cache buffer size via a property
The property ro.com.widevine.cachesize may be set on a device to override the
default stream buffer cache size.

related-to-bug: 6819880

Change-Id: I27da154e38289c5d1f5f2f5f424202253d0721cc
2012-08-22 09:37:36 -07:00
Edwin Wong
e9f5431e78 Revert Widevine 6.0.0 -> 4.5.0 libraries
Includes Widevine libraries Version 4.5.0.7809

Also fixed samplePlayer's MediaCodec mode not running and
WVDrmInfoRequestStatusKey returning incorrect value.

Change-Id: Ibcc6d313790670a908ada93be80d6bf55a67b4ed
related-to-bug: 6929628
related-to-bug: 6833718
related-to-bug: 6889322
2012-08-03 13:33:58 -07:00
Jeff Tinker
e01879128b am 1024b041: Part of fix for double spins & faster startup
* commit '1024b041e824bb6eb232971fc4a2984d63f7e079':
  Part of fix for double spins & faster startup
2012-06-01 11:25:55 -07:00
Jeff Tinker
1024b041e8 Part of fix for double spins & faster startup
This change alters the way that the media player
interacts with the Widevine adaptive streaming buffer
logic.  It eliminates the reliance on cached buffer
duration to determine pause/play states and instead
only generates buffering events when the widevine
library is not producing data (i.e. when it is
buffering).  This eliminates unnecessary pause and
rebuffer cycles, reducing startup time and the
frequency and duration of spinners.

Multi-repo commit, depends on related changes in frameworks/av

Change-Id: I5b71f954268fbd390eed7f27db98a1bb470d5cfb
related-to-bug:6503294
related-to-bug:6463780
2012-05-31 23:26:14 -07:00
Fred Gylys-Colwell
5b88678ad7 am b83e7ca1: Merge "Fix pause at end of movie." into jb-dev
* commit 'b83e7ca14ab7241c1bbfb50dd6d97edf160f2b74':
  Fix pause at end of movie.
2012-05-31 16:38:21 -07:00
Fred Gylys-Colwell
0b7d0f3fe3 Fix pause at end of movie.
The function WVMExtractorImpl::getCachedDurationUs returns the cached buffer
size in microseconds, and sets a status to ERROR_END_OF_STREAM at the end of
the movie.  The AwesomePlayer will pause if the cache is too small and the
status is not EOS.  In bug 6277231, the player would pause just before the EOS
marker would have been seen by the Widevine library.

This change checks the current play time against the total movie duration.  If
there is less than 10 seconds left in the movie, the EOS flag is set.

related-to-bug: 6277231

Change-Id: I8dbf60c82c41df485185f85e72452aab0a6a9686
2012-05-31 16:01:42 -07:00
James Dong
fdbb5fa10d am f7ce4a9b: Merge "Add bandwidth to adaptive log" into jb-dev
* commit 'f7ce4a9b9aacd01b0a47439a1c33f4e9ace24c5c':
  Add bandwidth to adaptive log
2012-05-21 12:39:33 -07:00
Fred Gylys-Colwell
9cb8f2b91b am 382a5286: Merge "Fix HLS Live Playback with Widevine DRM." into jb-dev
* commit '382a5286b5c8ccfd6fe501ed5bd53cc8630b9de4':
  Fix HLS Live Playback with Widevine DRM.
2012-05-21 11:51:38 -07:00
Jeff Tinker
5658b8dc13 resolved conflicts for merge of 98c35aa4 to master
Change-Id: I32de004b575729f9b1852517ad5df71395e0ae69
2012-05-18 05:17:44 -07:00
Jeff Tinker
1c084694fe Add bandwidth to adaptive log
Change-Id: I79bf860db76bbdc6020d617f918cafb1f73d54de
related-to-bug: 6500173
2012-05-17 06:41:27 -07:00
Fred Gylys-Colwell
382a5286b5 Merge "Fix HLS Live Playback with Widevine DRM." into jb-dev 2012-05-16 20:29:08 -07:00
Fred Gylys-Colwell
ff793bcaf0 Fix HLS Live Playback with Widevine DRM.
In WVMExtractorImpl.cpp, a structure of type WVCallbacks was not initialized.
In version 4.5.0 of the Widevine library, this is just a struct (not a class)
so it does not have a constructor method.  This record was being set with
garbage default values and was causing problems setting up playback.  This may
have caused other stability issues after we reverted to 4.5.0.  In the future,
when we push forward to version 6.0 of the Widevine library, this change should
be removed.

In WVMediaSource.cpp, a flag was set to strip off the ATDS headers.  This was
redundent, and causing seg faults, for live stream.

related-to-bug: 6454710

Change-Id: I3edeb40c731021b2f31f639416188d4a1c002cc5
2012-05-16 20:12:28 -07:00
Jeff Tinker
e9c40a625c Fix native fault in WVMMediaSource::DecryptCallback
This change resolves a lifetime issue between the media extractor
and media sources.  The extractor was being passed as a context
object to a callout in the WV libs.  In some cases, a pointer to
the extractor would be delivered to the callout after the extractor
had been released.  This change assigns the responsibility of the
lifetime of the context object to the media source, to ensure that
a ref is always held on the context object during the lifetime of
the media source.

Change-Id: Ic7a57a1c8496a4798fe590ec356b8a19a4f69967
related-to-bug: 6502322
2012-05-16 19:08:25 -07:00
James Dong
c477bb957f am 79e250e9: If number of audio channels returned is 0, report an error
* commit '79e250e999b7002dc39fa8ee31630fabde6132a8':
  If number of audio channels returned is 0, report an error
2012-05-15 18:14:16 -07:00
James Dong
79e250e999 If number of audio channels returned is 0, report an error
related-to-bug: 6500580

Change-Id: I55cab0bde30841c31f671d03f99c59d337fea564
2012-05-15 17:54:59 -07:00
Jeff Tinker
35064be9c6 Revert Widevine 6.0.0 -> 4.5.0 libraries
DO NOT MERGE

Source and library changes to roll back to 4.5.0, including
maintaining the DRM HAL support.

Includes Widevine libraries 4.5.0-7111

Change-Id: I420c6990748e95ad7516ecb2397ebf7707a157f4
related-to-bug: 6492434
2012-05-14 15:06:13 -07:00
Jeff Tinker
3397e72468 Fix offline license requests and error events
Corrected a regression in error event reporting and a
mismatch in asset paths during rights acquisition.

Also requires https://android-git.corp.google.com/g/#/c/185898/

Contains Widevine libraries version 6.0.0-6957

Change-Id: I4a7603a86feaf437673fc73f0cccb6065dbcce67
related-to-bug: 6414503
2012-05-01 15:46:14 -07:00
Jeff Tinker
ec2d703970 Fix ERROR_IO due to timeout on video stream and corrupt samples
This change applies to the wv extractor when used in conjunction
with new MediaCodec model.

Change-Id: I999990ff41d35641110a58472f1cdb8c4c7db02e
related-to-bug: 5986621
2012-05-01 13:10:42 -07:00
Jeff Tinker
a9f82e979f Add CryptoPluginMode to WV extractor
Allows the WV extractor to run in a mode that is compatible with
the DRM CryptoPlugin HAL API, where decryption is deferred
until the encrypted data is sent through the CryptoPlugin to
the codec.

This patch does:
 (1) Adds a flag mCryptoPluginMode that controls this behavior
     [Note: need framework support to enable/disable this]
 (2) Accumulates information in track metadata to delineate
     crypto unit boundaries for the CryptoPlugin

related-to-bug: 5986621

Change-Id: I3318d5cde38c7b02a7bdb56aca9aece852c9781c
2012-04-26 14:50:28 -07:00
Jeff Tinker
86ecba13ef Remove the annoying WVStreamControl version prints from command line test apps
Change-Id: I946c4e62a68b2bf9a10ad957feb9424aa606755e
2012-04-11 20:30:23 -07:00
Jeff Tinker
9a7a7879f1 Merge "Upgrade of Widevine libraries from 4.5.0 to 6.0.0" 2012-04-06 18:11:18 -07:00
Jeff Tinker
462dc030f8 Upgrade of Widevine libraries from 4.5.0 to 6.0.0
Upload for Dave Parsons

6.0.0 Widevine libraries contain the features required
to support multiple audio tracks and subtitles.  This
is establishing the baseline for those features.

Change-Id: If12074bb2e4364c8107339e2f69453c40698e91f
related-to-bug: 5880566
2012-04-05 15:49:32 -07:00
Jeff Tinker
ba32a8ddb8 Fix an intermittent issue with HLS live streaming
An uninitialized return code was causing intermittent
playback failure during Widevine HLS live playback

Change-Id: Ib45176e7f91e2b6ccf0eb4185c6d58d3be0229b4
related-to-bug: 6277231
2012-04-02 22:10:04 -07:00
Jeff Tinker
835420c31d Fix videos app bandwidth accounting for streaming over 4G
Attribute traffic on socket descriptors to UID of videos app

Multi-repository commit, see also changes in frameworks/base/media.

Includes Widevine library version 4.5.0.6153

Change-Id: I5ddf1b7b758edc82d48a788fc30616d90cab4bd0
related-to-bug: 5434244
2012-03-08 15:08:47 -08:00
Edwin Wong
96ccef64bb Fixed native crash observed on L3 devices by Jeff Tinker.
Change-Id: If78b7e9b5b5f4b87c5b2c55f75a00704e8536ce6
related-to-bug: 5952202
2012-02-08 17:25:29 -08:00
Jeff Tinker
c3949b1967 Changed license headers from AOSP to Google copyright
Change-Id: I3587e290cf49755e06354118fbf877d189508ce8
related-to-bug: 5833045
2012-01-24 15:27:50 -08:00
James Dong
ec3d3d9f47 Remove excessive warning log message from IsWidevineMedia() method
Change-Id: I0358541c10c9807332579c80a1111074b38a721e
2012-01-17 10:52:11 -08:00
James Dong
9fd21a7798 Implement WV side of the separation of sniffing and decrypt session initialization.
Further optimization may be done to further speed up a drm content playback session

related-to-bug: 5725548

Change-Id: Ife69deaf5d2d70bba812fe1a48d9268d8e9530f7
2012-01-12 16:12:39 -08:00
Steve Block
7284b7e7f3 Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: I9b2273ef758c78d927591c1a0a9f988de739742c
2012-01-08 10:17:01 +00:00
Steve Block
8d8df85113 Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: Ib8dfa140669788229a5a59d5849907c92393225c
2012-01-04 20:06:42 +00:00
Steve Block
efe632956d Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: I2d28198c2fc4622a090f4d830cbb311fe522749c
2012-01-03 22:33:09 +00:00
James Dong
444dc2a845 Revert "Fix ANRs due to Widevine DRM plugin sniff taking too long."
We need to do this because with this patch, SHA/MD5 module may get stuck and cause power consumption regression.

This reverts commit 95d4dc7776.

related-to-bug: 5739618
2011-12-14 11:05:53 -08:00
Jeff Tinker
95d4dc7776 Fix ANRs due to Widevine DRM plugin sniff taking too long.
Add a Widevine-specific format sniffer to avoid having to
refetch data from the remote server.

related-to-bug: 5725548

Change-Id: I622e39930f8d243111e4731557b0df17c4e2651d
2011-12-07 21:09:04 -08:00
Edwin Wong
94edc18bde Fixed session not terminated when bandwidth goes below the supported encoded bitrate (preload error).
Change-Id: Ib7bddaaaac7d48df7f18fab0c5d486624abe3119
related-to-bug: 5564453
2011-11-15 09:45:56 -08:00
Edwin Wong
e8951bc684 Fixed 5207482, 5414035, 5489515 and 5489833; increase delay before converting 2014 warning to error
Include Widevine library version 4.5.0.5244

5489833 - live stream aborts early
  ignore continuity counter error warning (status=2014)

5414035 Telstra content cannot play, duplicate of 5489515
5489515 cannot play Disney content
  Telstra content has 4 bytes of AudioSpecificConfig instead of 2
  Disney content has 5 byte AudioSpecificConfig whereas 2 bytes appears to be correct for AAC-LC

5207482 SIGSEGV happens on pressing "Show Rights" during playback of expired movies

Change-Id: Iacc0d02d328c228d28b8cc8be93e63fe9f8b4600
related-to-bug: 5207482
related-to-bug: 5414035
related-to-bug: 5489515
related-to-bug: 5489833
2011-11-10 17:36:05 -08:00
Jeff Tinker
bcfe38dcb0 Fix failure to play through the end of wv videos
Properly compute the buffered and remaining time, also properly account
for the different old and new rates at adaptive switch and other
performance tuning related to b/5153227.

Includes Widevine release libs version 4.5.0.4936

Bug 5336777

Change-Id: I997ea353b7c320dca5e3f5c065395dca206d35a6
2011-10-17 15:11:06 -07:00
Jeffrey Tinker
f5fa8f2017 Changes for calling the level 1 decrypt callout
Change-Id: Iccf76b59a64491952ee11ee2ed1a0e707a529f88
2011-10-07 19:25:20 -07:00
Jeff Tinker
ba335957e9 Widevine extractor changes to support secure media buffer playback.
Supports either secure or insecure buffer configurations, depending
on the build-time flag REQUIRE_SECURE_BUFFERS.

Change-Id: I5b8150315eced4ed9be656b73d91485a6216819d
2011-06-30 15:47:43 -07:00
Gloria Wang
0ca8f17a2e Change the DRM error code name
Merge to master

Change-Id: I9851b24b5327476e1c20c13ab166bc3fc0f98eb9
2011-06-27 10:26:20 -07:00
Jeff Tinker
61cf3d5049 am 77856588: Merge "Fixed 4515636: Playback stops short of end of video." into honeycomb-mr2
* commit '77856588ceebe02b72968c2e157b1c387ac7b6fa':
  Fixed 4515636: Playback stops short of end of video.
2011-06-09 13:42:28 -07:00
Edwin Wong
bc9604da1f Fixed 4515636: Playback stops short of end of video.
Change-Id: I798fe266fa2fb09ed37e6cb559d87111c9e33639
2011-06-08 18:10:29 -07:00
Jeffrey Tinker
40d160cc3f am 66d9ff5f: Fix for 4198445 HC - Support for Widevine Live Streaming (adaptive)
* commit '66d9ff5fb5f99ba77e02a4719e4c65aec2aa8c4a':
  Fix for 4198445 HC - Support for Widevine Live Streaming (adaptive)
2011-06-02 13:58:08 -07:00
Jeffrey Tinker
66d9ff5fb5 Fix for 4198445 HC - Support for Widevine Live Streaming (adaptive)
Change-Id: Id3a8a997fb1186c6af6e94f2fc2d4788238a0452
2011-05-26 11:25:05 -07:00
Jeffrey Tinker
fda2f64112 am 8c5545ef: Merge "Fix for b/4198446 HC - Support for Widevine Adaptive VOD Fix for b/4075745 libWVStreamControlAPI crashes when dlopened() and dlclosed() Added error logging to diagnose problems such as b/4430078 Playback of newly rented movie fails with "licens
* commit '8c5545ef76f39094b016986c7deec02df682356d':
  Fix for b/4198446 HC - Support for Widevine Adaptive VOD Fix for b/4075745 libWVStreamControlAPI crashes when dlopened() and dlclosed() Added error logging to diagnose problems such as b/4430078 Playback of newly rented     movie fails with "license expired"
2011-05-24 12:57:28 -07:00