Project

General

Profile

Actions

Support Request #10261

closed

Getting Media Description for Stream Type

Added by hidden about 4 years ago. Updated almost 4 years ago.

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

Description

Supportanfrage

Ich muss derzeit einen Filter nach ADTF3 portieren. Dieser Filter nutzt die Funktionen cDDLImporter::SetXML und anschließend cDDLImporter::GetDDL.
Dadurch bekommt er eine cDDLDescription.

Gibt es in ADTF3 eine Möglichkeit, von einem Inputpin einen XML-String oder eine cDDLDescription zu erhalten?

Ich habe bereit versucht, adtf::services::IMediaDescriptionService::GetStructMediaDescription zu verwenden, allerdings funktioniert dies nur mit dem
ADTFDAT File Player, und auch nur dann, wenn es sich um ein *.dat file mit vorhandener *.description handelt. Bei einer *.adtfdat Datei sind keine
Informationen über den MediaDescriptionService verfügbar.

Lösung

Ist es ein Filter der Daten empfängt und diese mit der Description interpretieren soll? Dann überschreib die AcceptType() Methode und erstell dir gleich eine Codec Factory basierend auf dem Stream Type mit get_codec_factory_from_stream_type() https://support.digitalwerk.net/adtf/v3/adtf_html/namespaceadtf_1_1mediadescription_1_1ant.html#a0de561fb67896f55d71d7e0fe1a3b28b

Als Convenience gibts auch noch das decoding__sample__reader<> template (https://support.digitalwerk.net/adtf/v3/adtf_html/classadtf_1_1mediadescription_1_1flash_1_1decoding__sample__reader.html)

Wichtiger Unterschied zu ADTF2. Ein Stream Type ist immer self-contained. Heißt wenn er eine Media Description enthält, ist die vollständig und man muss sich nichts vom Service holen. Um direkt an die XML Strings ranzukommen gibt es erst ab 3.7 Komfortfunktionen. Im Moment musst Du dir die "md_definitions" und "md_struct" Properties selbst mit get_property<cString>(*pType, "md_definitions") rausholen (https://support.digitalwerk.net/adtf/v3/adtf_html/structadtf_1_1mediadescription_1_1ant_1_1stream__meta__type__default.html).

Da ich deinen Use-case nicht genau kenne, sie dir bitte unbedingt auch die Code Generierung an: https://support.digitalwerk.net/adtf/v3/adtf_html/page_media_description_code_generation.html und https://support.digitalwerk.net/adtf/v3/adtf_html/classadtf_1_1mediadescription_1_1flash_1_1md__sample__data.html

Vielleicht ist auch die DDL Reflection API für Dich an der Stelle interessant um von einem C-Struct eine DDL zu erstellen: https://support.digitalwerk.net/adtf/v3/adtf_html/classadtf_1_1mediadescription_1_1flash_1_1structure.html

Actions #1

Updated by hidden about 4 years ago

  • Project changed from Public Support to 11
  • Topic set to ADTF::Common
  • Customer set to AUDI
  • Department set to AST
  • Platform Windows 10 64bit added
Actions #2

Updated by hidden about 4 years ago

  • Status changed from New to In Progress
Actions #4

Updated by hidden about 4 years ago

Hi Alexander,

ganz verstehe ich noch nicht was der Filter mit der Description machen soll.

Ist es ein Filter der Daten empfängt und diese mit der Description interpretieren soll? Dann überschreib die AcceptType() Methode und erstell dir gleich eine Codec Factory basierend auf dem Stream Type mit get_codec_factory_from_stream_type() https://support.digitalwerk.net/adtf/v3/adtf_html/namespaceadtf_1_1mediadescription_1_1ant.html#a0de561fb67896f55d71d7e0fe1a3b28b

Als Convenience gibts auch noch das decoding__sample__reader<> template (https://support.digitalwerk.net/adtf/v3/adtf_html/classadtf_1_1mediadescription_1_1flash_1_1decoding__sample__reader.html)

Wichtiger Unterschied zu ADTF2. Ein Stream Type ist immer self-contained. Heißt wenn er eine Media Description enthält, ist die vollständig und man muss sich nichts vom Service holen. Um direkt an die XML Strings ranzukommen gibt es erst ab 3.7 Komfortfunktionen. Im Moment musst Du dir die "md_definitions" und "md_struct" Properties selbst mit get_property<cString>(*pType, "md_definitions") rausholen (https://support.digitalwerk.net/adtf/v3/adtf_html/structadtf_1_1mediadescription_1_1ant_1_1stream__meta__type__default.html).

Da ich deinen Use-case nicht genau kenne, sie dir bitte unbedingt auch die Code Generierung an: https://support.digitalwerk.net/adtf/v3/adtf_html/page_media_description_code_generation.html und https://support.digitalwerk.net/adtf/v3/adtf_html/classadtf_1_1mediadescription_1_1flash_1_1md__sample__data.html

Vielleicht ist auch die DDL Reflection API für Dich an der Stelle interessant um von einem C-Struct eine DDL zu erstellen: https://support.digitalwerk.net/adtf/v3/adtf_html/classadtf_1_1mediadescription_1_1flash_1_1structure.html

Grüße,

Martin

Actions #5

Updated by hidden about 4 years ago

Hi Martin,

danke, es hat geklappt mit get_property<cString>(*pType, "md_definitions").
Das Problem war, dass eine Funktion den XML-String erwartet hat, um daraus Matlab Daten zu erzeugen.
Außerdem hat der Decoder char-arrays immer als int8-arrays gekennzeichnet, weshalb die Unterscheidung
Problematisch war (im tVariantType gibt’s kein char).

Mit dem XML-String funktioniert es jetzt.

Mit freundlichen Grüßen,
Alexander Fischer

Actions #6

Updated by hidden about 4 years ago

  • Project changed from 11 to Public Support
  • Subject changed from Portierung ADTF3 to Getting Media Description for Stream Type
  • Description updated (diff)
  • Status changed from In Progress to To Be Closed
  • Private changed from Yes to No
  • Topic changed from ADTF::Common to ADTF::MediaDescription
  • Resolution set to Solved Issue
Actions #9

Updated by hidden almost 4 years ago

  • Status changed from To Be Closed to Closed
Actions

Also available in: Atom PDF