[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-server-cvs
Subject:    [Server-cvs] admin/web server.opt,1.18,1.19
From:       yijil () helixcommunity ! org
Date:       2013-01-29 5:28:08
[Download RAW message or body]

Update of /cvsroot/server/admin/web
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv32467

Modified Files:
	server.opt 
Log Message:
ommitted to: HEAD, SERVER_15_0_RN

Reviewed by: Xiaocheng, Richard, James

Synopsis
========
BuyDRM HLS integration

Branches: HEAD, SERVER_15_0_RN

Reviewer: Anyone

Description
===========
I. Intro
===================================================
BuyDrm is an important DRM vendor in the world. With the so called KeyOS Device DRM \
solution, it could protect stream media content over smooth stream, windows media, \
HLS to IOS and android devices. Customers could use it with their VOD and OTT \
services.

For the feature, the Helix Universal Server fetch key from BuyDRM key server. The \
server uses the key to encrypt content stream and updates the m3u8 file with the key \
at the same time, send the content stream to client by using HLS. 

II. What feature will be implemented in Helix Server \
=================================================== 1. Could set the BuyDRM Key \
Server URL 2. Could connect to the BuyDRM Key Server and Fetch key.
3. Could map each stream with content ID and key ID, can support get/getall/del \
content ID and Key ID. 4. Could protect the stream with its random generated key when \
BuyDRM Key Server down 5. can support single-rate/multi-rate stream, can support hpl. \
5. Add a new web group "DRM" for all drm page, move admin page for Verimatrix to the \
group.

A new web page is created for BuyDRM HLS DRM, The cfg example lists below, <List \
Name="BuyDrm_DRM">  <Var EnableRandomKeyWhenFail="0"/>
	<Var KeyServerAddr="http://api.licensekeyserver.com/pck/"/>
	<Var UserKey="816c06ed-407b-abcd-0d4e-7dc123456783"/>
	<Var HttpPassword="abca"/>
    <Var KeyServerRequestTimeout="5"/>
</List>
6. refract code for verimatrix
7. update admin page for verimatrix, when modify HTTP API Password, make it needn`t \
restart.  
III. Solution Description
===================================================
1. In CStreamHandler, add codes to trigger buydrm scrambler and handle the response \
from buydrm.

2. CBuyDrmHandler and CBuyDrmScrambler implements key fetch process, 

3. Add class EnhancedHTTPParser which extends from HTTPParser to parse http message \
whose content length is non-zero, and fetch content from http message.

4. In CTSArchiver, updates code to use key from buydrm to encrypt content

5. In CPlaylistGenerator, add new code to support tag " #EXT-X-INI-PRHDR "

6. in m3ugen plugin, add codes to create m3u8 for hpl request

7. add BuyDrmHttpApiHandler to support API method for buydrm

8. modify codes which used by VCAS before to support multiple type of DRM

9. change HELIX_FEATURE_SERVER_DRM_VCAS to HELIX_FEATURE_SERVER_DRM

IV. New files
server_rn/common/util/buydrmscrambler.cpp
server_rn/common/util/pub/buydrmscrambler.h
server_rn/common/util/drmutil.cpp
server_rn/common/util/pub/drmutil.cpp

server_rn/datatype/mpeg2ts/drmhandler.cpp
server_rn/datatype/mpeg2ts/pub/drmhandler.h

server/admin/web/build/server/config_drm_buydrm.html
server/admin/web/build/mserver/config_drm_buydrm.html
server/admin/web/src/srvprxy/config_drm_buydrm.html.wasm

VI. Files Affected
==============
common/include/defslice.h
common/include/hxdrmscrambler.h
common/include/hxiids.h

datatype_rn/mpeg2/ts/filewriter/ctsarchiver.cpp
datatype_rn/mpeg2/ts/filewriter/pub/ctsarchiver.h
datatype_rn/mpeg2/ts/filewriter/pub/playlistgen.h

protocol/http/httppars.cpp
protocol/http/pub/httppars.h

server-restricted/installer/server/retailservinst.cpp

build/umakepf/helix-server-all-defines.pf

server/protocol/http/http_demux.cpp

server_rn/common/util/Umakefil
server_rn/common/util/drmpathmap.cpp
server_rn/common/util/m3uutil.cpp
server_rn/common/util/pub/drmpathmap.h
server_rn/common/util/pub/m3uutil.h
server_rn/common/util/pub/mpeg2ts_config_names.h
server_rn/common/util/pub/vcasscrambler.h

server_rn/appext/m3ugen/iphoneplaylistparser.cpp
server_rn/appext/m3ugen/m3ugenfsys.cpp
server_rn/appext/m3ugen/readm3u8.cpp
server_rn/datatype/mpeg2ts/Umakefil
server_rn/datatype/mpeg2ts/mpeg2tsplin.cpp
server_rn/datatype/mpeg2ts/streamhandler.cpp
server_rn/datatype/mpeg2ts/pub/streamhandler.h

server-restricted/protocol/http-ctrl/drmhttpapi_handler.cpp
server-restricted/protocol/http-ctrl/pub/drmhttpapi_handler.h

server/engine/core/Umakefil
server/engine/core/core_proc.cpp
server/engine/core/proc_container.cpp
server/engine/core/server_context.cpp
server/engine/core/pub/proc_container.h

server/admin/web/server.opt
server/admin/web/build/mproxy/config_pending.nc.html
server/admin/web/build/mserver/browse_content.html
server/admin/web/build/mserver/config_bookmarking.html
server/admin/web/build/mserver/config_broad_hls.html
server/admin/web/build/mserver/config_broad_mpeg2ts_ingress.html
server/admin/web/build/mserver/config_broad_push2cdn.html
server/admin/web/build/mserver/config_broad_rtmp_ingress.html
server/admin/web/build/mserver/config_broad_rtmp_send.html
server/admin/web/build/mserver/config_drm.html
server/admin/web/build/mserver/config_mpeg2ts.html
server/admin/web/build/mserver/config_multiplexer.html
server/admin/web/build/mserver/config_pending.nc.html
server/admin/web/build/mserver/toc.js
server/admin/web/build/proxy/config_pending.nc.html
server/admin/web/build/server/browse_content.html
server/admin/web/build/server/config_bookmarking.html
server/admin/web/build/server/config_broad_hls.html
server/admin/web/build/server/config_broad_mpeg2ts_ingress.html
server/admin/web/build/server/config_broad_push2cdn.html
server/admin/web/build/server/config_broad_rtmp_ingress.html
server/admin/web/build/server/config_broad_rtmp_send.html
server/admin/web/build/server/config_drm.html
server/admin/web/build/server/config_mpeg2ts.html
server/admin/web/build/server/config_multiplexer.html
server/admin/web/build/server/config_pending.nc.html
server/admin/web/build/server/toc.js
server/admin/web/src/srvprxy/config_drm.html.wasm
server/admin/web/src/srvprxy/config_mpeg2ts.html.wasm
server/admin/web/src/srvprxy/pageData.pm
server/admin/web/src/srvprxy/toc~server.js.wasm

Testing Performed
=================
   Test KeyOs on iPhone/iPad
   
   



Index: server.opt
===================================================================
RCS file: /cvsroot/server/admin/web/server.opt,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- server.opt	5 Sep 2012 13:52:25 -0000	1.18
+++ server.opt	29 Jan 2013 05:27:51 -0000	1.19
@@ -54,6 +54,7 @@
 srvprxy/config_dash.html.wasm
 srvprxy/config_mpeg2ts.html.wasm
 srvprxy/config_drm.html.wasm
+srvprxy/config_drm_buydrm.html.wasm
 srvprxy/config_multiplexer.html.wasm
 srvprxy/config_multiplexer_result.html.wasm
 srvprxy/config_bookmarking.html.wasm


_______________________________________________
Server-cvs mailing list
Server-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/server-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic