Hi all,

For an audio/video capturing tool we open live capture devices with the following code:

AVFormatContext* ic = nullptr;
const AVInputFormat *iformat = av_find_input_format("dshow");
AVDictionary *options = nullptr;
av_dict_set_int(&options, "audio_buffer_size", 50, 0);
av_dict_set(&options, "framerate", "30", 0);
av_dict_set(&options, "video_size", "640x360", 0);
av_dict_set(&options, "sample_rate", "48000", 0);

auto err = avformat_open_input(&ic, "video=Integrated Camera:audio=Microphone Array", iformat, &options);

Audio *sample_rate*, *framerate* and *video_size* are correctly set, but the audio_buffer_size setting is ignored, resulting in a strong audio delay. Is there something wrong in the way we set it? The documentation says, the value is given in milliseconds (not sample size).

If audio_buffer_size cannot be set for all devices, is there an api call (or struct member) where we can get the currently active audio buffer size, so we can correct this else where?

Looking at the source (dshow.c) indicated that the audio_buffer_size is a member of priv_data / dshow_ctx struct, so there is no way to access it, i fear

https://ffmpeg.org/doxygen/trunk/dshow_8c_source.html


Question also asked here:
https://stackoverflow.com/questions/78243455/libav-audio-latency-cannot-set-audio-buffer-size

Best regards,
Heiner




_______________________________________________
Libav-user mailing list
Libav-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/libav-user

To unsubscribe, visit link above, or email
libav-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to