video_decode stalls when fed with corrupted data - Raspberry Pi Forums


hello,
after trying many workarounds still strange bug using video_decode on drone project using rpi3. because of data transmission method use, decoder oftenly fed corrupted data, of time result choppy image, no apparent reason decoder stops triggering emptybufferdone event.
here code (workarounds tried still present) : https://github.com/dridri/openmaxil-cpp ... e.cpp#l110 (fillinput() called new data, containing complete frame, received)
there way enable verbose debug in il , vcos ? 'vcdbg log msg' shows nothing problem when occurs, nor 'dmesg'. enable every possible verbose loggings bug hard reproduce.

you appear missing code sucks data out of decoder , it.
reason emptythisbuffer not resulting in emptybufferdone internal fifo of codec full can't process more data. because haven't serviced output port in timely manner - codec not drop frames wait output buffers. see when people have assumed 1 buffer in, 1 buffer out, can false assumption (even hello_encode example making assumption - ought fix @ point!). framing data before feeding codec, or feeding in raw bitstream?

first suggestion add "start_debug=1" /boot/config.txt. should enable asserts on gpu, , can read "sudo vcdbg log assert".
codec logging @ 2 levels. "vcgencmd set_logging level=0xc0" verbose il level. codec more throw asserts usable in logging without firmware source, "level=0xc" turn on codec logging instead. little cautious in turning logging on - it's logging circular buffer, useful information can overwritten pretty fast if turn on much.


raspberrypi



Comments