[FFmpeg-devel] [PATCH] ffplay: more robust mutex, condition variable handling

Ganesh Ajjanagadde gajjanagadde at gmail.com
Thu Oct 1 14:16:43 CEST 2015


On Sep 30, 2015 7:50 PM, "Marton Balint" <cus at passwd.hu> wrote:
>
>
> On Tue, 29 Sep 2015, Ganesh Ajjanagadde wrote:
>
>> SDL_CreateMutex and SDL_CreateCond can fail:
>> https://wiki.libsdl.org/SDL_CreateMutex.
>> This patch makes handling more robust in one instance.
>>
>> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
>> ---
>> ffplay.c | 17 +++++++++++++----
>> 1 file changed, 13 insertions(+), 4 deletions(-)
>>
>> diff --git a/ffplay.c b/ffplay.c
>> index 3c2407f..9466996 100644
>> --- a/ffplay.c
>> +++ b/ffplay.c
>> @@ -451,12 +451,21 @@ static int packet_queue_put_nullpacket(PacketQueue
*q, int stream_index)
>> }
>>
>> /* packet queue handling */
>> -static void packet_queue_init(PacketQueue *q)
>> +static int packet_queue_init(PacketQueue *q)
>> {
>>     memset(q, 0, sizeof(PacketQueue));
>>     q->mutex = SDL_CreateMutex();
>> +    if (!q->mutex) {
>> +        av_log(q, AV_LOG_FATAL, "SDL_CreateMutex(): %s\n",
SDL_GetError());
>> +        return AVERROR(ENOMEM);
>> +    }
>>     q->cond = SDL_CreateCond();
>> +    if (!q->cond) {
>> +        av_log(q, AV_LOG_FATAL, "SDL_CreateCond(): %s\n",
SDL_GetError());
>> +        return AVERROR(ENOMEM);
>> +    }
>>     q->abort_request = 1;
>> +    return 0;
>> }
>>
>> static void packet_queue_flush(PacketQueue *q)
>> @@ -3136,9 +3145,9 @@ static VideoState *stream_open(const char
*filename, AVInputFormat *iformat)
>>     if (frame_queue_init(&is->sampq, &is->audioq, SAMPLE_QUEUE_SIZE, 1)
< 0)
>>         goto fail;
>>
>> -    packet_queue_init(&is->videoq);
>> -    packet_queue_init(&is->audioq);
>> -    packet_queue_init(&is->subtitleq);
>> +    if (packet_queue_init(&is->videoq) || packet_queue_init(&is->audioq)
>> +        || packet_queue_init(&is->subtitleq))
>> +        goto fail;
>
>
> Only cosmetics, but maybe you could use ffmpeg-api-like less-than-zero
error checking with common indentation:
>
> if (packet_queue_init() < 0 ||
>     packet_queue_init() < 0 ||
>     packet_queue_init() < 0)

Thanks for the style tip. I am currently away from a machine, will get to
it in a few days.

>
> Regards,
> Marton
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


More information about the ffmpeg-devel mailing list