Re: quartz: COM cleanup for Parser_OutputPin
May 18, 2012
3:27 p.m.
Hello Aric,
On 05/18/2012 04:27 PM, Aric Stewart wrote:
> diff --git a/dlls/quartz/avisplit.c b/dlls/quartz/avisplit.c
> index 5027e90..bac1b24 100644
> --- a/dlls/quartz/avisplit.c
> +++ b/dlls/quartz/avisplit.c
> @@ -288,7 +288,7 @@ static HRESULT AVISplitter_next_request(AVISplitterImpl *This, DWORD streamnumbe
>
> static HRESULT AVISplitter_Receive(AVISplitterImpl *This, IMediaSample *sample, DWORD streamnumber)
> {
> - Parser_OutputPin *pin = (Parser_OutputPin *)This->Parser.ppPins[1+streamnumber];
> + Parser_OutputPin *pin = impl_Parser_OutputPin_from_IPin(This->Parser.ppPins[1+streamnumber]);
this isn't right. impl_from_... should be used only from methods of the
respective implementation. You can either:
- Make This->Parser.ppPins an array of Parser_OutputPin instead of IPin
- Or if you need to support application provided IPin then you'll need
an unsafe_impl_from_...
> HRESULT hr;
> LONGLONG start, stop, rtstart, rtstop;
> StreamData *stream = &This->streams[streamnumber];
bye
michael
May 2012
4:06 p.m.
New subject: quartz: COM cleanup for Parser_OutputPin
Ahh, my understanding of COM cleanup grows...
-aric
On 5/18/12 10:27 AM, Michael Stefaniuc wrote:
> Hello Aric,
>
> On 05/18/2012 04:27 PM, Aric Stewart wrote:
>> diff --git a/dlls/quartz/avisplit.c b/dlls/quartz/avisplit.c
>> index 5027e90..bac1b24 100644
>> --- a/dlls/quartz/avisplit.c
>> +++ b/dlls/quartz/avisplit.c
>> @@ -288,7 +288,7 @@ static HRESULT AVISplitter_next_request(AVISplitterImpl *This, DWORD streamnumbe
>>
>> static HRESULT AVISplitter_Receive(AVISplitterImpl *This, IMediaSample *sample, DWORD streamnumber)
>> {
>> - Parser_OutputPin *pin = (Parser_OutputPin *)This->Parser.ppPins[1+streamnumber];
>> + Parser_OutputPin *pin = impl_Parser_OutputPin_from_IPin(This->Parser.ppPins[1+streamnumber]);
> this isn't right. impl_from_... should be used only from methods of the
> respective implementation. You can either:
> - Make This->Parser.ppPins an array of Parser_OutputPin instead of IPin
> - Or if you need to support application provided IPin then you'll need
> an unsafe_impl_from_...
>
>> HRESULT hr;
>> LONGLONG start, stop, rtstart, rtstop;
>> StreamData *stream =&This->streams[streamnumber];
>
> bye
> michael
5060
Age (days ago)
5060
Last active (days ago)
1 comments
2 participants
participants (2)
-
Aric Stewart -
Michael Stefaniuc