Closed NIKovachev closed 1 year ago
Hi, did you manage to reproduce, do you need any other information? I can provide test environment if needed.
0:00:00.741355943 6497 0x55bee02400 ERROR mppdec gstmppdec.c:1012:gst_mpp_dec_handle_frame:
It looks like the MPP doesn't accept new packet. So: 1/ did you see this error(failed to send packet) when it failed at the first time? 2/ maybe try to increase the input timeout: gstreamer-rockchip/gst/rockchipmpp# ag MPP_INPUT_TIMEOUT_MS gstmppdec.c 42:#define MPP_INPUT_TIMEOUT_MS 2000 / Block timeout for MPP input queue /
The error when it failed for first time you can find in my initial comment, under "Initial error".
I have doubts there is a problem with the send packages as in the same time I can run another pipeline but with jpegdec without any problems. You can find that under "Running the same pipe but with jpegdec (works fine)".
Restart is fixing the problem.
1/ according to jpegdec test, the v4l2src should be fine, so i'm not sure is there any missing log in your "initial error", for example the "failed to send packet" right before v4l2src error in your "try to restart" log (i.e. the MPP failed to send packet error causing v4l2src internal error) 2/ about sending packet, it's feeding data into MPP jpeg decoder, it has nothing to do with your jpegdec pipeline. likely something wrong in the MPP driver, or just performance issue that reach the 2 second timeout.
anyway, please try to increase the 2 second timeout.
can I pass MPP_INPUT_TIMEOUT_MS value to gst-launch somehow?
you can try to use env:
+++ b/gst/rockchipmpp/gstmppdec.c
@@ -39,7 +39,7 @@ G_DEFINE_ABSTRACT_TYPE (GstMppDec, gst_mpp_dec, GST_TYPE_VIDEO_DECODER);
GST_TYPE_MPP_DEC, GstMppDecClass))
#define MPP_OUTPUT_TIMEOUT_MS 200 /* Block timeout for MPP output queue */
-#define MPP_INPUT_TIMEOUT_MS 2000 /* Block timeout for MPP input queue */
+//#define MPP_INPUT_TIMEOUT_MS 2000 /* Block timeout for MPP input queue */
#define MPP_TO_GST_PTS(pts) ((pts) * GST_MSECOND)
@@ -955,7 +955,7 @@ gst_mpp_dec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame)
GstMapInfo mapinfo = { 0, };
GstBuffer *tmp;
GstFlowReturn ret;
- gint timeout_ms = MPP_INPUT_TIMEOUT_MS;
+ gint timeout_ms = g_getenv ("MPP_INPUT_TIMEOUT_MS");
indeed it happen to be a camera issue! Thanks for your help!
Hi, after running decode with mppjpegdec for several minutes it errors and on restart the below appears. I'm using RK3588 ( Firefly AIO-3588Q)
Initial error:
When I try to restart:
Running the same pipe but with jpegdec (works fine)