Download Content protection and user experience - Sony

knapsackyarnΚινητά – Ασύρματες Τεχνολογίες

14 Δεκ 2013 (πριν από 3 χρόνια και 9 μήνες)

422 εμφανίσεις

Content Protection and User Experience
Pravat Dalbehera
1Who we are
DoCoMo
DRMv1 i-mode WMDRM10
2 20 00 05 5 2 20 00 06 6 2 20 00 07 7 2 20 00 08 8
DRMv1 SD/CD Ultraviolet
DRMv1 FL
P Pre re- -A An nd dro roiid d ( (O OS SE E & & S Sy ym mb biian an) )
2 20 00 09 9 2 20 01 10 0 2 20 01 11 1 2 20 01 12 2
Android
CFM
DRMv2 DRMv2.1
DTCP-IP
Marlin
Open DRM
Framework
In-house
development
IntegrationContent Protection (DRM) on Android
Need of Digital Media Protection
- Services are out there
- Great Device CapabilitiesDRM Application is
difficult to develop
PlayReady
OMA Marlin
PlayReady
PlayReadyConstruction of DRM SpecificationContent Protection (DRM) on Android
Need of Digital Media Protection
- Services are out there
- Great Device CapabilitiesContent Protection (DRM) on Android
Need of Digital Media Protection
- Services are out there
- Great Device Capabilities
Open DRM Framework
- - P Po os ss si ib bi il li it ty y f fo or r D De ev v c co om mm mu un ni it ty y
- Satisfying technical needStoreFront/Player Application
(operator or service provider)
MediaPlayer
FW APIs
Open DRM Framework
Stagefright
Engine 1
PlayReady
Engine 2
Engine
Engine
XYZGoal: Make things easier!
Now we can develop
DRM Application
DRM Application is
easily
difficult to develop
PlayReady
PlayReady OMA
OMA Marlin
Marlin
PlayReady
PlayReady
PlayReady
PlayReadyDRM Framework API set
• Content MetaData
• LicenseMetaData
• LicenseHandling
• • En Enccry ryp pttiio on n//D De eccry ryp pttiio on n ((n na attiivve e))Content Protection (DRM) on Android
Need of Digital Media Protection
- Services are out there
- Great Device Capabilities
Open DRM Framework
- - P Po os ss si ib bi il li it ty y f fo or r D De ev v c co om mm mu un ni it ty y
- Satisfying technical need
Satisfying End User needKeep It Simple ☺
!!!!!! ??????
How/Where/when
do I get the key to
render my contentsAcquire License – Browser use case: Click on Initiator
PlayReady
DRMLicenseService
Engine/Agent
Browser
Server
Intent(mime = “initator”)
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
Browser
<data android:scheme="http" />
<data android:mimeType="application/vnd.ms-
playready.initiator+xml" />
</intent-filter>
License Acquire Jobs via
License Acquire HTTP Posts and Responses
DRM Framework
Download
Manager
Download Content
Download progress bar
and
Download Notification
MediaPlayer
Intent(view)
User starts to render
the content and media
player is launchedContent Protection (DRM) on Android
Need of Digital Media Protection
- Services are out there
- Great Device Capabilities
Open DRM Framework
- - P Po os ss si ib bi il li it ty y f fo or r D De ev v c co om mm mu un ni it ty y
- Satisfying technical needContent Protection (DRM) on Android
Need of Digital Media Protection
- Services are out there
- Great Device Capabilities
Open DRM Framework
- - P Po os ss si ib bi il li it ty y f fo or r D De ev v c co om mm mu un ni it ty y
- Satisfying technical need
Drive Towards End User Experience
- Satisfying End User need
- Be part of evolution and enable platform for better user experienceUser friendly and across multi-devices!StoreFront/Player Application
(operator or service provider)
MediaPlayer
FW FW A AP PI Is s
Open DRM Framework
Stagefright
Engine 1
PlayReady
Engine 2
Engine
Engine
XYZStoreFront/Player Application
(operator or service provider)
DLS APIs
MediaPlayer
DrmLicenseService
FW FW A AP PI Is s FW FW A AP PI Is s
Open DRM Framework
Stagefright
Engine 1
PlayReady
Engine 2
Engine
Engine
XYZAcquire License – Browser use case
PlayReady PlayReady Porting Kit
Open DRM
Server Browser
DRMLicenseService Engine/Agent
Framework
Intent(mime = “initator”)
1. Download Initiator
2. Parse XML
i) Get Header
1
ii) Get URL
acquireDrmInfo(Action = GenLicChallenge
Data = XML header)
(Status = OK, Data = XML Challenge)
2
Post = AcquireLicense
(Status = OK, Data = XML Ack)
acquireDrmInfo(Action = ProcessLicResponse,
D Da atta a = = X XM ML L r re es sp p) )
Process License Response
GenerateLicAck 3
XML Acknowledge
Post = AcknowledgeLicense
acquireDrmInfo(Action = ProcessLicAckResponse,
Data = XML resp)
4
(Status = OK)
Media
Player
5
Download
Intent/Notify for
Content(ContentURL)
renderingAcquire License - based on WebInitiator using DLS APIs
PlayReady
PlayReady
MediaPlayer/ Porting Kit
Open DRM
Engine/Agent
DRMLicenseService
StoreFront
Framework
handleWebInitiator(urll)
1. Download Initiator
2. Parse XML
1
i) Get Header
ii) Get URL
Server
acquireDrmInfo(Action = GenLicChallenge
Data = XML header)
(Status = OK, Data = XML Challenge)
2
Post = AcquireLicense
acquireDrmInfo(Action = ProcessLicResponse,
Data = XML resp)
Process License Response
3
GenerateLicAck
(Status = OK, Data = XML Ack)
XML Acknowledge
Post = AcknowledgeLicense
acquireDrmInfo(Action = ProcessLicAckResponse,
MediaPlayer/
Data = XML resp)
StoreFront
4
(Status = OK)
Progress(ItemCompleted,
DownloadURL)
If more items in WI
Progress(WICompleted)Analyze Web Initiator
DRMLicenseService
DRMLicenseService Contents License
Application
Interface
Server Server
Standard bind Service
handleWebInitiator()
handleWebInitiator()
Sessin Id
Sessin Id
Start Service
Analyze of type
HTTP GET ( Web Initiator URL )
Response Code
Parse xml
progressReport(“Web Initiator count”)
Loop < Initiator num
Join Domain, Leave Domain, License Acquisition
Response code
Save License
progressReport(“Finished job”)
progressReport(“Finished Web Initiator”)Renewal of Licenses
Contents License
DRMLicenseService
Application
DRMLicenseService
Server Server
Interface
Standard bind Service
renewRights()
renewRights( )
Sessin Id
Sessin Id
G Ge ett c co on ntte en ntts s h he ea ad de er r
Get url to get license
Get license
Response code
progressReport(“”)License
License
D Doom maaiinn
License
LicenseJoin Domain response from server
DRMLicenseService
Contents License
DRMLicenseService
Application Server Server
Interface
Standard bind Service
handleWebInitiator()
handleWebInitiator()
Loop < initiator num
License Acquisition*1
A Au ut to om ma at tiic ca alllly y J Jo oiin n D Do om ma aiin n
Response ( with join domain )
When Response as License Acquisition is "Join
Domain”
Join domain
If domain join was successful, run the same
Success join domain
request to License Acquisition again.
License Acquisition
Success license acquisition
Save License
progressReport(“Finished job”, AcquireLicense)
progressReport(“Finished Web Initiator”)App MediaPlayer DrmManagerClient
Playback DRM content
new
setOnErrorListener( onError )
setDataSource(URI)
prepareAsync()
init()
W Wh he en n a a lliic ce en ns se e e er rr ro or r h ha ap pp pe en ne ed d,,
MediaPlayer causes CB set by
setOnErrorListener().
onError()
License acquisition
checkRightsStatus()
Check llicense status
Render/Handled by
the error conditionSTAND
ALONE
OPERATORS
RETAILERS
SATISFYING
USER
EXPERIENCE
DRM LICENSE
SERVICE(DLS)
SERVICES
GREAT
”OUT THERE”
DEVICE
CAPABILITIES
EXAMPLE
BASED ON
PLAYREADY
POSSIBILITY
FOR DEV
COMMUNITY
OPEN DRM
CONTENT ACCESS
FRAMEWORK
PROTECTION ON
ANDROID
MEDIA
PLAYER
SATISFYING
STORE FRONT
TECH NEED
SMOOTH USER
EXPERIENCEMessage/Request To Developer Community
• From end-user perspective, provide smooth user
experience.
No difference between protected content and non-protected
content.
• • “ “D De e f fa ac ct to o” ” s st tan and dar ard d f fo or r p pr rem emiu ium m c co on nt ten ent t U Us ser er
Experience
• DRM License Service
github.com/sonyxperiadev