Ustawianie właściwości w obiekcie ContentInfo
Podczas tworzenia pliku ASF obiekt ContentInfo musi znać cechy zawartości multimedialnej, aby różne obiekty nagłówka zostały wypełnione odpowiednimi wartościami.
- ustawienia związane z zawartością w obiektu ContentInfo
- Konfigurowanie obiektu ContentInfo przy użyciu ustawień kodera
- Tematy pokrewne
Ustawienia związane z zawartością w obiekcie ContentInfo
Ustawienia konfiguracji zawartości to ustawienia strumienia, które znajdują się w profilu i określają identyfikator strumienia, typ nośnika i parametry wycieku zasobnika dla ujścia multimediów. Po ustawieniu profilu w obiekcie ContentInfo przez wywołanie IMFASFContentInfo::SetProfile, te wartości zostaną odzwierciedlone w wygenerowanym obiekcie nagłówka ASF. Aby uzyskać więcej informacji na temat tych ustawień, zobacz Tworzenie i konfigurowanie strumieni ASF.
Konfigurowanie obiektu ContentInfo przy użyciu ustawień kodera
Dane audio lub wideo multimediów cyfrowych są złożone i zajmują duże ilości pamięci. W większości przypadków zarówno audio, jak i wideo są kompresowane przy użyciu koderów przed dodaniu do pliku ASF. W programie Media Foundation kodery są implementowane jako Transformacje programu Media Foundation (MFT) z jednym wejściem i jednym wyjściem. Musisz wybrać typ nośnika wyjściowego w zależności od typu nośnika strumienia wejściowego i typu kodowania wybranego do kompresowania strumienia.
Przed sesją kodowania koder musi być skonfigurowany przez ustawienie odpowiednich właściwości w zależności od typu kodowania.
Po skonfigurowaniu kodera należy skonfigurować obiekt ContentInfo z wartościami kodera, ponieważ ASF Multiplexer i ujście multimediów ASF, które są inicjowane z wypełnionym obiektem ContentInfo, użyj ustawień, takich jak nieszczelne wartości zasobnika, aby wygenerować pakiety danych ASF. Wartości nie są zapisywane w końcowym obiekcie nagłówka ASF. Ustawienia kodowania są widoczne jako właściwości. Aby skonfigurować obiekt ContentInfo z właściwościami kodera, wykonaj następujące czynności:
- Uzyskaj wskaźnik do magazynu właściwości kodera, kierując zapytanie bezpośrednio do interfejsu kodera (interfejsIMFTransform) dla interfejsu IPropertyStore.
- Wywołaj imFASFContentInfo::GetEncodingConfigurationPropertyStore. Aby ustawić właściwości specyficzne dla strumienia, określ identyfikator strumienia w parametrze wStreamNumber; w przypadku właściwości na poziomie pliku należy przekazać wartość 0. Parametr ppIStore odbiera wskaźnik do interfejsu IPropertyStore. Otrzymany magazyn właściwości jest pusty.
- Wywołaj IPropertyStore::GetValue w koderze i pobierz wartość właściwości, określając stałe klucza właściwości. Aby uzyskać pełną listę właściwości kodowania, zobacz Codec Programming Reference.
- Wywołaj IPropertyStore::SetValue obiektu ContentInfo, aby ustawić wymaganą właściwość w magazynie właściwości.
- Powtórz kroki 3 i 4 dla każdej właściwości, którą chcesz ustawić.
Ujście multimediów ASF można utworzyć za pomocą obiektu aktywacyjnego, wywołując MFCreateASFMediaSinkActivate. Nowy obiekt ujścia multimediów jest skonfigurowany na podstawie ustawień specyficznych dla ujścia multimediów, które można ustawić w magazynie właściwości obiektu ContentInfo. W poniższej tabeli przedstawiono stałe właściwości ujścia strumienia multimedialnego ASF.
Własność | Opis |
---|---|
MFPKEY_ASFMEDIASINK_BASE_SENDTIME | Czas wysyłania wskazuje, kiedy ładunek wewnątrz lejącego się wiadra zostanie wydany. Ta wartość właściwości wskazuje czas pierwszego wysłania. Multiplekser używa tej wartości do obliczania kolejnych czasów wysyłania dla wygenerowanych pakietów i zapewnia, że dane stale przepływają przez wyciekły zasobnik. |
MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE | Ta wartość BOOL wskazuje, czy multiplekser musi automatycznie dostosować szybkość bitów, aby upewnić się, że dane nie przepełniają wyciekającego zasobnika. |
MFPKEY_ASFMEDIASINK_DRMACTION | Wskazuje to akcję DRM ujścia nośnika ASF na potrzeby generowania plików. W tej wersji obsługiwane jest tylko transkodowanie DRM. |
MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET | Ta właściwość musi być ustawiana, gdy koder decyduje, które okno buforu i szybkość transmisji bitów mają być używane. Aby ustawić te wartości, użyj interfejsu IWMCodecLeakyBucket. Należy to ustawić dla każdego strumienia w pliku ASF. |
Tematy pokrewne