Page 1 of 1

ImageBufferCount 20 is too small

Posted: Wed Mar 20, 2019 3:24 am
by markwny153
I just started getting this error after installing 1.33.4 on my ODROID-HC2 today. The remainder of the message says that the count needs to be at least 81 or decrease the time between keyframes. I had installed 1.33.3 yesterday, and I don't get that error when I run with that version. Unfortunately, I deleted the source code and that's why I grabbed another sd card and did another install. I was surprised when I saw the version was bumped over night. Anyway, I doubt that the camera is sending keyframes at a different rate than when I run with 1.33.3.

If I try to bump the buffers up to 90, then I get a slew of errors of the type: Shared data on initialised by capture daemon for monitor...
Is there something else I can try?

If you are wondering why I'm not using 1.32, it did not work for my configuration. I found this post: viewtopic.php?f=38&t=28052 which is the same issue I was having.

My configuration is: ODROID-HC2
Linux distribution: Armbian_5.75_Odroidxu4_Ubuntu_bionic_next_4.14.94
Camera: Lorex LNE4422B, h.264, 2688x1520, 20 fps

Re: ImageBufferCount 20 is too small

Posted: Thu Mar 21, 2019 7:56 pm
by asker
I believe that is because that code handling was recently added to ZM in zm_ffmeg.cpp.
I'm not 100% sure but the reason this was added, I believe was due to the fact the event recordings were missing out on data before a keyframe was received for certain configurations (H264 passthrough, maybe?). Isaac can speak authoritatively on this.

Re: ImageBufferCount 20 is too small

Posted: Thu Mar 21, 2019 9:43 pm
by iconnor
Yeah in H264 passthrough mode, we need to store every frame since the last keyframe because when we start writing out an event it has to start on a keyframe.

I am working to improve this. I think we can probably use actual encode on the first frame to get a keyframe, and then do passthrough from then on.

but for now, that line is telling us that we have hit the end of our buffer before seeing another keyframe.

If you don't want to waste so much ram, increase the frequency of your keyframes in the camera.