[FFmpeg-devel] [PATCH 2/2] dshow: handle events in graph

Don Moir donmoir at comcast.net
Sun Dec 9 18:45:05 CET 2012


> Hi,
>
> On Thu, Dec 6, 2012 at 11:53 AM, Don Moir <donmoir at comcast.net> wrote:
>> Yeah missed that with EAGAIN return value. I was trying to avoid checking
>> the events every loop and wait for the event to be signaled. I tested your
>> code change for performance and it was fine. I think I prefer the following
>> though because its a bit cleaner:
>>
>> /**
>> * Checks media events from DirectShow and returns non-zero on error or EOF.
>> * Also purges all events that might be in the event queue to stop the
>> trigger of
>> * event notification.
>> */
>> static int dshow_check_event_queue(struct dshow_ctx *ctx)
>> {
>>    LONG_PTR p1, p2;
>>    long code;
>>    while (IMediaEvent_GetEvent(ctx->media_event, &code, &p1, &p2, 0) !=
>> E_ABORT) {
>>        if (code == EC_COMPLETE || code == EC_DEVICE_LOST || code ==
>> EC_ERRORABORT)
>>            ctx->eof = 1;
>>        IMediaEvent_FreeEventParams(ctx->media_event, code, p1, p2);
>>    }
>>    return ctx->eof;
>> }
>>
>> ...
>>         if (!pktl) {
>>            if (dshow_check_event_queue(ctx))
>>                break;
>>            else if (s->flags & AVFMT_FLAG_NONBLOCK)
>>                 return AVERROR(EAGAIN);
>>            else
>>                 WaitForMultipleObjects(2, ctx->event, 0, INFINITE);
>>         }
>> ...
>>
>> Also appears some effort is being done to remove unneeded braces.
>
> It is preferable for simple functions not to have any side-effects if
> possible (like setting a field in the context). So just using the
> return value is a better choice for now, while the function is still
> simple.
>
> About the braces, they're already there and there's no harm in leaving
> them. If we remove them now, and we have to add another statement
> later on, we'll have to add them back. This would just clutter the
> diffs. And it should be done in a separate (non-functionality-related)
> commit anyways.

Ok some people are trying to remove braces and some keep adding them... I hope its not a brain freeze if you have to add them later 
at some separate time :) For me personally it just adds to the code clutter which is already prevalent.

Anyway, I believe your patch is ok and hope it gets applied. 



More information about the ffmpeg-devel mailing list