ADTF
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ADTFDAT File Player Plugin

ADTFDAT File Player

Introduction

The ADTFDAT File Player is a delivered Streaming Service plugin to interoperate with the Playback Service to feed the Streaming Graph and Filter Graph with Samples from the played back .adtfdat files.

Plugin Information
Plugin Filenameadtf_playback_input.adtfplugin
Plugin Descriptionadtf_playback_input.plugindescription
Plugin NameADTF Playback Input Plugin
LicenseADTF
Support Mailsupport@digitalwerk.net
Homepage URLsupport.digitalwerk.net
Plugin Versions
Plugin Version3.99.99
Plugin File Version1.0
adtf3.99.99
adtf::ucom3.1.0
Component Information
NameADTFDAT File Player
CIDadtfdat_file_player.streaming_source.adtf.cid
DescriptionUse this Streaming Source to play back measurement data from ADTF 3 .adtfdat or ADTF 2 .dat files.
TypeFilter
Properties
NameValueTypeDescriptionSubproperties
enable_controltruetBoolIf enabled, then the source will control the playback files of the playback service, i.e. the 'filenames' Property will be used.
filenamescFilenameListIf 'enable_control' is activated, these files will be opened via the playback service.Filename Extension Filter:
ADTF DAT files (*.dat *.adtfdat),All files (*)
ignore_missing_streamsfalsetBoolIf enabled, the source will create output Pins even if there is no corresponding stream in the ADTF DAT File.
load_referenced_filestruetBoolIf enabled files listed in the referenced file extension of the specified files will be loaded as well.
reader_idcStringUse this property to force the use of a specific reader implementation. If empty, the first capable reader will be used.
start_on_startuptruetBoolIf enabled, playback will be started when Runlevel 'RL_Running' has been reached.
Dynamic Pins
Dynamic Input Pinsfalse
Dynamic Output Pinstrue
Dynamic Input Binding Pinsfalse
Dynamic Output Binding Pinsfalse
Required Interfaces
IID
playback_service.services.adtf.iid

ADTFDAT File Player Basics

Note
Make sure you want the ADTFDAT File Player to control the Playback Service by the interface adtf::service::IPlayer by the "enable_control" property.

See also Offline Mode (Playback/Re-Simulation) and Clock Concept for information about timing and playback mode.

Warning
Mixing both operation modes (which means combining a ADTFDAT File Player with a real Streaming Service like hardware devices with own internal clocks) is neither recommended nor supported due to timing violations ! There might be use cases e.g. in early development processes but we advise to use such setups carefully and only for pre-development evaluation or purpose !

Additional file support

The ADTF File Library provides some built-in readers (e.g. to read adtfdat, sort by sample timestamps, time extension, etc.) that are used by the ADTFDAT File Player .

Note
For more details about possible adjustments, please use adtf_dattool with --inspect-builtins option.

Furthermore with the adtfdat_processing library from ADTF File Library it is possible to extend the ADTFDAT File Player and Playback Service by creating new reader implementations and ship them within adtffileplugins.

Note
For more information please have a look at the ADTF File Library and its reader examples.

These adtffileplugins can be announced within the adtfenvironment file and are recognized by the Session Manager. Within the System Editor of the ADTF Configuration Editor it is possible to add these adtffileplugins to your session and can be used by the ADTFDAT File Player afterwards.

The Create pins from playback files... dialog provides functionality to select and configure these built-in readers and extensions.

You can combine these (proxy) readers with each other to build a chain of readers. Normally the reader chain is built automatically where each file/url is opened with the first reader implementation that supports it. If you want to explicitly specify which reader implementation is used, specify its id in the reader_id property of the ADTFDAT File Player. To specify the worker/delegate reader used by a proxy reader, set the id in the worker_reader property.

Resimulation of data sources (sample vs chunk timestamp)

Per default, the ADTFDAT File Player / Playback Service uses the chunk timestamp for replay, which represents the instant when a sample has been received at the ADTFDAT File Recorder. This is the common use case where you record your data and want to proceed in a different processing setup at exactly this tapping point and replacing this pin (sample stream) with the data from the recording file.

Another option is that you want to resimulate your recording scenario (e.g. for regression tests or virtual environments) and process the data in the same order as it was percieved at the original sources. In this case, you can change the behavior to use the sample timestamp instead of chunk timestamp, which represents the instant when a sample has been arrived/measured at the original source.

After choosing the sorted_by_timestamps reader in the Create pins from playback files... dialog of the ADTFDAT File Player, new properties will be created in the ADTFDAT File Player for this reader configuration.

For more details about possible adjustments, please use adtf_dattool with --inspect-builtins option.

Allow processing after end of file (EOF)

In many situations processing should continue for a specific period of time after playback has been finished. This can be achieved by providing dummy samples after all input has been processed.

After choosing the time_extension reader in the Create pins from playback files... dialog of the ADTFDAT File Player, new properties will be created in the ADTFDAT File Player for this reader configuration.

For more details about possible adjustments, please use adtf_dattool with --inspect-builtins option.

Playback for Generic Visualization

When using the built-in streams_to_substreams reader, by either choosing it in the Create pins from playback files... dialog or via setting it in the reader_id property of either the playback input or playback service, it is possible to merge all data into a single stream and thus provide a generic way to visualize data with the help of the section_stream_display. Please have a look at the Playback for generic visualization example session.