05.09.2017 23:50, Marton Balint пише:
[...]
If I get this correctly, this patch is needed because you can only schedule 1 frame to the NDI API, therefore especially for shorter audio frames the buffer may underrun, right?. If that is the case, then I'd describe this in a bit more detail in the docs and/or the commit message.

this patch was needed to make an audio play smooth. sometimes i notices some audio issue with /reference monitoring tool/ - so it is rather research purpose to find a proper way.

if i specify 16 packets queue and use two queues i got video/audio unsync (all monitoring performed by *Studio Monitor* software).

*perfectly* working was reached by audio queue for two packets (previously processed by *asetnsamples* filter) and no-threads for video.

then i say about audio issue i mean that i *hear* by NDI software but not a logged output of reference analizer - i have only visual/cosumer method for estimating quality of audio/video packets sending...

Also, decklink uses a concept called preroll for a similar purpose, it is specified in time, and the video buffer is capable of storing preroll*2 amount of video. (Also, at the start of the stream the code only starts draining the buffer after preroll amount of video is received, there comes the name, preroll. This way the buffer won't underrun even at the start of the stream).
decklink has driver's DMAed memory for prerolled frame and decklink internally align audio/video samples to make it synchronous... so it hard to compare with hardware driven device.

I just mentioned this because you may want to support a similar concept, or specify buffer sizes in time, instead of in frames. But if not, that is fine as well.
queues is in a packet count units - AVPacket been queued.


As for the actual code - I see a lot of code duplications :), maybe you can factorize audio_thread and video_thread to use the same function, and also the code which creates these threads.
if it does not decrease code reading quality i can do that easy


But in general the code looks fine.
thanks

--
Maksym Veremeyenko

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to