[PATCH v2 1/5] winegstreamer: Require media source's IMFByteStream to be seekable.

Zebediah Figura z.figura12 at gmail.com
Mon Nov 2 14:40:00 CST 2020


On 11/2/20 1:34 PM, Derek Lesho wrote:
> If there is ever a need to support an un-seekable bytestream, we'll have to use GstAppSrc.
> 

Well, no, not really, you can push the buffers yourself. More saliently,
I'm not sure that GstAppSrc provides a lot of benefit, either. In order
for downstream parser elements to use pull mode, you need to use
"random-access" scheduling, but that requires that you're able to seek
the upstream source, so you'd basically need to use two different code
paths anyway.

> Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
> ---
>  dlls/winegstreamer/media_source.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
> index dbc656a24da..df5dedd484d 100644
> --- a/dlls/winegstreamer/media_source.c
> +++ b/dlls/winegstreamer/media_source.c
> @@ -1232,6 +1232,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_
>  
>      struct media_source *object = heap_alloc_zero(sizeof(*object));
>      IMFStreamDescriptor **descriptors = NULL;
> +    DWORD bytestream_caps;
>      unsigned int i;
>      HRESULT hr;
>      int ret;
> @@ -1239,6 +1240,12 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_
>      if (!object)
>          return E_OUTOFMEMORY;
>  
> +    if (FAILED(hr = IMFByteStream_GetCapabilities(bytestream, &bytestream_caps)))
> +        return hr;
> +
> +    if (!(bytestream_caps & MFBYTESTREAM_IS_SEEKABLE))
> +        return MF_E_BYTESTREAM_NOT_SEEKABLE;
> +
>      object->IMFMediaSource_iface.lpVtbl = &IMFMediaSource_vtbl;
>      object->async_commands_callback.lpVtbl = &source_async_commands_callback_vtbl;
>      object->ref = 1;
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20201102/bf5122b7/attachment.sig>


More information about the wine-devel mailing list