Latency problem with long latencies

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 28.03.2016 16:27, Pierre-Louis Bossart wrote:
> On 3/20/16 2:24 PM, Georg Chini wrote:
>> On 20.03.2016 19:13, Alexander E. Patrakov wrote:
>>> 20.03.2016 22:41, Georg Chini пиÑ?еÑ?:
>>>> Hello,
>>>>
>>>> I am still working on module-loopback and hit a problem that I cannot
>>>> explain.
>>>> When running a HDA card with long latency (333ms) I see that the
>>>> resulting
>>>> latency is not stable but varies around 300 usec. What is worse, the
>>>> changes
>>>> in latency are not even reported, module-loopback sees a completely
>>>> stable
>>>> value ( +/-10 usec).
>>>> My setup: I have a bitscope dual channel USB oscilloscope attached to
>>>> another
>>>> machine. This device also has a function generator that I set to 1kHz
>>>> rectangle.
>>>> The signal is input to the HDA card and fed to the output of the same
>>>> card via
>>>> module-loopback. Input and output signal are measured using the
>>>> oscilloscope.
>>>> The movement of the edge of the output signal now shows the "latency
>>>> jitter"
>>>> which can be made visible by using the overlay mode of the 
>>>> oscilloscope.
>>>>
>>>> The result for HDA (module-loopback running with 500ms adjust time
>>>> and 1s
>>>> latency) is shown at http://georg.chini.tk/hda_333ms_3.png. Some of 
>>>> the
>>>> original
>>>> input signal is somehow fed into the output signal, don't know where
>>>> this happens,
>>>> so please ignore it as it has no impact on the result.
>>>
>>> No idea either, just some blind pokes...
>>>
>>> 1. Are you using the trivial resampler? Does anything change if you
>>> change the resampler type?
>>> 2. Do you get the same trace with a "weird" latency (not something
>>> that can be derived from one second by multiplication or division by
>>> small factors)? E.g. something like 318 ms.
>>>
>>> To me, it looks like something is sometimes creating an
>>> off-by-one-sample error when copying the data. Which is exactly the
>>> job of the trivial resampler, that's why the question.
>
> why is a resampler needed when doing a loopback on the same card?

The resampler is there for the more general case when the two cards
are different. I just have no system with two HDA cards, so I have to
do my tests HDA -> HDA on the same card.

>
>>>
>> Hi Alexander,
>>
>> no, I am working with speex-float-5. I just re-tested zitaj-bridge, and
>> I was wrong,
>> it shows the same behavior. I am also seeing double lines, so it is
>> probably deeper
>> down in the alsa driver.
>> I also tested your 318 ms - same result.
>> To rule out artifacts produced by the oscilloscope I fed the input
>> signal directly to the
>> second channel - this looks fine.
>> The choice of the resampler does no longer have any impact on the
>> performance
>> of module-loopback. For small latencies (70ms - 100ms) I can keep the
>> latency jitter
>> now well below 100 usec for HDA -> USB on my system, this corresponds 
>> to a
>> difference of 35 mm in hearing distance. When the USB device is run in
>> batch mode
>> the result is even better but less robust to changes in system load.
>> zitaj-bridge is still somewhat better for HDA -> USB and USB -> HDA (~50
>> usec)
>> but always fails after a few minutes complaining about excessive timing
>> errors
>> even for HDA -> HDA on the same card.
>>
>>
>>
>> _______________________________________________
>> pulseaudio-discuss mailing list
>> pulseaudio-discuss at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux