Método IMFMediaStream::RequestSample (mfidl.h)
Solicita un ejemplo del origen multimedia.
Sintaxis
HRESULT RequestSample(
[in] IUnknown *pToken
);
Parámetros
[in] pToken
Puntero a la interfaz IUnknown a un objeto que se usa como token para la solicitud. El autor de la llamada debe implementar este objeto. Este parámetro puede ser NULL. Vea la sección Comentarios.
Valor devuelto
El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.
Código devuelto | Descripción |
---|---|
|
El método se ha llevado a cabo de forma correcta. |
|
Se alcanzó el final de la secuencia. |
|
El origen multimedia se detiene. |
|
Se ha llamado al método Shutdown del origen. |
Comentarios
Si pToken no es NULL, la secuencia multimedia llama a AddRef en pToken y coloca el token en una cola primero en salir.
Cuando el ejemplo siguiente esté disponible, la secuencia de flujo multimedia hace lo siguiente:
- Extrae el primer token de la cola.
- Establece el atributo MFSampleExtension_Token en el ejemplo multimedia. Los datos del atributo son un puntero al objeto de token.
- Envía un evento MEMediaSample . Los datos del evento son un puntero a la interfaz IMFSample del ejemplo multimedia.
- Llama a Release en el token.
El autor de la llamada debe supervisar el recuento de referencias en el token de solicitud. Si la secuencia multimedia envía un evento MEMediaSample , obtenga el atributo MFSampleExtension_Token del ejemplo y coincida con el valor del atributo con el token. Si el recuento de referencias del token cae en cero y no recibió un evento MEMediaSample, significa que se quitó la solicitud.
Dado que la canalización de Media Foundation es multiproceso, el método RequestSample del origen podría llamarse después de que el origen se haya detenido. Si se detiene el origen multimedia, el método debe devolver MF_E_MEDIA_SOURCE_WRONGSTATE. La canalización no trata este código de retorno como una condición de error. Si el origen devuelve cualquier otro código de error, la canalización la trata como un error irrecuperable y detiene la sesión.
Si el origen multimedia está en pausa, el método se realiza correctamente, pero la secuencia no entrega el ejemplo hasta que se vuelva a iniciar el origen.
Si un origen multimedia encuentra un error de forma asincrónica durante el procesamiento de datos, debe indicar el error de una de las maneras siguientes (pero no ambas):
- Devuelve un código de error de la siguiente llamada a RequestSample .
- Enviar un evento MEError .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | mfidl.h |
Library | Mfuuid.lib |