Hi,
I am running Gstreamer 1.12.2 and kernel 4.13.3 on a imx6q sabresd board. Coda driver has been succesfully loaded: # dmesg | grep coda [ 8.508604] coda 2040000.vpu: Direct firmware load for vpu_fw_imx6q.bin failed with error -2 [ 8.532623] coda 2040000.vpu: Using fallback firmware vpu/vpu_fw_imx6q.bin [ 8.545763] coda 2040000.vpu: Firmware code revision: 46072 [ 8.551491] coda 2040000.vpu: Initialized CODA960. [ 8.556611] coda 2040000.vpu: Unsupported firmware version: 3.1.1 [ 8.565049] coda 2040000.vpu: codec registered as /dev/video[0-1] The v4l2video1dec is present: # gst-inspect-1.0 | grep v4l video4linux2: v4l2src: Video (video4linux2) Source video4linux2: v4l2sink: Video (video4linux2) Sink video4linux2: v4l2radio: Radio (video4linux2) Tuner video4linux2: v4l2deviceprovider (GstDeviceProviderFactory) video4linux2: v4l2video1dec: V4L2 Video Decoder I tried to follow the instructions from Gary at: https://github.com/boundarydevices/buildroot-external-boundary/blob/2017.08.x/README.md but I am getting the following error when trying to run the same pipeline: # gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! avidemux ! decodebin ! kmssink name=imx-drm sync=0 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Missing element: ITU H.264 decoder ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Your GStreamer installation is missing a plug-in. Additional debug info: gstdecodebin2.c(4600): gst_decode_bin_expose (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0: no suitable plugins found: Missing decoder: ITU H.264 (video/x-h264, variant=(string)itu, framerate=(fraction)25/1, width=(int)1920, height=(int)1080) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... # Why does Gstreamer say it is missing a "ITU H.264 decoder"? Any suggestions? Thanks, Fabio Estevam _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
No idea, does it work if you use this directly ?: h264parse ! v4l2video1dec ! kmssink What do you get when you gst-inspect-1.0 the v4l2 based decoder ? Nicolas _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Nicolas,
On Sun, Oct 8, 2017 at 10:03 PM, Nicolas Dufresne <[hidden email]> wrote: > > Le 8 oct. 2017 à 18:30, Fabio Estevam <[hidden email]> a écrit : > > Why does Gstreamer say it is missing a "ITU H.264 decoder »? > > > No idea, does it work if you use this directly ?: > > h264parse ! v4l2video1dec ! kmssink Let me install h264parse and will give it a try. > > What do you get when you gst-inspect-1.0 the v4l2 based decoder ? # gst-inspect-1.0 v4l2video1dec Factory Details: Rank primary + 1 (257) Long-name V4L2 Video Decoder Klass Codec/Decoder/Video Description Decode video streams via V4L2 API Author Nicolas Dufresne <[hidden email]> Plugin Details: Name video4linux2 Description elements for Video 4 Linux Filename /usr/lib/gstreamer-1.0/libgstvideo4linux2.so Version 1.12.2 License LGPL Source module gst-plugins-good Source release date 2017-07-14 Binary package GStreamer Good Plug-ins source release Origin URL Unknown package origin GObject +----GInitiallyUnowned +----GstObject +----GstElement +----GstVideoDecoder +----GstV4l2VideoDec +----v4l2video1dec Pad Templates: SINK template: 'sink' Availability: Always Capabilities: video/mpeg mpegversion: 4 systemstream: false video/mpeg mpegversion: 2 video/x-h264 stream-format: byte-stream alignment: au SRC template: 'src' Availability: Always Capabilities: video/x-raw format: { (string)NV12, (string)I420, (string)YV12, (string)YUY2 } width: [ 1, 32768 ] height: [ 1, 32768 ] framerate: [ 0/1, 2147483647/1 ] Element Flags: no flags set Element Implementation: Has change_state() function: gst_v4l2_video_dec_change_state Element has no clocking capabilities. Element has no URI handling capabilities. Pads: SINK: 'sink' Pad Template: 'sink' SRC: 'src' Pad Template: 'src' Element Properties: name : The name of the object flags: readable, writable String. Default: "v4l2video1dec0" parent : The parent of the object flags: readable, writable Object of type "GstObject" device : Device location flags: readable String. Default: "/dev/video1" device-name : Name of the device flags: readable String. Default: "CODA960" device-fd : File descriptor of the device flags: readable Integer. Range: -1 - 2147483647 Default: -1 output-io-mode : Output side I/O mode (matches sink pad) flags: readable, writable Enum "GstV4l2IOMode" Default: 0, "auto" (0): auto - GST_V4L2_IO_AUTO (1): rw - GST_V4L2_IO_RW (2): mmap - GST_V4L2_IO_MMAP (3): userptr - GST_V4L2_IO_USERPTR (4): dmabuf - GST_V4L2_IO_DMABUF (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT capture-io-mode : Capture I/O mode (matches src pad) flags: readable, writable Enum "GstV4l2IOMode" Default: 0, "auto" (0): auto - GST_V4L2_IO_AUTO (1): rw - GST_V4L2_IO_RW (2): mmap - GST_V4L2_IO_MMAP (3): userptr - GST_V4L2_IO_USERPTR (4): dmabuf - GST_V4L2_IO_DMABUF (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT extra-controls : Extra v4l2 controls (CIDs) for the device flags: readable, writable Boxed pointer of type "GstStructure" # _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
This is likely going to fix you issue, the decoder requires a parsed stream (see parsed=1 field). Nicolas _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Sun, Oct 8, 2017 at 11:09 PM, Nicolas Dufresne <[hidden email]> wrote:
> This is likely going to fix you issue, the decoder requires a parsed stream > (see parsed=1 field). I get a different error now: # gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! h264parse ! v4l2video1dec ! kmssink name=imx-drm sync=0 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /GstPipeline:pipeline0/GstKMSSink:imx-drm: GStreamer encountered a general resource error. Additional debug info: gstkmssink.c(1320): gst_kms_sink_show_frame (): /GstPipeline:pipeline0/GstKMSSink:imx-drm: drmModeSetPlane failed: Numerical result out of range (-34) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... # _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Mon, Oct 9, 2017 at 7:31 AM, Fabio Estevam <[hidden email]> wrote:
> On Sun, Oct 8, 2017 at 11:09 PM, Nicolas Dufresne <[hidden email]> wrote: > >> This is likely going to fix you issue, the decoder requires a parsed stream >> (see parsed=1 field). > > I get a different error now: > > # gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! h264parse ! > v4l2video1dec ! kmssink name=imx-drm sync=0 > Setting pipeline to PAUSED ... > Pipeline is PREROLLING ... > ERROR: from element /GstPipeline:pipeline0/GstKMSSink:imx-drm: > GStreamer encountered a general resource error. > Additional debug info: > gstkmssink.c(1320): gst_kms_sink_show_frame (): > /GstPipeline:pipeline0/GstKMSSink:imx-drm: > drmModeSetPlane failed: Numerical result out of range (-34) > ERROR: pipeline doesn't want to preroll. > Setting pipeline to NULL ... > Freeing pipeline ... > # This same error happens if I run gst-play-1.0: # gst-play-1.0 /root/trailer_1080p_h264_mp3.avi Press 'k' to see a list of keyboard shortcuts. Now playing /root/trailer_1080p_h264_mp3.avi Redistribute latency... ERROR GStreamer encountered a general resource error. for file:///root/trailer_1080p_h264_mp3.avi ERROR debug information: gstkmssink.c(1320): gst_kms_sink_show_frame (): /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:vbin/GstKMSSink:kmssink0: drmModeSetPlane failed: Numerical result out of range (-34) Reached end of play list. # gst-play-1.0 -v /root/trailer_1080p_h264_mp3.avi Press 'k' to see a list of keyboard shortcuts. Now playing /root/trailer_1080p_h264_mp3.avi /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0: ring-buffer-max-size = 0 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0: buffer-size = -1 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0: buffer-duration = -1 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0: use-buffering = false /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0: download = false /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0: uri = file:///root/trailer_1080p_h264_mp3.avi /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0: connection-speed = 0 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0: source = "\(GstFileSrc\)\ source" /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/x-msvideo /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = NULL /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstPad:src_0: caps = video/x-h264, variant=(string)itu, framerate=(fraction)25/1, width=(int)1920, heigh t=(int)1080 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, variant=(string)itu, framerate=(fraction)25/1, width=(int)1920, height=( int)1080 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstPad:src_1: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, cod ec_data=(buffer)010002000000800401007105 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMpegAudioParse:mpegaudioparse0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int )2, codec_data=(buffer)010002000000800401007105 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0: max-size-buffers = 5 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0: max-size-time = 0 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0: max-size-bytes = 2097152 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_0: caps = video/x-h264, variant=(string)itu, framerate=(fraction)25/1, width=(int) 1920, height=(int)1080 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_1: caps = audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)48000, channels= (int)2, codec_data=(buffer)010002000000800401007105 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0: max-size-buffers = 5 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0: max-size-time = 0 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0: max-size-bytes = 2097152 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0: max-size-buffers = 5 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0: max-size-time = 0 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMultiQueue:multiqueue0: max-size-bytes = 2097152 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, variant=(string)itu, framerate=(fraction)25/1, width=(int)1920, height=(i nt)1080, interlace-mode=(string)progressive, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high, level=(string)4 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/avdec_mp3:avdec_mp3-0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, parsed=(boolean)true /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMpegAudioParse:mpegaudioparse0.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=( int)48000, channels=(int)2, parsed=(boolean)true /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/avdec_mp3:avdec_mp3-0.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels= (int)2, channel-mask=(bitmask)0x0000000000000003 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2video1dec:v4l2video1dec0.GstPad:sink: caps = video/x-h264, variant=(string)itu, framerate=(fraction)25/1, width=(int)1920, hei ght=(int)1080, interlace-mode=(string)progressive, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high, level=(string)4 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-h264, variant=(string)itu, framerate=(fraction)25/1, width=(int)1920, height= (int)1080, interlace-mode=(string)progressive, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high, level=(string)4 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-h264, variant=(string)itu, framerate=(fraction)25/1, width=(int)1920, height =(int)1080, interlace-mode=(string)progressive, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high, level=(string)4 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2video1dec:v4l2video1dec0.GstPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, interlace-mod e=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25/1 /GstPlayBin:playbin/GstInputSelector:inputselector0.GstSelectorPad:sink_0: always-ok = false /GstPlayBin:playbin/GstInputSelector:inputselector1.GstSelectorPad:sink_0: always-ok = false /GstPlayBin:playbin/GstInputSelector:inputselector0.GstSelectorPad:sink_0: active = true /GstPlayBin:playbin/GstInputSelector:inputselector0.GstSelectorPad:sink_0: active = true /GstPlayBin:playbin/GstInputSelector:inputselector0: active-pad = "\(GstSelectorPad\)\ sink_0" /GstPlayBin:playbin/GstInputSelector:inputselector1: active-pad = "\(GstSelectorPad\)\ sink_0" /GstPlayBin:playbin/GstPlaySink:playsink: volume = 1 /GstPlayBin:playbin/GstPlaySink:playsink: mute = false /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstAlsaSink:alsasink1: ts-offset = 0 /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:vbin/GstKMSSink:kmssink0: ts-offset = 0 /GstPlayBin:playbin/GstInputSelector:inputselector1.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000000000 0003 /GstPlayBin:playbin/GstInputSelector:inputselector1.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000000000 0003 /GstPlayBin:playbin/GstInputSelector:inputselector1.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000000000 0003 /GstPlayBin:playbin/GstInputSelector:inputselector1.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000000000 0003 /GstPlayBin:playbin/GstInputSelector:inputselector1.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000000000 0003 /GstPlayBin:playbin/GstPlaySink:playsink.GstGhostPad:audio_sink.GstProxyPad:proxypad6: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask= (bitmask)0x0000000000000003 /GstPlayBin:playbin/GstPlaySink:playsink/GstTee:audiotee.GstTeePad:src_0: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x00 00000000000003 /GstPlayBin:playbin/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:src_1: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, cha nnel-mask=(bitmask)0x0000000000000003 /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin.GstGhostPad:sink.GstProxyPad:proxypad15: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channe l-mask=(bitmask)0x0000000000000003 /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstQueue:aqueue.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitm ask)0x0000000000000003 /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstQueue:aqueue.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitm ask)0x0000000000000003 /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin.GstGhostPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x00000 00000000003 /GstPlayBin:playbin/GstPlaySink:playsink/GstStreamSynchronizer:streamsynchronizer0.GstPad:sink_1: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, ch annel-mask=(bitmask)0x0000000000000003 /GstPlayBin:playbin/GstPlaySink:playsink/GstTee:audiotee.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000 0000000003 /GstPlayBin:playbin/GstPlaySink:playsink.GstGhostPad:audio_sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x00000000000 00003 /GstPlayBin:playbin/GstInputSelector:inputselector1.GstSelectorPad:sink_0: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x0 000000000000003 /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0.GstGhostPad:src_1.GstProxyPad:proxypad5: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-m ask=(bitmask)0x0000000000000003 /GstPlayBin:playbin/GstInputSelector:inputselector1.GstSelectorPad:sink_0: tags = taglist, audio-codec=(string)"MPEG-1\ layer\ 3"; /GstPlayBin:playbin/GstInputSelector:inputselector1.GstSelectorPad:sink_0: tags = taglist, audio-codec=(string)"MPEG-1\ layer\ 3", encoder=(string)Lavf54.6.101, container-format=(string)AVI/GstPlayBin:pla ybin/GstInputSelector:inputselector1.GstSelectorPad:sink_0: tags = taglist, audio-codec=(string)"MPEG-1\ Layer\ 3\ \(MP3\)", encoder=(string)Lavf54.6.101, container-format=(string)AVI, has-crc=(boolean)fa lse, channel-mode=(string)joint-stereo, nominal-bitrate=(uint)80000/GstPlayBin:playbin/GstInputSelector:inputselector1.GstSelectorPad:sink_0: tags = taglist, audio-codec=(string)"MPEG-1\ Layer\ 3\ \(MP3\) ", encoder=(string)Lavf54.6.101, container-format=(string)AVI, has-crc=(boolean)false, channel-mode=(string)joint-stereo, nominal-bitrate=(uint)80000, minimum-bitrate=(uint)192000, maximum-bitrate=(uint)1 92000, bitrate=(uint)193600/GstPlayBin:playbin/GstInputSelector:inputselector1.GstSelectorPad:sink_0: tags = taglist, audio-codec=(string)"MPEG-1\ Layer\ 3\ \(MP3\)", encoder=(string)Lavf54.6.101, contain er-format=(string)AVI, has-crc=(boolean)false, channel-mode=(string)joint-stereo, nominal-bitrate=(uint)80000, minimum-bitrate=(uint)192000, maximum-bitrate=(uint)224000, bitrate=(uint)195692/GstPlayBin:p laybin/GstInputSelector:inputselector1.GstSelectorPad:sink_0: tags = taglist, audio-codec=(string)"MPEG-1\ Layer\ 3\ \(MP3\)", encoder=(string)Lavf54.6.101, container-format=(string)AVI, has-crc=(boolean) false, channel-mode=(string)joint-stereo, nominal-bitrate=(uint)80000, minimum-bitrate=(uint)192000, maximum-bitrate=(uint)224000, bitrate=(uint)200470/GstPlayBin:playbin/GstInputSelector:inputselector1.G stSelectorPad:sink_0: tags = taglist, audio-codec=(string)"MPEG-1\ Layer\ 3\ \(MP3\)", encoder=(string)Lavf54.6.101, container-format=(string)AVI, has-crc=(boolean)false, channel-mode=(string)joint-stereo , nominal-bitrate=(uint)80000, minimum-bitrate=(uint)160000, maximum-bitrate=(uint)224000, bitrate=(uint)201806/GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv/GstAudioCo nvert:conv.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000000000000/GstPlayBin:playbin/GstInputSelector:i nputselector1.GstSelectorPad:sink_0: tags = taglist, audio-codec=(string)"MPEG-1\ Layer\ 3\ \(MP3\)", encoder=(string)Lavf54.6.101, container-format=(string)AVI, has-crc=(boolean)false, channel-mode=(stri ng)joint-stereo, nominal-bitrate=(uint)80000, minimum-bitrate=(uint)160000, maximum-bitrate=(uint)256000, bitrate=(uint)202222/GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:a conv/GstAudioResample:resample.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000000000000/GstPlayBin:playbi n/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv/GstVolume:volume.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channe l-mask=(bitmask)0x000000000000000/GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv.GstGhostPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, r ate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000000000000/GstPlayBin:playbin/GstPlaySink:playsink/GstBin:vdbin/GstVideoConvert:vdconv.GstPad:src: caps = video/x-raw, format=(string)YUY2, wi dth=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25//GstPlayBin:playbin/GstP laySink:playsink/GstBin:vdbin/GstDeinterlace:deinterlace.GstPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(fra ction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25//GstPlayBin:playbin/GstPlaySink:playsink/GstBin:vdbin.GstGhostPad:src: caps = video/x-raw, format=(string)YUY2, widt h=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25//GstPlayBin:playbin/GstPla ySink:playsink/GstBin:vbin.GstGhostPad:sink.GstProxyPad:proxypad10: caps = video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(frac tion)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25//GstPlayBin:playbin/GstPlaySink:playsink/GstBin:vdbin/GstDeinterlace:deinterlace.GstPad:sink: caps = video/x-raw, for mat=(string)YUY2, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25//Gst PlayBin:playbin/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstVideoScale:scale.GstPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, interlace-mode=(s tring)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25//GstPlayBin:playbin/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConve rt:vconv/GstVideoBalance:videobalance.GstPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-s ite=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25//GstPlayBin:playbin/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstVideoConvert:conv2.GstPad:src: caps = video/x-raw , format=(string)YUY2, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25 //GstPlayBin:playbin/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv.GstGhostPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, interlace-mode=(string)prog ressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25/Redistribute latency../GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstAlsaSi nk:alsasink1.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000000000000/GstPlayBin:playbin/GstPlaySink:pla ysink/GstBin:abin/GstPlaySinkAudioConvert:aconv.GstGhostPad:src.GstProxyPad:proxypad14: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask =(bitmask)0x000000000000000/GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv/GstVolume:volume.GstPad:sink: caps = audio/x-raw, foERROR GStreamer encountered a general reso urce error. for file:///root/trailer_1080p_h264_mp3.avi ERROR debug information: gstkmssink.c(1320): gst_kms_sink_show_frame (): /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:vbin/GstKMSSink:kmssink0: drmModeSetPlane failed: Numerical result out of range (-34) rmat=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000000000000/GstPlayBin:playbin/GstPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv/ GstAudioResample:resample.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x000000000000000/GstPlayBin:playbin/Gs tPlaySink:playsink/GstBin:abin/GstPlaySinkAudioConvert:aconv/GstAudioConvert:conv.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)48000, channels=(int)2, chann /GstPlayBin:playbin/GstInputSelector:inputselector0.GstSelectorPad:sink_0: tags = taglist, video-codec=(string)"ITU\ H.264"/GstPlayBin:playbin/GstInputSelector:inputselector0.GstSelectorPad:sink_0: tags = taglist, video-codec=(string)"ITU\ H.264", encoder=(string)Lavf54.6.101, container-format=(string)AVI/GstPlayBin:playbin/GstInputSelector:inputselector0.GstSelectorPad:sink_0: tags = taglist, video-codec Reached end of play lis# \ Profile\)", encoder=(string)Lavf54.6.101, container-format=(string)AVI0:00:00.0 / 0:00:33.0 _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Fabio Estevam
Hi Fabio,
On Mon, 2017-10-09 at 07:31 -0300, Fabio Estevam wrote: > On Sun, Oct 8, 2017 at 11:09 PM, Nicolas Dufresne <[hidden email] > a> wrote: > > > This is likely going to fix you issue, the decoder requires a parsed > > stream > > (see parsed=1 field). > > I get a different error now: > > # gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! > h264parse ! > v4l2video1dec ! kmssink name=imx-drm sync=0 > Setting pipeline to PAUSED ... > Pipeline is PREROLLING ... > ERROR: from element /GstPipeline:pipeline0/GstKMSSink:imx-drm: > GStreamer encountered a general resource error. > Additional debug info: > gstkmssink.c(1320): gst_kms_sink_show_frame (): > /GstPipeline:pipeline0/GstKMSSink:imx-drm: > drmModeSetPlane failed: Numerical result out of range (-34) > ERROR: pipeline doesn't want to preroll. > Setting pipeline to NULL ... > Freeing pipeline ... > # -ERANGE could be returned by drm_plane_helper_check_state if kmssink requests scaling, which we don't support in the imx-drm driver. Though I'm not sure why that whould happen on 1.12, especially if the video size matches the output size. What gets logged with GST_DEBUG="kmssink:6" set in the environment? What gets logged if you enable KMS debug flag (echo 4 > /sys/module/drm/parameters/debug)? regards Philipp _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Philipp,
On Mon, Oct 9, 2017 at 10:57 AM, Philipp Zabel <[hidden email]> wrote: > -ERANGE could be returned by drm_plane_helper_check_state if kmssink > requests scaling, which we don't support in the imx-drm driver. > Though I'm not sure why that whould happen on 1.12, especially if the > video size matches the output size. Actually the LVDS resolution is 1024x768 and the video resolution is 1920x1080. > What gets logged with GST_DEBUG="kmssink:6" set in the environment? # export GST_DEBUG="kmssink:6" # gst-play-1.0 /root/trailer_1080p_h264_mp3.avi Press 'k' to see a list of keyboard shortcuts. Now playing /root/trailer_1080p_h264_mp3.avi 0:00:00.993658667 236 0xd2b460 INFO kmssink gstkmssink.c:275:log_drm_version:<kmssink0> DRM v1.0.0 [imx-drm — i.MX DRM graphics — 20120507] 0:00:00.994568667 236 0xd2b460 INFO kmssink gstkmssink.c:318:get_drm_caps:<kmssink0> prime import (✓) / async page flip (✗) 0:00:00.995538000 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format AR15 0:00:00.996351667 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format XR15 0:00:00.997178333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format AB15 0:00:00.997986667 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format XB15 0:00:00.998791333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format RA15 0:00:00.999596333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format BA15 0:00:01.000469667 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format AR12 0:00:01.001427333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format RA24 0:00:01.002267333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format RX24 0:00:01.003113333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format BA24 0:00:01.003946000 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format BX24 0:00:01.004811333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format VYUY 0:00:01.005778667 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format YV16 0:00:01.006614667 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format YU24 0:00:01.007444333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format YV24 0:00:01.008360333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format RG16 0:00:01.009194333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format R5A8 0:00:01.010030333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format B5A8 0:00:01.011174667 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format R8A8 0:00:01.012002333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format B8A8 0:00:01.012822667 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format RXA8 0:00:01.013640333 236 0xd2b460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format BXA8 0:00:01.014914000 236 0xd2b460 DEBUG kmssink gstkmssink.c:483:ensure_allowed_caps:<kmssink0> allowed caps = video/x-raw, format=(string){ BGRA, BGRx, RGBA, RGBx, UYVY, YUY2, YVYU, I420, YV12, Y42B, NV12, NV16 }, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]0:00:01.518558667 236 0xd9caf0 DEBUG kmssink gstkmssink.c:788:gst_km s_sink_calculate_display_ratio:<kmssink0> video calculated display ratio: 16/9 0:00:01.519830333 236 0xd9caf0 DEBUG kmssink gstkmssink.c:797:gst_kms_sink_calculate_display_ratio:<kmssink0> keeping video height 0:00:01.520963333 236 0xd9caf0 DEBUG kmssink gstkmssink.c:813:gst_kms_sink_calculate_display_ratio:<kmssink0> scaling to 1920x1080 0:00:01.522591000 236 0xd9caf0 DEBUG kmssink gstkmssink.c:856:gst_kms_sink_set_caps:<kmssink0> negotiated caps = video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, int erlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25/1 Redistribute latency... 0:00:01.972174000 236 0xd9caf0 DEBUG kmssink gstkmssink.c:1318:gst_kms_sink_show_frame:<kmssink0> result = { 0, 0, 1024, 768} / src = { 0, 0, 1920 1080 } / dst = { 0, 0, 1024 768 } 0:00:01.973208667 236 0xd9caf0 WARN kmssink gstkmssink.c:1320:gst_kms_sink_show_frame:<kmssink0> error: drmModeSetPlane failed: Numerical result out of range (-34) ERROR GStreamer encountered a general resource error. for file:///root/trailer_1080p_h264_mp3.avi ERROR debug information: gstkmssink.c(1320): gst_kms_sink_show_frame (): /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:vbin/GstKMSSink:kmssink0: drmModeSetPlane failed: Numerical result out of range (-34) Reached end of play list. > What gets logged if you enable KMS debug flag (echo 4 > > /sys/module/drm/parameters/debug)? # echo 4 > /sys/module/drm/parameters/debug # gst-play-1.0 /root/trailer_1080p_h264_mp3.avi Press 'k' to see a list of keyboard shortcuts. Now playing /root/trailer_1080p_h264_mp3.avi 0:00:00.989601667 245 0x14c5460 INFO kmssink gstkmssink.c:275:log_drm_version:<kmssink0> DRM v1.0.0 [imx-drm — i.MX DRM graphics — 20120507] 0:00:00.990489000 245 0x14c5460 INFO kmssink gstkmssink.c:318:get_drm_caps:<kmssink0> prime import (✓) / async page flip (✗) 0:00:00.991644000 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format AR15 0:00:00.992443667 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format XR15 0:00:00.993251000 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format AB15 0:00:00.994040000 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format XB15 0:00:00.994911000 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format RA15 0:00:00.995706334 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format BA15 0:00:00.996508000 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format AR12 0:00:00.997403334 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format RA24 0:00:00.998196334 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format RX24 0:00:00.999003000 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format BA24 0:00:00.999789000 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format BX24 0:00:01.000607334 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format VYUY 0:00:01.001569667 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format YV16 0:00:01.002385667 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format YU24 0:00:01.003200667 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format YV24 0:00:01.004072000 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format RG16 0:00:01.004961667 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format R5A8 0:00:01.005781000 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format B5A8 0:00:01.006592667 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format R8A8 0:00:01.007423000 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format B8A8 0:00:01.008233334 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format RXA8 0:00:01.009045667 245 0x14c5460 INFO kmssink gstkmssink.c:452:ensure_allowed_caps:<kmssink0> ignoring format BXA8 0:00:01.010315000 245 0x14c5460 DEBUG kmssink gstkmssink.c:483:ensure_allowed_caps:<kmssink0> allowed caps = video/x-raw, format=(string){ BGRA, BGRx, RGBA, RGBx, UYVY, YUY2, YVYU, I420, YV12, Y42B, NV12, NV16 }, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]0:00:01.515325667 245 0x15368f0 DEBUG kmssink gstkmssink.c:788:gst_km s_sink_calculate_display_ratio:<kmssink0> video calculated display ratio: 16/9 0:00:01.516198000 245 0x15368f0 DEBUG kmssink gstkmssink.c:797:gst_kms_sink_calculate_display_ratio:<kmssink0> keeping video height 0:00:01.516985334 245 0x15368f0 DEBUG kmssink gstkmssink.c:813:gst_kms_sink_calculate_display_ratio:<kmssink0> scaling to 1920x1080 0:00:01.518564667 245 0x15368f0 DEBUG kmssink gstkmssink.c:856:gst_kms_sink_set_caps:<kmssink0> negotiated caps = video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, int erlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25/1 Redistribute latency... 0:00:01.973469667 245 0x15368f0 DEBUG kmssink gstkmssink.c:1318:gst_kms_sink_show_frame:<kmssink0> result = { 0, 0, 1024, 768} / src = { 0, 0, 1920 1080 } / dst = { 0, 0, 1024 768 } 0:00:01.974857334 245 0x15368f0 WARN kmssink gstkmssink.c:1320:gst_kms_sink_show_frame:<kmssink0> error: drmModeSetPlane failed: Numerical result out of range (-34) ERROR GStreamer encountered a general resource error. for file:///root/trailer_1080p_h264_mp3.avi ERROR debug information: gstkmssink.c(1320): gst_kms_sink_show_frame (): /GstPlayBin:playbin/GstPlaySink:playsink/GstBin:vbin/GstKMSSink:kmssink0: drmModeSetPlane failed: Numerical result out of range (-34) Reached end of play list. Thanks _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Philipp,
On Mon, Oct 9, 2017 at 11:03 AM, Fabio Estevam <[hidden email]> wrote: > Hi Philipp, > > On Mon, Oct 9, 2017 at 10:57 AM, Philipp Zabel <[hidden email]> wrote: > >> -ERANGE could be returned by drm_plane_helper_check_state if kmssink >> requests scaling, which we don't support in the imx-drm driver. >> Though I'm not sure why that whould happen on 1.12, especially if the >> video size matches the output size. > > Actually the LVDS resolution is 1024x768 and the video resolution is 1920x1080. Yes, this is the problem: I can play the video if I use the HDMI output at 1920x1080. Do we have any patches floating around that add support for IPUv3 resizing? Thanks! _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Fabio Estevam
On Mon, 2017-10-09 at 11:03 -0300, Fabio Estevam wrote:
> Actually the LVDS resolution is 1024x768 and the video resolution is > 1920x1080. [...] > gstkmssink.c:1318:gst_kms_sink_show_frame:<kmssink0> result = { 0, 0, > 1024, 768} / src = { 0, 0, 1920 1080 } / dst = { 0, 0, 1024 768 } Unfortunately kmssink doesn't recognize during negotiation that the overlay plane can't scale. For upscaling this is 'handled' by just falling back to a centered, unscaled plane. For downscaling this fails, as the unscaled frame is too large to be displayed. I suppose what kmssink could do is check the display resolution and crop to that during show_frame if the first try failed? regards Philipp _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Fabio Estevam
On Mon, Oct 9, 2017 at 11:15 AM, Fabio Estevam <[hidden email]> wrote:
> Yes, this is the problem: I can play the video if I use the HDMI > output at 1920x1080. I noticed that the playback is slow: # gst-play-1.0 /root/trailer_1080p_h264_mp3.avi Press 'k' to see a list of keyboard shortcuts. Now playing /root/trailer_1080p_h264_mp3.avi Redistribute latency... 0:00:44.6 / 0:00:33.0 Reached end of play list. It takes 44 seconds to display this 33 second video. Any suggestions to make it run smoother? Thanks! _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Fabio Estevam
Hi Fabio,
On Mon, 2017-10-09 at 11:15 -0300, Fabio Estevam wrote: > Hi Philipp, > > On Mon, Oct 9, 2017 at 11:03 AM, Fabio Estevam <[hidden email]> > wrote: > > Hi Philipp, > > > > On Mon, Oct 9, 2017 at 10:57 AM, Philipp Zabel <p.zabel@pengutronix. > > de> wrote: > > > > > -ERANGE could be returned by drm_plane_helper_check_state if > > > kmssink > > > requests scaling, which we don't support in the imx-drm driver. > > > Though I'm not sure why that whould happen on 1.12, especially if > > > the > > > video size matches the output size. > > > > Actually the LVDS resolution is 1024x768 and the video resolution is > > 1920x1080. > > Yes, this is the problem: I can play the video if I use the HDMI > output at 1920x1080. > > Do we have any patches floating around that add support for IPUv3 > resizing? I am not aware of any patches for scaling in the imx-drm / plane driver. In most cases the IPUv3 IC -> DMFC direct path via IDMAC channel #21 is pretty useless due to the 1024 pixel output width limit, although in your case that would be just enough. If the IC_DMFC_SYNC/SEL mechanism works, it should be possible to reuse the code in drivers/gpu/ipu-v3/ipu-image-convert.c from ipuv3-plane, which is currently hooked up to imx-media for <= 1024x1024 scaling in the video capture path. Although scaling on overlay planes should only be enabled if the display mode / full plane size is <= 1024x1024, as otherwise the size limitation will be very confusing to userspace. The tiled (> 1024x1024) mem2mem scaling is still broken (see the FIXME comment in ipu-image-convert.c), with that fixed we could wrap it with a v4l2 mem2mem driver. regards Philipp _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Fabio Estevam
Hi Fabio,
On Mon, 2017-10-09 at 11:22 -0300, Fabio Estevam wrote: > On Mon, Oct 9, 2017 at 11:15 AM, Fabio Estevam <[hidden email]> > wrote: > > > Yes, this is the problem: I can play the video if I use the HDMI > > output at 1920x1080. > > I noticed that the playback is slow: > > # gst-play-1.0 /root/trailer_1080p_h264_mp3.avi > Press 'k' to see a list of keyboard shortcuts. > Now playing /root/trailer_1080p_h264_mp3.avi > Redistribute latency... > 0:00:44.6 / 0:00:33.0 > Reached end of play list. > > It takes 44 seconds to display this 33 second video. > > Any suggestions to make it run smoother? I see GStreamer already happens to negotiate YUY2, which should be the most memory bandwidth efficient format in this case. A significant measure would be to use DMA buffers between decoder and kmssink then: v4l2h264dec capture-io-mode=dmabuf ! kmssink Making this work automatically probably involves implementing https://bugzilla.gnome.org/show_bug.cgi?id=745459 first. regards Philipp _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Philipp,
On Mon, Oct 9, 2017 at 12:00 PM, Philipp Zabel <[hidden email]> wrote: > I see GStreamer already happens to negotiate YUY2, which should be the > most memory bandwidth efficient format in this case. A significant > measure would be to use DMA buffers between decoder and kmssink then: > > v4l2h264dec capture-io-mode=dmabuf ! kmssink When I explicitly pass the decoder I have another type of error: # gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! h264parse ! v4l2video1dec capture-io-mode=dmabuf ! kmssink name=imx-drm sync=0 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock (gst-launch-1.0:320): GStreamer-CRITICAL **: _gst_util_uint64_scale_int: assertion 'denom > 0' failed ERROR: from element /GstPipeline:pipeline0/GstH264Parse:h264parse0: Internal data stream error. Additional debug info: gstbaseparse.c(3597): gst_base_parse_loop (): /GstPipeline:pipeline0/GstH264Parse:h264parse0: streaming stopped, reason not-negotiated (-4) Execution ended after 0:00:00.102441334 Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... Freeing pipeline ... # So not able to run a pipeline that uses 'capture-io-mode=dmabuf'. > Making this work automatically probably involves implementing > > https://bugzilla.gnome.org/show_bug.cgi?id=745459 > > first. That would be awesome. _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Mon, Oct 9, 2017 at 12:24 PM, Fabio Estevam <[hidden email]> wrote:
> Hi Philipp, > > On Mon, Oct 9, 2017 at 12:00 PM, Philipp Zabel <[hidden email]> wrote: > >> I see GStreamer already happens to negotiate YUY2, which should be the >> most memory bandwidth efficient format in this case. A significant >> measure would be to use DMA buffers between decoder and kmssink then: >> >> v4l2h264dec capture-io-mode=dmabuf ! kmssink > > When I explicitly pass the decoder I have another type of error: Ok, so now I managed to use your suggestion and it has improved a lot: # gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! avidemux ! h264parse! v4l2video1dec capture-io-mode=dmabuf ! kmssink name=imx-drm sync=0 Thanks! _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Fabio Estevam
On Mon, 2017-10-09 at 12:24 -0300, Fabio Estevam wrote:
> Hi Philipp, > > On Mon, Oct 9, 2017 at 12:00 PM, Philipp Zabel <[hidden email] > > wrote: > > > I see GStreamer already happens to negotiate YUY2, which should be > > the > > most memory bandwidth efficient format in this case. A significant > > measure would be to use DMA buffers between decoder and kmssink > > then: > > > > v4l2h264dec capture-io-mode=dmabuf ! kmssink > > When I explicitly pass the decoder I have another type of error: > > # gst-launch-1.0 filesrc location=/root/trailer_1080p_h264_mp3.avi ! > h264parse ! > v4l2video1dec capture-io-mode=dmabuf ! kmssink name=imx-drm sync=0 That is probably missing an avidemux between filesrc and h264parse. regards Philipp _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Philipp,
On Mon, Oct 9, 2017 at 12:33 PM, Philipp Zabel <[hidden email]> wrote: > That is probably missing an avidemux between filesrc and h264parse. Yes, exactly. Now the playback is very smooth, thanks! I think it would be still nice if we could be able to play a full HD video on a display that has a smaller resolution, such as 1024x768 in the mx6qsabresd case. You suggested earlier in the thread: "Unfortunately kmssink doesn't recognize during negotiation that the overlay plane can't scale. For upscaling this is 'handled' by just falling back to a centered, unscaled plane. For downscaling this fails, as the unscaled frame is too large to be displayed. I suppose what kmssink could do is check the display resolution and crop to that during show_frame if the first try failed?" If someone has a proposal patch to make this work, I would be glad to test it. Thanks! _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Philipp Zabel-2
Le 9 oct. 2017 10:25 AM, "Philipp Zabel" <[hidden email]> a écrit :
Yes.
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |