No. An organization must be a member of the Digital Living Network Alliance to obtain a DLNA license.

Media-streamer module provides content for DLNA. The implementation is a part of the media-streamer component, and is implemented on top of the libgupnp code.

Yes.

Use below command format -

(The quarterly release name can be given with -b option)

It is possible to consume mediaplayer events in Lightning -http://cdn.dashjs.org/latest/jsdoc/streaming_MediaPlayerEvents.js.html

Example:

const events = ["playbackStateChanged", "playbackCompleted", "playbackSpeedChanged",

"playbackFailed", "mediaMetadata", "timedMetadata", "playbackProgressUpdate",

 "playbackStarted", "bufferingChanged", "durationChanged", "decoderAvailable" ];

events.forEach(event => {

 player.addEventListener(event, (e) => {

 this.fire(event, {event: e});

});            

});

IARM bus interface are used to get the events notification from the system level like IR key, power, storage space, etc. could be better used in native apps.

Servicemanager acts as a subscriber who will receive the events from IARM Bus and post it to MSO Backend. The ServiceManager is the one well known facility for cloud-based applications to gain access to device vended functionality whether they are written in HTML .

The better alternative is of course the "AbstractService" class as it is the newer version and derived from the "Service" class and has a superset of features of the service class. However, pure virtual functions may be useful for enforcing OOPS convention of data hiding and abstraction.               

First modify the config/xml file which will be there in the component you are writing objects and then respective handlers you have to call in xml.

  • WPE doesn't support WebAssembly.
  • It wont be faster for general use cases and memory management is worse since it's a fixed heap without garbage collection.
  • Web assembly is interesting but currently they're targeting big monolithic codebases in c++ etc like games but more on desktop memory profiles. All the feedback we got thus far has told us their experience hasn't been a win on perf or memory

WPE WebKit has limited support for HTMLMediaElement.canPlayType() and MediaSource.isTypeSupported(). It implements checks for container, video width/height/framerate, and basic verification of codec (it doesn't check for profile & level)

Make sure DASH.js uses utf-8 as a content type format for license requests (playready challenge is utf-8 encoded)

  • WPE: no native subtitles support (608/708 could be integrated from main UI application) 

WPE media element: no audio track selection;  WPE MSE Google Shaka: selectAudioLanguage(language, role), or selectVariantTrack(track);   WPE AAMP UVE: set

Inject the following JS code to handle MoneyBadger requests (some)
window.ServiceManager = {};
     window.ServiceManager.version = '2.0';
     window.ServiceManager.getServiceForJavaScript = function(name, serviceReadyCb) {
         class BridgeObject
         {
             JSMessageChanged(msgStr)
             {
                 let msg = JSON.parse(msgStr);
                 console.log('badger action=', msg.action, 'pid=', msg.pid);
                 if (msg.action === 'deviceCapabilities' || msg.action === 'info') {
                     setTimeout((msg) => {
                         let caps = {
                             videoDimensions: [3840, 2160],
                             hdr: { settopHdrSupport: 'DolbyVision', tvHdrSupport: 'DolbyVision' },
                             hdcp: { connected: true, currentHDCPVersion: '2.2' }
                         }
                         window.$badger.callback(msg.pid, true, caps)
                     }, 0, msg);
                 } else {
                     window.$badger.callback(msg.pid, false, {})
                 }
                 return true
             }
         }
         if (name === 'com.comcast.BridgeObject_1')
             serviceReadyCb(new BridgeObject);
     }

Yes, it is possible to use a remote control with rdkbrowser2.sh

 touch /opt/remote_input_enable  and reboot.

By default local storage is disabled. If the app requires this support, you need to contact Project management to enable it for the specific app.

Client requests a tuner through URL(http,live), TRM server receives the request and checks for the valid reservation and reserves the tuner so that the client is provided with the service requested. Client also can extend or delete the reservation. It is also possible for a client to request a list of the active reservations.

For more details, Please refer https://wiki.rdkcentral.com/display/RDK/TRM#TRM-HowTRMworks

getDeviceInfo() - Retrives the device information of the device .
To get a mac address getDeviceInfo() needs to be called with string “getMacAddress” as an argument like getDeviceInfo(“macAddress”)

Yes , Please refer this link : Session Manager

No

End state architecture has scalability and security built into it.Refer RDK Alexa Echo Dot Voice Application .

This is a sample pipeline to play dtcp encrypted content using gst-launch

gst-launch-1.0 httpsrc location="http://127.0.0.1:8080/hnStreamStart?live=ocap://0x2c23&continueTSB=true" blocksize=131072 ! dtcpdec dtcp-src-ip="127.0.0.1" dtcp-port=5000 buffersize=131072 ! playersinkbin is-live=true.

  • The coredump files will be available in following directory for a systemd based box - /var/lib/systemd/coredump/
  • Additionally for system logs, you can browse through following files in /opt/logs –
    1. core_log.txt

    2. rebootInfo.log

    3. messages.txt

  • Previous boot Logs can be also seen from  /opt/logs/PreviousLogs/

There is no package manager support for downloading/installing packages. However you can manually install ipk packages.

RDK Device Settings is the component which handles the following configurations:

  • Audio Output Ports (Volume, Mute, etc.)
  • Video Ouptut Ports (Resolutions, Aspect Ratio, etc.)
  • Front Panel Indicators
  • Zoom Settings
  • Display (Aspect Ratio, EDID data etc.)
  • General Host configuration (Power managements, event management etc.)

These properties are persisted in the STB and are read/applied on each boot-up.

For example: On a RDK emulator, the device setting properties are persisted in '/opt/persistent/ds/hostData' .

There are few sample applications available to test/force the settings e.g. setResolution can be used to force the resolution settings.

The Comcast RDK requires kernel logs, DOCSIS ECM logs, and syslog messages to be logged into specific files. These details can be provided by Comcast on request. The RDK set-top diagnostics and troubleshooting infrastructure requires these logs to be present and accessible via the ESTB interface to aid in the rapid troubleshooting of the device during development and deployment.

Flash and hard disk drive (HDD) requirements for RDK devices will differ depending on the deployment configuration. For example, a DVR will have an HDD but some other devices will not.

Flash is used to store the advanced bootloader (ABL), primary and secondary firmware images, serialization data, and other data that need to persist, including logs. Where possible on HDD devices, the HDD is leveraged to store dynamic content leaving flash on those devices to be primarily read-only. The partitioning scheme for on-board flash and HDD will therefore differ depending on the physical makeup of the device.  

Please contact Comcast for more information.

libcrypto, openSSL and libpgp can be ported as it is. However the SoC security APIs need to be implemented to support Comcast security requirements.

There are no requirements for hardware optimization.

RDK-V UI


  • Connect your device with lan and get the box/device ip, make sure your dev pc and device is connected with the same network, so that you will be able to access your device from dev pc.
  • From dev pc: $ scp -r <dist or build folder which contains index.html, appBundle.js and other files> root@<your box/device ip:/home/root>

Execute $ npm run watch and then npm run serve separately in separate terminal.(tried on VS code)

For this,Install windows node env globally:

$ npm install -g win-node-env


  • No labels