ADTF  3.12.8
ADTF Playback Service Plugin


ADTF Playback Service

Introduction

The ADTF Playback Service plays back .adtfdat Files recorded with the ADTFDAT File Recorder.

Plugin Information
Plugin Filenameadtf_playback.adtfplugin
Plugin Descriptionadtf_playback.plugindescription
Plugin NameADTF Playback Plugin
LicenseADTF
Support Mailsupport@digitalwerk.net
Homepage URLhttps://support.digitalwerk.net/
Plugin Versions
Plugin Version3.12.8
Plugin File Version1.0
adtf3.12.8
adtf::ucom3.1.0
Component Information
NameADTF Playback Service
CIDplayback.service.adtf.cid
DescriptionUse this System Service to extend the ADTF System with playback support for ADTF 3.x .adtfdat and ADTF 2.x .dat files.
Properties
NameValueTypeDescriptionSubproperties
emulate_clockstruetBoolIf enabled, clocks recorded in the files will also be emulated during playback.
extract_attached_files_fromcFilenameListA semi-colon separated list of ADTFDAT files that the attached files should be extracted from during service initialization.
extraction_destination_directorycFilepathThe directory where all attached files should be extracted to.
ignore_open_errorsfalsetBoolif enabled, files that can not be opend are ignored.
ignore_unkown_classesfalsetBoolIf enabled, playback will continue even in case it cannot find the deserializer implementation of one ore more streams.
interpolate_stream_timefalsetBoolWhen enabled the stream time will continue to go forward between two playback items being sent. Otherwise the time will be increased in discrete steps.
load_referenced_filestruetBoolif the property is set, additional files referenced in the current playback file are loaded as well.
loop_mode0tUInt32Whether or not and how playback should be restarted when the end of all streams is reached.Value List:
do not loop = 0
seek to start = 1
change runlevel = 2
maximum_playback_thread_count1tUInt32Specifies the maximum number of threads that should be used for playback. If this is not equal to 1, multi threaded playback will be used. Keep in mind that the order of samples is non-deterministic in this case! Note that you have to set interpolate_stream_time = True and emulate_clocks = False in this setup. A value of 0 means that as many threads as possible will be used for the current set of files.
playback_filenamescFilenameListThe list of files (semi-colon) that should be played back. This might be overriden by the Playback Input Source.Filename Extension Filter:
ADTF DAT files (*.dat *.adtfdat),All files (*)
playback_speed1.000000tFloat32The playback speed factor: e.g. 0.5 = half the playback speed, 4 = four times faster.
read_ahead_queue_length1000000tUInt64The time span (us) that the read thread will contineously read form the file in advance.
runlevel_after_end_of_streams4tInt32If the property is != -1 then the service will decrease the runlevel to this value after the end of all streams has been reached. Note that it will never increase the runlevel based on this property.Value List:
none = -1
Filter Graph = 4
Streaming Graph = 3
Session = 2
System = 1
Shutdown = 0
try_realtime_playbacktruetBoolIf this property is true, the hardware clock of the host will be used to determine when a sample/trigger should be sent. Otherwise the player will simple sleep for the time difference between to playback items. This is usefull when using a debugger.
Required Interfaces
IID
reference_clock.giant.streaming.adtf.iid
kernel.devil.services.adtf.iid
adtf_file_objects.devil.services.adtf.iid
Provided Interfaces
IID
playback_service.services.adtf.iid
player.ant.services.adtf.iid
player.bat.services.adtf.iid
player.elasto.remote.adtf

Playback Service Concept

The ADTF Playback Service will register itself as the time source for the ADTF Stream Time at the ADTF Reference Clock Service. (see Offline Mode (Playback)). Any other component will work with this simulated time. Thus there can be only one ADTFDAT File Player in the current Streaming Graph and Filter Graph.

To create a Streaming Source for a Player instance within your Streaming Graph / Filter Graph to provide the Samples, use the ADTFDAT File Player.

Playback of Multiple Files

The ADTF Playback Service supports playback of multiple .adtfdat Files and will always play back the recorded Samples in correct relation and timestamps compared to recording. This is not only mandatory to guarantee that the Offline Mode (Playback) is equal to to the Online Mode (Live) during recording, it also required when loading several .adtfdat files at once. These are the possible options for simultaneously playback of multiple .adtfdat files:

  • property playback_filenames: You can specify multiple filenames seperated by semicolon.
  • property load_referenced_files: .adtfdat Files can reference other adtfdat Files.
    • When the ADTF Playback Service encounters such a .adtfdat file it will automatically load the referenced files as well.
    • This will happen when there had been several ADTFDAT File Recorder within your Graph

In both cases, ADTF will merge all files together and plays each Sample according to its timestamp.

Note
The split option is a special implementation of referenced file but seperated from one recorder. The behaviour for playback matches the same

Player Control

The delivered service implementation follows the interface definition of adtf::services::ant::IPlayer.

The ADTF Playback Service can be control from any instance. It will not react on or result in a runlevel change of the system! See ADTFDAT File Player how the ADTF player can is controlled automatically.

The control interface is delivered within your installation:

include/plugins/player_intf.h

See adtf::services::ant::IPlayer for interface documentation.


Copyright © Audi Electronics Venture GmbH. All rights reserved. (Generated on Thu Aug 19 2021 by doxygen 1.8.14)