Freescale / gstreamer-imx

GStreamer 1.0 plugins for i.MX platforms
Other
183 stars 127 forks source link

iMX6ULL Yocto[dunfell] PXP videosink problems #267

Closed QB4-dev closed 3 years ago

QB4-dev commented 4 years ago

gstreamer version 1.16.imx https://github.com/Freescale/meta-freescale/tree/dunfell/recipes-multimedia/gstreamer

With gstreamer1.0-plugins-imx_0.13.1 ver 805987bff74af13fcb14ff111955206f1c92554d https://github.com/Freescale/meta-freescale/blob/dunfell/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.13.1.bb

framebuffer only distro

Cannot set any output to imxpxpvideosink for example: gst-launch-1.0 videotestsrc ! imxpxpvideosink

Setting pipeline to PAUSED ...
**
ERROR:../git/src/pxp/blitter.c:369:gst_imx_pxp_blitter_set_layer_params: assertion failed: ((phys_mem_meta != NULL) && (phys_mem_meta->phys_addr != 0))
Bail out! ERROR:../git/src/pxp/blitter.c:369:gst_imx_pxp_blitter_set_layer_params: assertion failed: ((phys_mem_meta != NULL) && (phys_mem_meta->phys_addr != 0))
Aborted

imxvideoconvert_pxp works, example working pipeline: gst-launch-1.0 autovideosrc ! imxvideoconvert_pxp ! videoscale ! video/x-raw,width=800,height=480 ! fbdevsink

angolini commented 4 years ago

Hi @QB4-dev.

I've never really used this plugin on imx6ULL, and I am not close to one board right now to really test it, but I was wondering.

You have to convert the autovideosrc to be able to display it to fbdevsink, from the README page, the imxpxpvideosink only displays using PxP, it does not convert the stream.

Would you, please, share the sink/src information for the command: st-launch-1.0 videotestsrc ! imxpxpvideosink

QB4-dev commented 4 years ago

@angolini

I am trying to get working videoplayback in image generated by Yocto like here but on older kernel and on debian

https://wiki.somlabs.com/index.php/Hardware-accelerated_video_playback_on_the_VisionSOM-6ULL_(GStreamer_with_support_for_PxP_engine)

Here are gst-inspect-1.0 info about pipeline elements

videotestsrc

Factory Details:
  Rank                     none (0)
  Long-name                Video test source
  Klass                    Source/Video
  Description              Creates a test video stream
  Author                   David A. Schleef <ds@schleef.org>

Plugin Details:
  Name                     videotestsrc
  Description              Creates a test video stream
  Filename                 /usr/lib/gstreamer-1.0/libgstvideotestsrc.so
  Version                  1.16.0
  License                  LGPL
  Source module            gst-plugins-base
  Binary package           GStreamer Base Plug-ins source release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseSrc
                         +----GstPushSrc
                               +----GstVideoTestSrc

Pad Templates:
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)I420, (string)YV12, (string)YUY2, (string)UYVY, (string)AYUV, (string)VUYA, (string)RGBx, (string)BGRx, (string)xRGB, (string)xBGR, (string)RGBA, (string)BGRA, (string)ARGB, (string)ABGR, (string)RGB, (string)BGR, (string)Y41B, (string)Y42B, (string)YVYU, (string)Y444, (string)v210, (string)v216, (string)Y210, (string)Y410, (string)NV12, (string)NV21, (string)GRAY8, (string)GRAY16_BE, (string)GRAY16_LE, (string)v308, (string)RGB16, (string)BGR16, (string)RGB15, (string)BGR15, (string)UYVP, (string)A420, (string)RGB8P, (string)YUV9, (string)YVU9, (string)IYU1, (string)ARGB64, (string)AYUV64, (string)r210, (string)I420_10BE, (string)I420_10LE, (string)I422_10BE, (string)I422_10LE, (string)Y444_10BE, (string)Y444_10LE, (string)GBR, (string)GBR_10BE, (string)GBR_10LE, (string)NV16, (string)NV24, (string)NV12_64Z32, (string)A420_10BE, (string)A420_10LE, (string)A422_10BE, (string)A422_10LE, (string)A444_10BE, (string)A444_10LE, (string)NV61, (string)P010_10BE, (string)P010_10LE, (string)NV12_10LE, (string)IYU2, (string)VYUY, (string)GBRA, (string)GBRA_10BE, (string)GBRA_10LE, (string)BGR10A2_LE, (string)GBR_12BE, (string)GBR_12LE, (string)GBRA_12BE, (string)GBRA_12LE, (string)I420_12BE, (string)I420_12LE, (string)I422_12BE, (string)I422_12LE, (string)Y444_12BE, (string)Y444_12LE, (string)GRAY10_LE32, (string)NV12_10LE32, (string)NV16_10LE32, (string)NV12_10LE40 }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
         multiview-mode: { (string)mono, (string)left, (string)right }
      video/x-bayer
                 format: { (string)bggr, (string)rggb, (string)grbg, (string)gbrg }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
         multiview-mode: { (string)mono, (string)left, (string)right }

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SRC: 'src'
    Pad Template: 'src'

Element Properties:
  animation-mode      : For pattern=ball, which counter defines the position of the ball.
                        flags: readable, writable
                        Enum "GstVideoTestSrcAnimationMode" Default: 0, "frames"
                           (0): frames           - frame count
                           (1): wall-time        - wall clock time
                           (2): running-time     - running time
  background-color    : Background color to use (big-endian ARGB)
                        flags: readable, writable, controllable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4278190080 
  blocksize           : Size in bytes to read per buffer (-1 = default)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4096 
  do-timestamp        : Apply current stream time to buffers
                        flags: readable, writable
                        Boolean. Default: false
  flip                : For pattern=ball, invert colors every second.
                        flags: readable, writable
                        Boolean. Default: false
  foreground-color    : Foreground color to use (big-endian ARGB)
                        flags: readable, writable, controllable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295 
  horizontal-speed    : Scroll image number of pixels per frame (positive is scroll to the left)
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  is-live             : Whether to act as a live source
                        flags: readable, writable
                        Boolean. Default: false
  k0                  : Zoneplate zero order phase, for generating plain fields or phase offsets
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  kt                  : Zoneplate 1st order t phase, for generating phase rotation as a function of time
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  kt2                 : Zoneplate 2nd order t phase, t*t/256 cycles per picture
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  kx                  : Zoneplate 1st order x phase, for generating constant horizontal frequencies
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  kx2                 : Zoneplate 2nd order x phase, normalised to kx2/256 cycles per horizontal pixel at width/2 from origin
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  kxt                 : Zoneplate x*t product phase, normalised to kxy/256 cycles per vertical pixel at width/2 from origin
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  kxy                 : Zoneplate x*y product phase
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  ky                  : Zoneplate 1st order y phase, for generating contant vertical frequencies
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  ky2                 : Zoneplate 2nd order y phase, normailsed to ky2/256 cycles per vertical pixel at height/2 from origin
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  kyt                 : Zoneplate y*t product phase
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  motion              : For pattern=ball, what motion the ball does
                        flags: readable, writable
                        Enum "GstVideoTestSrcMotionType" Default: 0, "wavy"
                           (0): wavy             - Ball waves back and forth, up and down
                           (1): sweep            - 1 revolution per second
                           (2): hsweep           - 1/2 revolution per second, then reset to top
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "videotestsrc0"
  num-buffers         : Number of buffers to output before sending EOS (-1 = unlimited)
                        flags: readable, writable
                        Integer. Range: -1 - 2147483647 Default: -1 
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  pattern             : Type of test pattern to generate
                        flags: readable, writable
                        Enum "GstVideoTestSrcPattern" Default: 0, "smpte"
                           (0): smpte            - SMPTE 100% color bars
                           (1): snow             - Random (television snow)
                           (2): black            - 100% Black
                           (3): white            - 100% White
                           (4): red              - Red
                           (5): green            - Green
                           (6): blue             - Blue
                           (7): checkers-1       - Checkers 1px
                           (8): checkers-2       - Checkers 2px
                           (9): checkers-4       - Checkers 4px
                           (10): checkers-8       - Checkers 8px
                           (11): circular         - Circular
                           (12): blink            - Blink
                           (13): smpte75          - SMPTE 75% color bars
                           (14): zone-plate       - Zone plate
                           (15): gamut            - Gamut checkers
                           (16): chroma-zone-plate - Chroma zone plate
                           (17): solid-color      - Solid color
                           (18): ball             - Moving ball
                           (19): smpte100         - SMPTE 100% color bars
                           (20): bar              - Bar
                           (21): pinwheel         - Pinwheel
                           (22): spokes           - Spokes
                           (23): gradient         - Gradient
                           (24): colors           - Colors
  timestamp-offset    : An offset added to timestamps set on buffers (in ns)
                        flags: readable, writable
                        Integer64. Range: 0 - 2147483646999999999 Default: 0 
  typefind            : Run typefind before negotiating (deprecated, non-functional)
                        flags: readable, writable, deprecated
                        Boolean. Default: false
  xoffset             : Zoneplate 2nd order products x offset
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  yoffset             : Zoneplate 2nd order products y offset
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 

imxpxpvideosink

Factory Details:
  Rank                     primary + 1 (257)
  Long-name                Freescale PxP video sink
  Klass                    Sink/Video
  Description              Video output using the Freescale PxP API
  Author                   Carlos Rafael Giani <dv@pseudoterminal.org>

Plugin Details:
  Name                     imxpxp
  Description              video sink and image processing elements using the Freescale i.MX PxP element
  Filename                 /usr/lib/gstreamer-1.0/libgstimxpxp.so
  Version                  0.13.1
  License                  LGPL
  Source module            gstreamer-imx
  Binary package           Unknown package release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseSink
                         +----GstVideoSink
                               +----GstImxBlitterVideoSink
                                     +----GstImxPxPVideoSink

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)BGRx, (string)RGB16, (string)I420, (string)YV12, (string)Y42B, (string)NV12, (string)NV16, (string)YUY2, (string)UYVY, (string)YVYU }
                  width: [ 4, 2147483647 ]
                 height: [ 4, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'

Element Properties:
  async               : Go asynchronously to PAUSED
                        flags: readable, writable
                        Boolean. Default: true
  blocksize           : Size in bytes to pull per buffer (0 = default)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4096 
  bottom-margin       : Bottom margin
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0 
  clear-at-null       : Clear the screen by filling it with black pixels when switching to the NULL state
                        flags: readable, writable
                        Boolean. Default: false
  drop-frames         : Drop frames and output a black screen instead
                        flags: readable, writable
                        Boolean. Default: false
  enable-last-sample  : Enable the last-sample property
                        flags: readable, writable
                        Boolean. Default: true
  force-aspect-ratio  : When enabled, scaling will respect original aspect ratio
                        flags: readable, writable
                        Boolean. Default: true
  framebuffer         : The device name of the framebuffer to render to
                        flags: readable, writable
                        String. Default: "/dev/fb0"
  input-crop          : Whether or not to crop input frames based on their video crop metadata
                        flags: readable, writable
                        Boolean. Default: true
  last-sample         : The last sample received in the sink
                        flags: readable
                        Boxed pointer of type "GstSample"
  left-margin         : Left margin
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0 
  max-bitrate         : The maximum bits per second to render (0 = disabled)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  max-lateness        : Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)
                        flags: readable, writable
                        Integer64. Range: -1 - 9223372036854775807 Default: 5000000 
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "imxpxpvideosink0"
  output-rotation     : Output rotation in 90-degree steps
                        flags: readable, writable
                        Enum "ImxCanvasInnerRotation" Default: 0, "none"
                           (0): none             - No rotation
                           (1): rotate-90        - Rotate clockwise 90 degrees
                           (2): rotate-180       - Rotate 180 degrees
                           (3): rotate-270       - Rotate clockwise 270 degrees
                           (4): horizontal-flip  - Flip horizontally
                           (5): vertical-flip    - Flip vertically
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  processing-deadline : Maximum processing deadline in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 15000000 
  qos                 : Generate Quality-of-Service events upstream
                        flags: readable, writable
                        Boolean. Default: true
  render-delay        : Additional render delay of the sink in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  right-margin        : Right margin
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0 
  show-preroll-frame  : Whether to render video frames during preroll
                        flags: readable, writable
                        Boolean. Default: true
  sync                : Sync on the clock
                        flags: readable, writable
                        Boolean. Default: true
  throttle-time       : The time to keep between rendered buffers (0 = disabled)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  top-margin          : Top margin
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0 
  ts-offset           : Timestamp offset in nanoseconds
                        flags: readable, writable
                        Integer64. Range: -9223372036854775808 - 9223372036854775807 Default: 0 
  use-vsync           : Enable and use verticeal synchronization to eliminate tearing
                        flags: readable, writable
                        Boolean. Default: false
  window-height       : Window height, in pixels (0 = automatically set to the video input height)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0 
  window-width        : Window width, in pixels (0 = automatically set to the video input width)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0 
  window-x-coord      : X coordinate of the window's top left corner, in pixels
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  window-y-coord      : Y coordinate of the window's top left corner, in pixels
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
angolini commented 3 years ago

I have no idea what happened since jun-2020 until now (besides the end of the world). I'm really sorry for missing this notification.

What is the status of this issue right now?!