Project

General

Profile

Actions

Support Request #12409

closed

Read each sample from queue and transmit at once

Added by hidden over 3 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Customer:
CARIAD
Department:
D/CS-G33
Requester's Priority:
Normal
Support Level:
2nd Level
Resolution:
Solved Issue
Product Issue Numbers:
Affected Products:
Platform:
Windows 10 64bit
Topic:
ADTF::FilterSDK
FAQ Links:

Description

Supportanfrage

Ich habe ein Plugin auf Basis cTriggerFunction, welches Rohdaten am Eingang in Ausgangs-Samples umsetzt. Die Eingangsdaten können gelegentlich genug Informationen enthalten, um mehrere Ausgangs-Samples zu generieren:

tResult PluginX::Process(tTimeStamp i_tmTimeOfTrigger)
{
    while(reason) {
       ...
       RETURN_IF_FAILED(TransmitData(nOutputTimeStamp));
    }
}

Hier kann man feststellen, daß die in einem Rutsch innerhalb der Schleife versendeten Daten im nachfolgenden Filter nicht allesamt ankommen, sondern nur das erste (?) versendete Sample.

Wie geht man in einem solchen Fall vor? Muß ich eine Queue anlegen, die mittels externem Trigger (z.B. Timer) Sample für Sample abgebaut wird?

Lösung

While-Schleife über GetNextSample() verwenden.
Es wurde nur ein einfaches GetNextSample aufgerufen. Die Samples werden also in diesem Fall nicht einzeln getriggert, sondern müssen aus der Queue allesamt rausgelesen werden. Das fiel bisher nicht auf, da zuvor nur ein Transmit getätigt wurde.

Actions

Also available in: Atom PDF