• Quick Start
  • Booting
  • Platform
  • Portals
  • References
    • API Reference TOI3
    • IIP Reference
  • Resources
ARRIS Enterprises, Inc. Confidential Information

Storage Devices

Summary

The KreaTV platform supports DVR and timeshift functionality for USB connected storage devices. If the storage device is approved by ARRIS, then no licenses will be involved to control the functionality. If the storage device is not approved by ARRIS however, then licenses will be used to determine which functionality that is allowed.

Configuration

USB DVR and timeshift functionality are enabled by adding the following IIP to the boot image configuration:


# Required configuration for USB DVR and timeshift
kreatv-option-dvr

When connecting a USB storage device to the STB, KreaTV will categorize it as a storage device approved by ARRIS or as a storage device not approved by ARRIS. Storage devices approved by ARRIS are given full DVR and timeshift support, while storage devices not approved by ARRIS are limited in functionality. By default, storage devices not approved by ARRIS are only allowed to timeshift a maximum of 30 minutes, and all DVR functionality is disabled.

It is possible to extend the functionality for the storage devices not approved by ARRIS by adding an additional license IIP to the boot image configuration. There are two different licenses available, and they are mutually exclusive:

kreatv-license-extended-timeshift-on-any-hdd

This IIP will allow a longer timeshift buffer than 30 minutes to be used for storage devices not approved by ARRIS. DVR functionality remains disabled. This IIP will have no effect on storage devices approved by ARRIS. An example boot image configuration is seen below:


# Example of license IIP for extended USB timeshift for storage devices not approved by ARRIS
kreatv-license-extended-timeshift-on-any-hdd

# With the above license IIP present, the following setting will also be honored for
# storage devices not approved by ARRIS:
kreatv-option-dvr::timeshift_buffer_max_time=120

kreatv-license-limited-dvr-on-any-hdd

This IIP extends the functionality provided by kreatv-license-extended-timeshift-on-any-hdd. In addition, the IIP will allow for storage devices not approved by ARRIS to perform DVR operations, but with the following limitations:

  • Only one simultaneous recording is allowed.
  • Timeshift is allowed but considered as a recording.
  • Conversion of the timeshift buffer to recording assets is not supported.
  • Appending to existing recording assets is not supported.
  • Recording assets on the storage device cannot be shared through the DLNA service.

This IIP will have no effect on storage devices that are approved by ARRIS. An example boot image configuration is seen below:


# Example of license IIP for limited USB DVR for storage devices not approved by ARRIS
kreatv-license-limited-dvr-on-any-hdd

# With the above license IIP, extension of the maximum timeshift duration will still be
# honored for storage devices not approved by ARRIS:
kreatv-option-dvr::timeshift_buffer_max_time=120

Limitations

Hardware limitations

KreaTV supports USB storage devices that implement the MSC/UMS class. This device class is used by many different kinds of devices. For instance: USB flash drive, memory card reader, digital audio players, digital cameras, external drive, etc. Unfortunately all devices regardless of actual type look the same to KreaTV and they will be possible to connect. However the supported devices are limited to harddrives and SSD for DVR and to flash memory sticks for timeshift.

Not all vendors and models are guaranteed to work. Some USB HDDs have been found to require more current than the set-top box is able to provide. Large 3.5 inch HDDs typically require an independent power source but issues have also been observed with some 2.5 inch HDDs. If the HDD is not approved by ARRIS, the recommendation is to always use an HDD with an independent power supply.

Some devices with extended functionality identify themselves as multiple devices. E.g. one read-only CD-ROM device and normal USB mass-storage device. Such devices might work but are not officially supported.

The performance and reliability of memory sticks varies a lot. It is not uncommon that a storage device is able to meet the required bitrates in terms of burst throughput but fails to sustain that level of bandwidth over time. This usually causes intermittent delays that make timeshift recordings fail or stutter. It is possible to allocate more memory to the DVR buffers to cope with these longer I/O delays:


# Allocate an additional 4 MiB of DVR memory to handle inconsistent I/O
kreatv-option-dvr::additional_memory=4096

# Configure the maximal number of recorders, as memory is divided between
# all recorders and should not be wasted on unused ones.
kreatv-option-dvr::max_recorders=1

Memories have been found to deteriorate over time due to wear-leveling algorithms and bad blocks. This means that a memory stick that initially worked fine might start to suffer issues after a period of use. This is expected and the memory stick then needs to be replaced with a new fresh unit.

Only one USB storage device at a time is supported.

Usage

Detecting and setting up external storage devices

Before a device can be used for timeshift or DVR it has to be set up. This is done using the ToiStorageService through the following steps in TOI/JS:

  • Once a device is plugged in, ToiStorageService::ON_DEVICE_ADDED event will inform that one device is connected.
  • Device information can be got by ToiStorageService.getDevices().
  • DVR or timeshift on a storage device can be supported only when the storage device is in DEVICE_STATE_DVR_STORAGE. The device state can be got from ToiStorageService.getDevices() or indicated by ToiStorageService::ON_DEVICE_STATE_CHANGED event.
  • If it's in other states, calling ToiStorageService.prepareDvrStorage() makes it a DVR storage device.

See also Storage Service.

Dynamic run-time behavior

Since external USB storage devices can be hot-plugged it requires portal applications and middlewares to handle DVR and timeshift functionality being disabled and enabled dynamically during run-time. There are two properties that change to indicate the current state of the system:

  • The information object VAR_CAPABILITIES_TIMESHIFT indicates whether timeshift functionality is enabled or not.
  • The information object VAR_CAPABILITIES_DVR indicates whether DVR functionality is enabled or not.

5.1.1.p8

Copyright (c) 2018 ARRIS Enterprises, LLC. All Rights Reserved. ARRIS Enterprises, LLC. Confidential Information.