"Live capture caching (ms)" setting of 0 not working
When using VLC to capture from a web cam some arbitrary minimum caching period is imposed that is higher than the setting made in the advanced settings area. Setting this value to 0 should mean that no buffering will occur. However, it seems like a buffer of approximately 300 milliseconds is used.
To provide further information, I constructed a Java app using VLCJ that captures from a web cam. In this test project I include an argument of --live-caching=0 when capturing from the camera. I also attach a MediaPlayerEventListener using addMediaPlayerEventListener() so that I can log some important events. Specifically, I log the buffering event. Here is the important excerpt from the generated log:
buffering:1199:0.0 buffering:1213:11.0 buffering:1280:33.0 buffering:1357:55.0 buffering:1435:83.0 buffering:1520:100.0
In each line, the first integer is the number of milliseconds from the start time of my test app. We see that a little over one second from the start of the app the MediaPlayer begins to buffer data from the camera. Then, about another 300 milliseconds later, the buffer has gone from 0% full to 100% full.
So, there is a defect in one of two places: a) The setting for the capture cache period should be honored but is not. b) The setting for the capture cache period should not be honored because a minimum value is imposed. If this is the case then the user interface should not allow the value to be set below whatever this minimum imposed value is and the minimum value should be published.