[PATCH 7/7] amstream: Get rid of *_stream_create_and_initialize functions and Use CoCreateInstance, Initialize, and JoinAMMultiMediaStream instead.

Anton Baskanov baskanov at gmail.com
Sat May 23 08:57:19 CDT 2020


On Saturday, 23 May 2020 04:11:17 +07 you wrote:
> On 5/22/20 10:40 AM, Anton Baskanov wrote:
> > @@ -377,18 +379,26 @@ static HRESULT WINAPI
> > multimedia_stream_AddMediaStream(IAMMultiMediaStream *ifac> 
> >      }
> >      
> >      if (IsEqualGUID(PurposeId, &MSPID_PrimaryVideo))
> > 
> > -        hr =
> > ddraw_stream_create_and_initialize((IMultiMediaStream*)iface, PurposeId,
> > stream_object, This->type, &pStream); +        clsid =
> > &CLSID_AMDirectDrawStream;
> > 
> >      else if (IsEqualGUID(PurposeId, &MSPID_PrimaryAudio))
> > 
> > -        hr =
> > audio_stream_create_and_initialize((IMultiMediaStream*)iface, PurposeId,
> > stream_object, This->type, &pStream); +        clsid =
> > &CLSID_AMAudioStream;
> > 
> >      else
> >      
> >          return MS_E_PURPOSEID;
> > 
> > -    if (SUCCEEDED(hr))
> > +    hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER,
> > &IID_IAMMediaStream, (void **)&pStream); +    if (FAILED(hr))
> > +        return hr;
> > +
> > +    hr = IAMMediaStream_Initialize(pStream, stream_object, dwFlags,
> > PurposeId, This->type); +    if (FAILED(hr))
> > 
> >      {
> > 
> > -        add_stream(This, pStream, ret_stream);
> > 
> >          IAMMediaStream_Release(pStream);
> > 
> > +        return hr;
> > 
> >      }
> > 
> > +    add_stream(This, pStream, ret_stream);
> > +    IAMMediaStream_Release(pStream);
> > +
> > 
> >      return hr;
> >  
> >  }
> 
> I guess I'm not very opposed to this, but it'd be nice to know at least
> if there's an application that depends on this structure.

I don't know any such application, I just wanted to use this in my seeking 
tests, so that I can add more than 2 streams. 






More information about the wine-devel mailing list