Hardware: NVIDIA Jetson Xavier NX Developer Kit.
GStreamer: version 1.22.8
Plugin: nvv4l2decoder
Pipeline: v4l2src device=/dev/video0 ! nvv4l2decoder mjpeg=1 ! fakesink
Background:
Hi,
When running the above simple pipeline using gst-launch-1.0 I get no warnings. However, when running it using python (3.8.10) I get a repeating warning:
(python:538): GStreamer-WARNING **: 19:21:51.123: (../subprojects/gstreamer/gst/gstinfo.c:653):gst_debug_log_valist: runtime check failed: (object == NULL || G_IS_OBJECT (object))
My pipeline is more complex than that but I found that the cause for these warnings is the ‘nvv4l2decoder’ plugin. Adding the property ‘enable-frame-type-reporting=true’ gave me the warning in the title of this topic, for every frame. Trying to google that warning gave me nothing.
Questions:
- Why does it happen only when using python?
- How do I fix that?
Thanks!
python code:
import gi
gi.require_version("Gst", "1.0")
gi.require_version("GLib", "2.0")
from gi.repository import GLib, Gst
if __name__ == "__main__":
pipeline_str = "v4l2src device=/dev/video0 ! nvv4l2decoder mjpeg=1 enable-frame-type-reporting=true ! fakesink"
print('DEBUG 1')
Gst.init(None)
print('DEBUG 2')
pipeline = Gst.parse_launch(pipeline_str)
print('DEBUG 3')
pipeline.set_state(Gst.State.NULL)
print('DEBUG 3A')
pipeline.set_state(Gst.State.READY)
print('DEBUG 3B')
pipeline.set_state(Gst.State.PAUSED)
print('DEBUG 3C')
pipeline.set_state(Gst.State.PLAYING)
print('DEBUG 4')
try:
GLib.MainLoop().run()
except KeyboardInterrupt:
print("Ctrl+C... Exiting!")
- The different ‘set_state()’ are part of the debugging. I get the warnings even without setting to NULL / READY / PAUSE first.
Output:
DEBUG 1
DEBUG 2
DEBUG 3
DEBUG 3A
Opening in BLOCKING MODE
(python:554): GStreamer-WARNING **: 19:24:46.132: (../subprojects/gstreamer/gst/gstinfo.c:653):gst_debug_log_valist: runtime check failed: (object == NULL || G_IS_OBJECT (object))
(python:554): GStreamer-WARNING **: 19:24:46.132: (../subprojects/gstreamer/gst/gstinfo.c:653):gst_debug_log_valist: runtime check failed: (object == NULL || G_IS_OBJECT (object))
(python:554): GStreamer-WARNING **: 19:24:46.132: (../subprojects/gstreamer/gst/gstinfo.c:653):gst_debug_log_valist: runtime check failed: (object == NULL || G_IS_OBJECT (object))
(python:554): GStreamer-WARNING **: 19:24:46.132: (../subprojects/gstreamer/gst/gstinfo.c:653):gst_debug_log_valist: runtime check failed: (object == NULL || G_IS_OBJECT (object))
DEBUG 3B
DEBUG 3C
DEBUG 4
NvMMLiteOpen : Block : BlockType = 277
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 277
NvMMLiteNVMEDIADecSetAttribute:: Error status reporting set to 1
(python:554): GStreamer-WARNING **: 19:24:46.712: (../subprojects/gstreamer/gst/gstinfo.c:653):gst_debug_log_valist: runtime check failed: (object == NULL || G_IS_OBJECT (object))
(python:554): GStreamer-WARNING **: 19:24:46.712: (../subprojects/gstreamer/gst/gstinfo.c:653):gst_debug_log_valist: runtime check failed: (object == NULL || G_IS_OBJECT (object))
(python:554): GStreamer-WARNING **: 19:24:46.712: (../subprojects/gstreamer/gst/gstinfo.c:653):gst_debug_log_valist: runtime check failed: (object == NULL || G_IS_OBJECT (object))
(python:554): GStreamer-WARNING **: 19:24:46.712: (../subprojects/gstreamer/gst/gstinfo.c:653):gst_debug_log_valist: runtime check failed: (object == NULL || G_IS_OBJECT (object))
NVMEDIA: NVMEDIAFrameStatusReporting: 2115: GetFrameDecodeStatus failed!
FrameType = B
nActiveRefFrames = 0
Frame 0
NVMEDIA: NVMEDIAFrameStatusReporting: 2115: GetFrameDecodeStatus failed!
FrameType = B
nActiveRefFrames = 0
Frame 1
NVMEDIA: NVMEDIAFrameStatusReporting: 2115: GetFrameDecodeStatus failed!
FrameType = B
nActiveRefFrames = 0
Frame 2
NVMEDIA: NVMEDIAFrameStatusReporting: 2115: GetFrameDecodeStatus failed!
FrameType = B
nActiveRefFrames = 0
Frame 3
Etc.
I must say that the stream is good, despite these worrying warnings.