Dela via


Konfigurering av dataenhetstillägg

[Funktionen som är associerad med den här sidan, Windows Media Format 11 SDK, är en äldre funktion. Det har ersatts av Source Reader och Sink Writer. Source Reader och Sink Writer har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder Source Reader och Sink Writer i stället för Windows Media Format 11 SDK, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]

Exempel som skrivs till ASF-filer kan innehålla ytterligare information förutom själva medieexemplen. Den här informationen ingår med hjälp av tillägg för dataenheter. Mer information om tillägg för dataenheter finns i Data Unit Extensions.

Om du vill använda dataenhetstillägg måste du konfigurera dataströmmen i profilen så att den accepterar dem. För att ställa in en utökning av dataenhet för en dataström, följ dessa steg.

  1. Hämta en pekare till IWMStreamConfig2--gränssnittet genom att anropa metoden QueryInterface för IWMStreamConfig.
  2. Anropa IWMStreamConfig2::AddDataUnitExtension för att registrera en typ av dataenhetstillägg för strömmen.

Du kan undersöka alla typer av dataenhetstillägg som för närvarande är registrerade för en dataström genom att anropa IWMStreamConfig2::GetDataUnitExtensionCount för att hämta antalet registrerade typer av dataenhetstillägg. Sedan kan du loopa igenom alla typer med hjälp av anrop till IWMStreamConfig2::GetDataUnitExtension för var och en.

Dataenhetstillägg tilldelas en storlek när de konfigureras för en dataström. Många dataenhetstilläggssystem använder data som är en konstant storlek (vanligtvis en struktur). Du kan dock även konfigurera dina dataenhetstillägg så att de är av variabel storlek genom att ange storleken till 0xFFFF. Varje dataenhetstillägg som tilldelas vid kodningstiden kan sedan vara av valfri storlek mellan 1 byte och 65534 byte. Dataenhetstillägg med variabilitetsstorlek kallas även för dynamiska dataenhetstillägg.

Fördelen med att använda dynamiska dataenhetstillägg är att du kan bifoga tilläggsdata efter behov. Om du definierar en utökning av dataenhet med en fastställd storlek måste varje prov för dataströmmen innehålla tilläggsdata av den storleken, även om du inte har några data för vissa prov. Med dynamiska dataenhetstillägg kan du utelämna tillägg för dataenheter från vissa exempel, vilket sparar utrymme och minskar bandbreddskraven. Men om dataenhetstilläggen är av variabel storlek kan läsobjektet inte verifiera mottagna tilläggsdata mot en statisk storlek. Du måste kontrollera att tilläggsdata som du får är giltigt och inte en skadlig förvrängning av bitströmmen.

Enskilda dataenhetstillägg måste anges på exempel med hjälp av metoden INSSBuffer3::SetProperty. Mer information finns i Ange dataenhetstillägg.

Konfigurera strömmar