Apologies, replying to my own post again:

- I should have specified, what I am really interested in is the output from dv_decode_full_audio(). The internal format of the dv clip is irrelevant to me.


On Mon, Oct 6, 2008 at 7:46 PM, salsaman <salsaman@gmail.com> wrote:

On Mon, Oct 6, 2008 at 7:41 PM, salsaman <salsaman@gmail.com> wrote:

On Mon, Sep 22, 2008 at 2:40 PM, Dan Dennedy <dan@dennedy.org> wrote:
On Mon, Sep 22, 2008 at 10:08 AM, salsaman <salsaman@gmail.com> wrote:
> OK, thanks. Actually I already figured most of this out while I was waiting
> for a reply !
> Now I would like to know how to get the audio values (rate, channels, sample
> size, signedness and endianness).

Please see the source code of playdv, kino, MLT, gstreamer, or other
users of libdv.

Thanks for the advice, but I was hoping for a bit less cryptic answer !

What I found was generally:
- read in a full frame
- call dv_parse_audio_header()
- use functions like dv_get_frequency()

However, a couple of things:

- dv_parse_audio_header() appears to be in libdv and working, however it is not defined in the header file.
- there do not seem to be functions to get the signedness, endianess or interleaf (interleaved/non-interleaved) for the audio. Are these values fixed in the dv standard ?

+ 1 other point, I was presuming that dv_get_samples() would return the sample size in bits, however it appears to return the number of samples per frame (which can of course be calculated as frequency/fps, so not very useful).

Should one assume that there are 16 bits per sample (or 20, 24 or 32).

Sorry if my questions appear stupid, but I know nothing about dv format - I am approaching it from simply a programmatical point of view.


Thanks in advance for any help, it is much appreciated.