Project

General

Profile

Support Request #14745

Creating output pins via qml not calling RequestDynamicOutputPin

Added by hidden 2 months ago. Updated 2 months ago.

Status:
To Be Closed
Priority:
Normal
Requester's Priority:
Normal
Topic:
ADTF::SDK
Resolution:
Solved Issue
Product Issue Numbers:
Affected Products:
Platform:
Windows 10 64bit
FAQ Links:

Description

Supportanfrage

Ich habe folgendes Problem: wenn ich via qml dynamische Output Pins erzeuge (sind im Filtergraphen zu sehen) wird für diese RequestDynamicOutputPin nicht gecalled, für welche die ich selber im FilterGraphen erzeuge aber schon. Ist das bekannt / umgehbar?

Lösung

Wenn ein Pin nicht mit einem Sample Stream verbunden ist, fließen auch keine Daten, die Callbacks werden dann auch nicht gerufen.

Hier ein kleines Bsp:

Die Pins data_ce und data_ce_out hab ich im CE angelegt.
Die Pins data_qml und data_qml_out kommen vom Filter Editor:

EditorPluginBase 
{
    id: root

    onExecute: 
    {
        createInputPin("data_qml")
        createOutputPin("data_qml_out")
    }
}

Im Filter selbst mach ich folgendes:

tResult cDynamicFilter::RequestDynamicOutputPin(const tChar* strName,
                                                const adtf::ucom::ant::iobject_ptr<const adtf::streaming::ant::IStreamType>& pType)
{
    LOG_INFO("########### %s", strName);
    RETURN_NOERROR;
}

Und beim Launch wird die Funktion auch wunderbar gecalled:

// ...
2021-07-16 13:06:40 [INFO]: ########### data_ce_out [synchronizer_filter.cpp(64)]
2021-07-16 13:06:40 [INFO]: ########### data_qml_out [synchronizer_filter.cpp(64)]

Files

filter_ce.png (13.7 KB) filter_ce.png hidden, 2021-07-16 11:10
#1

Updated by hidden 2 months ago

  • Status changed from New to In Progress
#3

Updated by hidden 2 months ago

  • Topic set to ADTF::SDK
#4

Updated by hidden 2 months ago

  • Affected Products ADTF 3.12.5 added
  • Platform Windows 10 64bit added
#5

Updated by hidden 2 months ago

Hallo Dennis,

kann es sein, dass die Pins nicht verbunden sind ?

Hier ein kleines Bsp:

Die Pins data_ce und data_ce_out hab ich im CE angelegt.
Die Pins data_qml und data_qml_out kommen vom Filter Editor:

EditorPluginBase 
{
    id: root

    onExecute: 
    {
        createInputPin("data_qml")
        createOutputPin("data_qml_out")
    }
}

Im Filter selbst mach ich folgendes:

tResult cDynamicFilter::RequestDynamicOutputPin(const tChar* strName,
                                                const adtf::ucom::ant::iobject_ptr<const adtf::streaming::ant::IStreamType>& pType)
{
    LOG_INFO("########### %s", strName);
    RETURN_NOERROR;
}

Und beim Launch wird die Funktion auch wunderbar gecalled:

// ...
2021-07-16 13:06:40 [INFO]: ########### data_ce_out [synchronizer_filter.cpp(64)]
2021-07-16 13:06:40 [INFO]: ########### data_qml_out [synchronizer_filter.cpp(64)]

Das dürfe ziemlich vereinfacht deinen Use Case treffen oder ?

#7

Updated by hidden 2 months ago

Hallo Dennis,

beantwortet das deine Frage ?

#8

Updated by hidden 2 months ago

Hallo Florian, ja, die waren nicht verbunden. Die Funktion wird dann nur gecalled wenn sie verbunden sind? Das würde die Frage beantworten

#9

Updated by hidden 2 months ago

  • Project changed from 4 to Public Support
  • Description updated (diff)
  • Status changed from Customer Feedback Required to To Be Closed
  • Resolution set to Solved Issue

Hallo Dennis,

Die Funktion wird dann nur gecalled wenn sie verbunden sind?

Korrekt! Dann werden Daten übertragen, dann springen auch die entsprechenden Callbacks an.
Pins sind am Ende nur die konfigurierbare Hülle im Graphen, um Sample Streams, Reader und Write zu definieren.
Von der Architektur her wollte man auch vermeiden, dass Daten an Pins gesendet werden und Perfomance kosten, die keiner abgreift, deshalb ist das entkoppelt.

#10

Updated by hidden 2 months ago

  • Private changed from Yes to No

Also available in: Atom PDF