AppSrc internal error/caps

Gary Metalle Gary.Metalle at rvl.co.uk
Mon Oct 5 09:57:40 UTC 2020


Hi


I am having trouble getting a pipeline working for a video decoding path in my app:


The pipeline is:


gstappsrc ! h264parse ! queue ! avdec_h264 ! videoconvert ! identity name=frame-count ! autovideosink sync=false​


As a test I have used the following pipeline to check this works and the last half of the pipeline is the same as the one I have in the code.

I find that when you play around with creating pipelines in gst-launch you get away without having to set any caps and stuff tends to work when you just link elements together. Doing it in code however, it seems more important to get the caps right. Maybe it's just because I'm using an AppSrc. The data I'm pushing into the appsrc is definitely h264 and lately I've even seen 3 or 4 frames at the display before it stops (I have inserted an identity element to count raw video frames from the decoder output).


I have set the caps on the appsrc to just "video/x-h264" because that's all I can do really and that's all the h264parse needs as far as I can tell.


gst-launch-1.0 -v videotestsrc is-live=true ! "video/x-raw, width=640, height=480, framerate=15/1"! videoconvert ! queue ! x264enc ! identity ! h264parse ! queue ! avdec_h264 ! videoconvert ! identity name=frame-count ! autovideosink sync=false


Here's pad of the log where I've turned on some GST_CAPS debug:


0:00:06.281220309 74226 0x563296bc4590 DEBUG               GST_CAPS gstpad.c:3183:gst_pad_query_caps_default:<fps-display-video_sink:sink> query caps caps query: 0x7f8e980058f0, GstQueryCaps, filter=(GstCaps)"video/x-raw\(memory:SystemMemory\,\ meta:GstVideoOverlayComposition\)\,\ format\=\(string\)I420\,\ width\=\(int\)640\,\ height\=\(int\)480\,\ framerate\=\(fraction\)0/1\,\ interlace-mode\=\(string\)progressive\,\ multiview-mode\=\(string\)mono\,\ multiview-flags\=\(GstVideoMultiviewFlagsSet\)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono\,\ pixel-aspect-ratio\=\(fraction\)1/1\;\ video/x-raw\,\ format\=\(string\)I420\,\ width\=\(int\)640\,\ height\=\(int\)480\,\ framerate\=\(fraction\)0/1\,\ interlace-mode\=\(string\)progressive\,\ multiview-mode\=\(string\)mono\,\ multiview-flags\=\(GstVideoMultiviewFlagsSet\)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono\,\ pixel-aspect-ratio\=\(fraction\)1/1", caps=(GstCaps)"NULL";
0:00:06.281297177 74226 0x563296bc4590 DEBUG               GST_CAPS gstutils.c:3111:gst_pad_peer_query_caps:<fps-display-text-overlay:src> peer query returned EMPTY
0:00:06.281331412 74226 0x563296bc4590 DEBUG               GST_CAPS gstutils.c:3111:gst_pad_peer_query_caps:<capsfilter3:src> peer query returned EMPTY
0:00:06.281360743 74226 0x563296bc4590 DEBUG               GST_CAPS gstutils.c:3111:gst_pad_peer_query_caps:<video_dec_frame_count:src> peer query returned EMPTY
0:00:06.281384602 74226 0x563296bc4590 DEBUG               GST_CAPS gstutils.c:3065:gst_pad_query_caps:<video_dec_frame_count:sink> query returned EMPTY
stream: audio: dropping 172 bytes from 192.168.1.142:59344 [seq=14402, ts=7840] (Connection timed out)
stream: audio: dropping 172 bytes from 192.168.1.142:59344 [seq=14403, ts=8000] (Connection timed out)
0:00:06.316806431 74226 0x7f8e50004680 DEBUG               GST_CAPS gstpad.c:2705:gst_pad_has_current_caps:<video_dec_parser:src> check current pad caps video/x-h264, width=(int)640, height=(int)480, framerate=(fraction)0/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)constrained-baseline, level=(string)2.2
0:00:06.317019530 74226 0x7f8e50004680 DEBUG               GST_CAPS gstpad.c:2705:gst_pad_has_current_caps:<video_dec_parser:src> check current pad caps video/x-h264, width=(int)640, height=(int)480, framerate=(fraction)0/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)constrained-baseline, level=(string)2.2
gst_video: Error (h.264 dec): 1(Operation not permitted), src:video_dec_source, message=Internal data stream error.
gst_video: Debug: gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:video-decoder-pipeline/GstAppSrc:video_dec_source:
streaming stopped, reason not-negotiated (-4).
0:00:06.317294579 74226 0x7f8e50004680 DEBUG               GST_CAPS gstpad.c:2705:gst_pad_has_current_caps:<video_dec_parser:src> check current pad caps video/x-h264, width=(int)640, height=(int)480, framerate=(fraction)0/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)constrained-baseline, level=(string)2.2
0:00:06.317359282 74226 0x7f8e50004680 DEBUG               GST_CAPS gstpad.c:2705:gst_pad_has_current_caps:<video_dec_parser:src> check current pad caps video/x-h264, width=(int)640, height=(int)480, framerate=(fraction)0/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)constrained-baseline, level=(string)2.2
gst_video: Error (h.264 dec): 1(Operation not permitted), src:video_dec_queue, message=Internal data stream error.
gst_video: Debug: gstqueue.c(988): gst_queue_handle_sink_event (): /GstPipeline:video-decoder-pipeline/GstQueue:video_dec_queue:
streaming stopped, reason not-negotiated (-4).

​

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20201005/ac52b4bb/attachment.htm>


More information about the gstreamer-devel mailing list