From d2103dc14a7e95b4830dd83fed7d2ec8dbcd2e37 Mon Sep 17 00:00:00 2001 From: Denis Medyantsev <44088010+denisvmedyantsev@users.noreply.github.com> Date: Tue, 14 Jan 2025 17:00:45 -0300 Subject: [PATCH] Replace nvvideotestsrc with videotestsrc (#909) --- docs/source/conf.py | 2 ++ savant/deepstream/nvinfer/build_engine.py | 15 +++++++++++++-- savant/deepstream/pipeline.py | 6 ------ savant/deepstream/pyfunc.py | 2 +- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 2e5e1534..76209183 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -20,6 +20,8 @@ copyright = '2020-2023 BWSoft Management, LLC' # author = 'BWSoft' +favicon_url = 'https://avatars.githubusercontent.com/u/102944477?s=48&v=4' + # The full version, including alpha/beta/rc tags from savant import __version__ diff --git a/savant/deepstream/nvinfer/build_engine.py b/savant/deepstream/nvinfer/build_engine.py index 1941e341..a04f8eb1 100644 --- a/savant/deepstream/nvinfer/build_engine.py +++ b/savant/deepstream/nvinfer/build_engine.py @@ -35,11 +35,18 @@ def build_engine(element: ModelElement, rebuild: bool = True): pipeline: Gst.Pipeline = Gst.Pipeline() elements = [ PipelineElement( - 'nvvideotestsrc', + 'videotestsrc', properties={ 'num-buffers': model.batch_size, }, ), + PipelineElement('nvvideoconvert'), + PipelineElement( + element='capsfilter', + properties={ + 'caps': 'video/x-raw(memory:NVMM)', + }, + ), PipelineElement( element='nvstreammux', name='muxer', @@ -53,7 +60,11 @@ def build_engine(element: ModelElement, rebuild: bool = True): last_gst_element = None for element in elements: - gst_element = GstElementFactory.create_element(element) + gst_element = ( + GstElementFactory.create_element(element) + if element.element != 'capsfilter' + else GstElementFactory.create_caps_filter(element) + ) pipeline.add(gst_element) if last_gst_element is not None: if element.element == 'nvstreammux': diff --git a/savant/deepstream/pipeline.py b/savant/deepstream/pipeline.py index 5f47add1..f49b0fbb 100644 --- a/savant/deepstream/pipeline.py +++ b/savant/deepstream/pipeline.py @@ -400,12 +400,6 @@ def _add_source(self, source: PipelineElement): # to prevent pipeline from shutting down self._suppress_eos = source.element == 'zeromq_source_bin' # nvstreammux is required for NvDs pipeline - # add queue and set live-source for rtsp - live_source = source.element == 'uridecodebin' and source.properties[ - 'uri' - ].startswith('rtsp://') - if live_source: - self.add_element(PipelineElement('queue')) self._create_muxer() # Sink diff --git a/savant/deepstream/pyfunc.py b/savant/deepstream/pyfunc.py index 734644ac..ecd6d9a1 100644 --- a/savant/deepstream/pyfunc.py +++ b/savant/deepstream/pyfunc.py @@ -182,7 +182,7 @@ def process_frame(self, buffer: Gst.Buffer, frame_meta: NvDsFrameMeta): """Process gstreamer buffer and frame metadata. Throws an exception if fatal error has occurred. - Use `savant.deepstream.utils.get_nvds_buf_surface` to get a frame image. + Use `savant.deepstream.utils.surface.get_nvds_buf_surface` to get a frame image. :param buffer: Gstreamer buffer. :param frame_meta: Frame metadata for a frame in a batch.