Re: [ecasound] Inaccurate reporting of length
Brought to you by:
kaiv
|
From: linux m. 4 <lin...@ne...> - 2009-10-04 03:22:01
|
>> If you run...
>> ecasound -c -f:16,1,44100 -i:jack,system -f:16,1,44100 -o:test.wav
>>
>> Then do...
>> ecasound ('h' for help)> t
>> ecasound ('h' for help)> s
>>
>> Then do...
>> ecalength test.wav
>> It shows an inaccurate length
> Hmm, this is actually a feature. Duration of RIFF WAVE files is stored
> in the file header. Ecasound updates this header only when the file is
> closed (e.g. 'cs-disconnect' or when terminating ecasound).
>
> So if you use an external program (e.g. ecalength) to check the file
> length, the result will be incorrect until ecasound updates the header
> (e.g. 'cs-disconnect').
>> Again... this can be troublesome if you are writing a Front End and need
>> an updated length without interrupting the chainsetup.
> Couldn't you use ai-get-length/ao-get-length commands to get the file
> length (these don't depend on updating the RIFF header)?
>
> Alternatively ecasound could update all file headers anytime transport
> is stopped, but this is not entirely trivial to implement (e.g. in case
> ecasound is trying to chase the JACK transport position, this could
> result in quite frequent header updates -- I'm sure there are other
> similar cornercases that need to be considered).
Yeah, that would be making things work harder than they need to. I had
already worked a solution. I just thought that a bug crept up related to
the workaround, but I think I fixed it. I don't think it was related to
the workaround.
Anyways, things work fine now.
Thanks,
Rocco
|