Re:

Nicolas Dufresne via gstreamer-devel <[email protected]>
Newsgroups gmane.comp.video.gstreamer.devel
Message-ID <[email protected]>
Hi,

quick recommendation, set a subject when posting to mailing list. Making your
post look nicer will attract more volunteers.

Le mercredi 02 août 2023 à 22:25 +0530, Sulthan Amanu a écrit :
> Dear Team,
> I hope this message finds you well. We have encountered an issue while
> attempting to stream the buffer from an rtsp location using a C++ code.
> Specifically, we are facing difficulties linking the rtspsrc and rtph265depay
> elements in the pipeline. We would greatly appreciate your assistance in
> resolving this matter.
> Here are the details of the problem:Issue Description:We have a C++ code
> responsible for handling buffer streaming from an rtsp location. The pipeline
> consists of the rtspsrc element, which is intended to fetch data from the rtsp
> location, and the rtph265depay element, which is meant to handle the H.265
> encoded data. However, despite our efforts, these elements are unable to link
> properly, resulting in the failure of buffer streaming Raw Pipeline - working
> finegst-launch-1.0 rtspsrc location = rtsp://192.168.1.10:5005/routecam
> latency = 0 ! rtph265depay ! h265parse ! d3d11h265dec ! d3d11videosink name=
> D3D11RendererC++ code had a linking issue
> gst-launch-1.0 rtspsrc location = rtsp://192.168.1.10:5005/routecam latency =
> 0 ! rtph265depay ! h265parse ! d3d11h265dec ! d3d11videosink name=
> D3D11Renderer
>  
>         GstElement* source = gst_element_factory_make("rtspsrc", "source");
>         GstElement* depay = NULL;
>         GstElement* decoder = NULL;
>         GstElement* parse = NULL;
>         GstElement* fps_sink = gst_element_factory_make("fpsdisplaysink",
> "fps_sink");
>         GstElement* videoconvert = gst_element_factory_make("videoconvert",
> "videoconvert");
>         GstElement* videoscale = gst_element_factory_make("videoscale",
> "videoscale");
There 3 are not used.

>         GstElement* Renderer = gst_element_factory_make("d3d11videosink",
> "D3D11Renderer");

[...]
>         /*if (!gst_element_link_many(source, depay, parse, decoder, Renderer,
> NULL)) {
>             g_printerr("Elements could not be linked.\n");
>             gst_object_unref(pipeline);
>             return false;
>         }*/

rtspsrc does not know statically what pads are needed. Pads will be exposed
later on when the remote stream description is received. gst-launch will connect
to the "pad-added" signal and defer the linking. You may want to go through this
tutorial in order to build your understanding around dynamic pipelines.

https://gstreamer.freedesktop.org/documentation/tutorials/basic/dynamic-pipelines.html?gi-language=c

regards,
Nicolas
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.