The whole point of this email is to verify I've encountered a bug, and not that I'm doing some stupid.
I've been successfully using the Intel Media SDK GStreamer element from their repo here: https://github.com/intel/gstreamer-media-SDK/tree/topic_linux_and_window for a while now. My successful setup is I've got a camera connected to a machine (a Windows machine), and then I'm using the GStreamer's RTSP server to take the camera feed, encode it on the GPU (with the help of the Intel GStreamer h265/h264 plugins), and then broadcast it. There were a few bumps along the way (mostly bugs and issues in their code), but I've since got it resolved and have things working. GStreamer is awesome. My point thus far is I've been able to get these Intel plugins to work with the rest of GStreamer. I've been given another use case, and I'm encountering what appears to be another issue in Intel's code. I would normally think I'm doing something dumb, but given the # of issues I ran into when getting their elements to work in the aforementioned setup, I'm considering I've run into another bump. Essentially I'm NOW writing a video player, and need to decode traffic. So I'm on the player side of the equation now. Again, I'm using the Intel Media SDK to decode. Now, according to gst-inspect, the output pins for either the h264 or h265 intel decoders should produce BGRA. This is important because the user interface control I'm using doesn't support NV12, and requires a BGRA buffer. I don't want to do the conversion from NV12 to RGB* on the CPU 'cause that defeats the whole reason I'm using the Intel Media SDK in the first place. Example output from gst-inspect on their h265 element: Pad Templates: SRC template: 'src' gst-launch-1.0.exe rtspsrc location=rtsp://address/live ! decodebin ! 'video/x-raw(memory:MFXSurface),format=NV12' ! autovideosink If I change the format to BGRA, however, the player doesn't pop up: gst-launch-1.0.exe rtspsrc location=rtsp://address/live ! decodebin ! 'video/x-raw(memory:MFXSurface),format=NV12' ! autovideosink What's weird is I see both the CPU and GPU chewing away doing the above script, but nothing displays. By dumping out the dot files, I see the pipeline fails to successfully enter the PLAY state. Digging further... If I attach and debug the Intel MFX element and run the above script that fails, I see the following line fails: https://github.com/intel/gstreamer-media-SDK/blob/94ab6055b60e9d67a3ccb6b13fddb6c3076e204d/gst/mfx/gstmfxdec.c#L424. It looks like this: return gst_video_decoder_finish_frame (vdec, frame); The function returns GST_FLOW_NOT_NEGOTIATED. Setting GST_DEBUG=4, I see the following warning which further indicates that some kind of negotiation failed: WARN GST_PADS gstpad.c:4230:gst_pad_peer_query:<mfxdec_h264-0:src> could not send sticky events What I need is confirmation that the above gst-launch commands OUGHT to give me BGRA at the autovideosink if things were working correctly in the Intel decoders. Everything thus far seems to indicate I'm running into some bug. To be doubly sure, I see the same behavior when I replace autovideosink with appsink and write some C++ around it. Thanks for your expertise and extra pair of eyes. _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Doh! I noticed a typo in my email. The second gst-launch script should be: gst-launch-1.0.exe rtspsrc location=rtsp://address/live ! decodebin ! 'video/x-raw(memory:MFXSurface),format=BGRA' ! autovideosink My bad. On Tue, Jun 18, 2019 at 12:37 PM Ben Rush <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |