Framtvinga infogning av Key-Frame
[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.]
Windows Media Video 9 codec stöder tvingad infogning av nyckelramar. När du skickar ett exempel till skrivaren kan du ange att det måste kodas som en nyckelram.
Utför följande steg för att framtvinga infogning av nyckelramar för ett exempel.
- Allokera en buffert för att lagra exemplet och hämta en pekare till INSSBuffer--gränssnittet som innehåller bufferten genom att anropa IWMWriter::AllocateSample.
- Hämta platsen och storleken på bufferten som skapades i steg 1 genom att anropa INSSBuffer::GetBufferAndLength.
- Kopiera dina exempeldata till buffertplatsen och se till att det skickade exemplet får plats i den allokerade bufferten. Beroende på källan till dina exempel kan du använda en mängd olika funktioner för att kopiera data. Om du till exempel kopierar en dataström från en AVI-fil kan du använda AVI-funktionen AVIStreamRead.
- Uppdatera mängden data som används i bufferten för att återspegla den faktiska storleken på exemplet genom att anropa INSSBuffer::SetLength.
- Hämta en pekare till gränssnittet INSSBuffer3 genom att anropa INSSBuffer::QueryInterface.
- Ange exemplet som en tvingad nyckelram genom att anropa metoden INSSBuffer3::SetProperty för att ange egenskapen WM_SampleExtensionGUID_OutputCleanPoint. Den här egenskapen är ett booleskt värde. ställ in den på TRUE.
- Skicka buffertgränssnittet till skrivaren tillsammans med indatanumret och exempeltiden med hjälp av metoden IWMWriter::WriteSample.
Relaterade ämnen