Project

General

Profile

Actions

Support Request #1485

closed

Interface Binding for StreamingSink cannot get server Object

Added by hidden over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Customer:
AUDI
Department:
Requester's Priority:
Normal
Support Level:
3rd Level
Resolution:
Product Issue Opened
Affected Products:
Platform:
Windows 7 64bit
Topic:
ADTF::SDK
FAQ Links:

Description

Supprotanfrage

Hallo zusammen,

ich wollte zur Kommunikation zwischen einem Filter im FilterGraph und einem Streaming Sink Interface Binding verwenden. Hierbei failed aber immer die "GetServerObject" Methode und ich kann somit nicht auf das Interface zugreifen.

Ich habe das ganze auf folgendes Minimalbeispiel reduzieren können:

Den "demo_interface_binding_filter" Example Filter habe ich um einen Binding Server in der Configure Methode erweitert, wobei das "IPrintInterface" und die "cPrinter" Implementierung die gleichen sind wie im Example.

m_pPrinter = make_object_ptr<cPrinter>();
RETURN_IF_FAILED(create_server<IPrintInterface>(*m_pFilter, "printer_server", m_pPrinter));

Den "demo_interface_source" Example Filter habe ich als StreamingSink umgebaut, in der Construct Methode erzeuge ich den Binding Client:

RETURN_IF_FAILED(create_client<IPrintInterface>(*this, "printer_client"));

Wenn ich dann z.B. in der Init oder der StartStreaming Methode auf das Server Object wie folgt zugreifen will, failed die "GetServerObject" Methode.

    RETURN_IF_FAILED(FindBindingObject("printer_client", m_pBindingClient));
    object_ptr<IPrintInterface> pPrinter;
    //the next line will fail
    if (IS_OK(m_pBindingClient->GetServerObject(pPrinter)))
    {
        pPrinter->Print(adtf_util::cString::Format("this is streaming sink"));
    }
    else
    {
        LOG_INFO("failed to get binding server for printer_client");
    }

Mein Filter Graph sieht wie folgt aus:

Und der entsprechende Streaming Graph:

Der Debug Output der Console nach dem Runlevel 5 lässt mich vermuten, dass die Connection vom Filter Graph Dock zur Streaming Sink nicht gezogen wird und deshalb kein Server Object gefunden werden kann.

Denn bei der Konfiguration mit dem "demo_interface_binding_filter", welcher eine StreamingSource ist, ist eine entsprechender Connect Ausgabe in der Console zu sehen.

Den Code meines Beispiels habe ich auch noch angehängt, falls das hilft.

Lösung

Produktticket ACORE-9334 angelegt


Files

Filter_Graph.PNG (15.2 KB) Filter_Graph.PNG hidden, 2017-12-21 13:39
Streaming_Graph.PNG (65 KB) Streaming_Graph.PNG hidden, 2017-12-21 13:39
InterfaceBindingStreamingSink.zip (3.26 KB) InterfaceBindingStreamingSink.zip hidden, 2017-12-21 13:50
Actions

Also available in: Atom PDF