[FFmpeg-devel] [PATCH] libavdevice: JACK demuxer

Måns Rullgård mans
Fri Feb 27 21:00:12 CET 2009


Olivier Guilyardi <list at samalyse.com> writes:

> M?ns Rullg?rd wrote:
>> Olivier Guilyardi <list at samalyse.com> writes:
>> 
>>> Reimar D?ffinger wrote:
>>>> On Fri, Feb 27, 2009 at 06:58:55PM +0100, Olivier Guilyardi wrote:
>>>>> +jack_demuxer_extralibs="-ljack -lpthread -lrt"
>>>> just -ljack works just fine for MPlayer...
>>> Okay, corrected.
>>>
>>>>> +#define _BSD_SOURCE 1
>>>> what exactly is that one needed for?
>>> It's for usleep() from unistd.h. For some reason, it doesn't work if
>>> I add it right above #include <unistd.h>
>> 
>> What do you need usleep() for?  Sleeping in an input handler smells of
>> bad design.
>> 
>
> The jack process callback, which runs in the JACK realtime thread,
> reads audio from JACK. It then places this data into a ringbuffer,
> for the audio_read_packet() callback to fetch it, and return it in a
> AVPacket. It the ringbuffer is empty at this point,
> audio_read_packet() sleeps a period, tries again, etc.... It times
> out after 2 seconds.

As I said, bad design.  The proper solution is to use a condition
variable.

-- 
M?ns Rullg?rd
mans at mansr.com




More information about the ffmpeg-devel mailing list