No subject

Nicolas Dufresne nicolas at ndufresne.ca
Fri Aug 4 16:25:37 UTC 2023


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20230804/ce41db47/attachment.htm>


More information about the gstreamer-devel mailing list