Vynutit vložení Key-Frame
[Funkce přidružená k této stránce, Windows Media Format 11 SDK, je starší funkce. Bylo nahrazeno čtečkou zdroje a zapisovačem úložiště . Čtečka zdroje a Zapisovač sinku jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal Source Reader a Sink Writer místo Windows Media Format 11 SDK, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]
Kodek Windows Media Video 9 podporuje vložení vynuceného klíčového snímku. Když předáte ukázku zapisovači, můžete určit, že musí být kódována jako klíčový snímek .
Chcete-li vynutit vložení klíčového snímku pro vzorek, proveďte následující kroky.
- Přidejte vyrovnávací paměť pro uložení ukázky a načtěte ukazatel na INSSBuffer rozhraní, které obsahuje vyrovnávací paměť, voláním IWMWriter::AllocateSample.
- Načtěte umístění a velikost vyrovnávací paměti vytvořené v kroku 1 voláním INSSBuffer::GetBufferAndLength.
- Zkopírujte ukázková data do umístění vyrovnávací paměti a ujistěte se, že se předaný vzorek vejde do přidělené vyrovnávací paměti. V závislosti na zdroji vašich ukázek můžete data zkopírovat pomocí různých funkcí. Pokud například kopírujete stream ze souboru AVI, můžete použít funkci AVI, AVIStreamRead.
- Aktualizujte množství dat použitých ve vyrovnávací paměti tak, aby odráželo skutečnou velikost vzorku voláním INSSBuffer::SetLength.
- Získejte ukazatel na rozhraní INSSBuffer3 voláním INSSBuffer::QueryInterface.
- Nastavíte vzorek jako vynucený klíčový snímek tím, že zavoláte metodu INSSBuffer3::SetProperty ke nastavení vlastnosti WM_SampleExtensionGUID_OutputCleanPoint. Tato vlastnost je logická hodnota; nastavte ji na TRUE.
- Předejte rozhraní vyrovnávací paměti zapisovači spolu s číslem vstupu a vzorovým časem pomocí metody IWMWriter::WriteSample.
Související témata