перечисление _MFT_OUTPUT_DATA_BUFFER_FLAGS (mftransform.h)
Определяет флаги для метода IMFTransform::P rocessOutput .
Синтаксис
typedef enum _MFT_OUTPUT_DATA_BUFFER_FLAGS {
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 0x1000000,
MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 0x100,
MFT_OUTPUT_DATA_BUFFER_STREAM_END = 0x200,
MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 0x300
} ;
Константы
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE Значение: 0x1000000 MFT по-прежнему может создавать выходные данные из этого потока, не получая дополнительных входных данных. Вызовите ProcessOutput еще раз, чтобы обработать следующий пакет входных данных. |
MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE Значение: 0x100 Формат в этом выходном потоке изменился или для этого потока используется новый предпочтительный формат. Если этот флаг установлен, MFT очищает тип мультимедиа для потока. Метод ProcessOutput возвращает MF_E_TRANSFORM_STREAM_CHANGE и не создает выходные данные для потока. Дальнейшие вызовы IMFTransform::P rocessInput или ProcessOutput завершаются ошибкой, пока клиент не установит новый тип носителя. |
MFT_OUTPUT_DATA_BUFFER_STREAM_END Значение: 0x200 MFT удалил этот поток вывода. Выходной поток должен иметь флаг MFT_OUTPUT_STREAM_REMOVABLE. (См . IMFTransform::GetOutputStreamInfo.) Когда MFT удаляет выходной поток, MFT возвращает этот код состояния при следующем вызове ProcessOutput после создания последнего выходного примера. Когда MFT возвращает этот код состояния, он не изменяет образец, содержащийся в элементе pSampleструктуры MFT_OUTPUT_DATA_BUFFER , и не выделяет новый пример, если pSample имеет значение NULL. После возврата этого кода состояния идентификатор потока для этого выходного потока становится недействительным. Клиент больше не должен предоставлять структуру MFT_OUTPUT_DATA_BUFFER для этого потока при вызове ProcessOutput. Метод ProcessOutput не возвращает MF_E_TRANSFORM_STREAM_CHANGE при завершении потока, если в другом потоке не требуется этот код возврата. |
MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE Значение: 0x300 Для этого потока нет готового примера. Этот флаг может быть установлен, если MFT имеет несколько потоков вывода, которые создают данные в разное время. Он устанавливает этот флаг для каждого потока, который не готов к получению данных. Он не изменяет выходной пример, содержащийся в элементе pSampleструктуры MFT_OUTPUT_DATA_BUFFER , и не выделяет новый пример pSample имеет значение NULL. Если потоки не готовы к выводу, MFT не устанавливает этот флаг. Вместо этого метод ProcessOutput возвращает MF_E_TRANSFORM_NEED_MORE_INPUT. |
Комментарии
Значения в этом перечислении не являются битовыми флагами, поэтому их не следует объединять с побитовой или. Кроме того, вызывающий объект должен проверить наличие этих флагов с помощью оператора равенства, а не битового И:
// Correct.
if (Buffer.dwStatus == MFT_OUTPUT_DATA_BUFFER_STREAM_END)
{
...
}
// Incorrect.
if ((Buffer.dwStatus & MFT_OUTPUT_DATA_BUFFER_STREAM_END) != 0)
{
...
}
Требования
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Верхняя часть | mftransform.h |