Project

General

Profile

Actions

Support Request #3349

closed

How to access Media Description in ADTF 3

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

Status:
Closed
Priority:
Normal
Customer:
AUDI
Department:
AEV
Requester's Priority:
Normal
Support Level:
2nd Level
Resolution:
Solved Issue
Product Issue Numbers:
Affected Products:
Platform:
Topic:
ADTF::MediaDescription
FAQ Links:

Description

Supportanfrage

Ich versuche gerade Filtercode von ADTF2
nach ADTF3 zu portieren. Früher war folgendes in ADTF2 möglich:

cObjectPtr<adtf::IMediaDescriptionManager> pDescManager;
RETURN_IF_FAILED(_runtime->GetObject(OID_ADTF_MEDIA_DESCRIPTION_MANAGER,
                                     IID_ADTF_MEDIA_DESCRIPTION_MANAGER,
                                     (tVoid**)&pDescManager,
                                     __exception_ptr));
cString strDesc = pDescManager->GetMediaDescription("tSimple");

In ADTF3 sollte das so ähnlich gehen:

object_ptr<IStreamType> pTypeIn;
object_ptr<adtf::services::IMediaDescriptionService> pDescManager;
cString strDesc;

if (IS_FAILED(_runtime->GetObject(pDescManager, "ADTF Media Description Service"))) 
{
    // COULD NOT INSTANTIATE DESCRIPTION MANAGER
}

// GET SIGNAL DESCRIPTION STRING FROM *.DESCRIPTION FILE (VIA ADTF’S DESCRIPTION MANAGER)
pDescManager->GetStructMediaDescription("tSimple", strDesc);

// CREATE STREAM TYPE BASED ON DESC
create_adtf_default_stream_type("tSimple",
                                strDesc,
                                pTypeIn,
                                m_oCodecFactory);

cString zu verwenden funktioniert an dieser Stelle nur leider nicht mehr, denn er erwartet eine initialisierbare Klasse,
die sich vom Interface IString ableitet. Welche Stringimplementierung kann ich da am besten nehmen?
Ich hoffe außerdem, dass ich die GetObject Methode mit dem richtigen String für den Media Description Manager aufrufe,
weil OID_ADTF_MEDIA_DESCRIPTION_MANAGER gibt es ja offensichtlich in ADTF3 nicht mehr.

Lösung

Über das ADTF Media Description Package, im Data Defintion Language Package Media Description Package ist dann speziell der Zugriff beschrieben (siehe Accessing Data with a Decoder/Codec).

Das Snippet zielt auf die allgemeinere cCodec Variante, hier wird auch nicht create_adtf_default_stream_type verwendet.
Dieser benötigt eine die spezialisierte Form cSampleCodec.
Dementsprechend sind auch die Factories gestaffelt, siehe Hierarchie

Wenn du also create_adtf_default_stream_type verwendest, dann musst du die Snippets ebenso spezialisieren.
Das machen wir in den Beispielen, daran kannst du dich orientieren.

Actions

Also available in: Atom PDF