Nvv4l2h264enc error depending on heights

Hi,
Using nvv4l2h264enc gstreamer, some range or input size is not working.
but when using omxh264enc, there is no problem…

width: 3328
height: 1567 ~ 1573. ← this values cause the error.
height value smaller than 1567, or larger than 1573 works find.

I have tested with two different jetson NX, it shows the same result.

this error is shown when GST_DEBUG level is 4.
v4l2allocator gstv4l2allocator.c:367:gst_v4l2_memory_group_new: buffer size 5242880 is smaller then negotiated size 5271552, this is usually the result of a bug in the v4l2 driver or libv4l.

0:00:03.671633351  9657   0x7f3400bd40 INFO               baseparse gstbaseparse.c:3942:gst_base_parse_set_passthrough:<audio_parser> passthrough: yes
0:00:03.671114884  9657   0x7f3400bc00 WARN          v4l2bufferpool gstv4l2bufferpool.c:1065:gst_v4l2_buffer_pool_start:<video_encoder:pool:src> Uncertain or not enough buffers, enabling copy threshold
0:00:03.709526658  9657   0x7f3400bc00 ERROR          v4l2allocator gstv4l2allocator.c:367:gst_v4l2_memory_group_new: buffer size 5242880 is smaller then negotiated size 5271552, this is usually the result of a bug in the v4l2 driver or libv4l.
0:00:03.709700835  9657   0x7f3400bc00 ERROR         v4l2bufferpool gstv4l2bufferpool.c:1167:gst_v4l2_buffer_pool_start:<video_encoder:pool:sink> we received 0 buffer from device '/dev/nvhost-msenc', we want at least 2
0:00:03.709803268  9657   0x7f3400bc00 ERROR             bufferpool gstbufferpool.c:564:gst_buffer_pool_set_active:<video_encoder:pool:sink> start failed
0:00:03.709867204  9657   0x7f3400bc00 WARN            v4l2videoenc gstv4l2videoenc.c:1322:gst_v4l2_video_enc_handle_frame:<video_encoder> error: Failed to allocate required memory.
0:00:03.709901284  9657   0x7f3400bc00 WARN            v4l2videoenc gstv4l2videoenc.c:1322:gst_v4l2_video_enc_handle_frame:<video_encoder> error: Buffer pool activation failed
0:00:03.709972164  9657   0x7f3400bc00 INFO        GST_ERROR_SYSTEM gstelement.c:2145:gst_element_message_full_with_details:<video_encoder> posting message: Failed to allocate required memory.
0:00:03.710129029  9657   0x7f3400bc00 INFO        GST_ERROR_SYSTEM gstelement.c:2172:gst_element_message_full_with_details:<video_encoder> posted error message: Failed to allocate required memory.
0:00:03.710196998  9657   0x7f3400bc00 INFO                 basesrc gstbasesrc.c:2965:gst_base_src_loop:<video_src> pausing after gst_pad_push() = error
0:00:03.710258246  9657   0x7f3400bc00 WARN                 basesrc gstbasesrc.c:3055:gst_base_src_loop:<video_src> error: Internal data stream error.
0:00:03.710288486  9657   0x7f3400bc00 WARN                 basesrc gstbasesrc.c:3055:gst_base_src_loop:<video_src> error: streaming stopped, reason error (-5)
0:00:03.710365094  9657   0x7f3400bc00 INFO        GST_ERROR_SYSTEM gstelement.c:2145:gst_element_message_full_with_details:<video_src> posting message: Internal data stream error.
0:00:03.710420103  9657   0x7f3400bc00 INFO        GST_ERROR_SYSTEM gstelement.c:2172:gst_element_message_full_with_details:<video_src> posted error message: Internal data stream error.
0:00:03.710524167  9657   0x7f3400bc00 WARN             collectpads gstcollectpads.c:1413:gst_collect_pads_recalculate_waiting:<collectpads0> GstCollectPads has no time segment, assuming 0 based.
0:00:03.710758376  9657   0x7f3400bc00 FIXME               basesink gstbasesink.c:3145:gst_base_sink_default_event:<multifilesink0> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
0:00:03.710926633  9657   0x7f3400bc00 INFO               GST_EVENT gstevent.c:895:gst_event_new_segment: creating segment event time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999

Could you give me the insight or expaination why this is happening?

I’m unable to tell why this happens, but as workaround you may try setting output-io-mode property of nvv4l2h264enc to mmap:

gst-launch-1.0 videotestsrc ! video/x-raw,width=320,height=240,framerate=30/1 ! nvvidconv ! 'video/x-raw(memory:NVMM),format=NV12,width=3328,height=1570' ! nvv4l2h264enc output-io-mode=2 ! h264parse ! fakesink

thank you it resolves the case…

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.