mx6: video playback using the coda driver

classic Classic list List threaded Threaded
18 messages Options
Reply | Threaded
Open this post in threaded view
|

mx6: video playback using the coda driver

Fabio Estevam
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Nicolas Dufresne-5

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

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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Fabio Estevam
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Nicolas Dufresne-5

Le 8 oct. 2017 à 21:19, Fabio Estevam <[hidden email]> a écrit :

 h264parse ! v4l2video1dec ! kmssink

Let me install h264parse and will give it a try.

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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Fabio Estevam
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Fabio Estevam
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Philipp Zabel-2
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Fabio Estevam
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Fabio Estevam
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Philipp Zabel-2
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Fabio Estevam
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Philipp Zabel-2
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Philipp Zabel-2
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Fabio Estevam
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Fabio Estevam
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Philipp Zabel-2
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Fabio Estevam
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
Reply | Threaded
Open this post in threaded view
|

Re: mx6: video playback using the coda driver

Nicolas Dufresne-5
In reply to this post by Philipp Zabel-2


Le 9 oct. 2017 10:25 AM, "Philipp Zabel" <[hidden email]> a écrit :
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?

Yes.

regards
Philipp
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel