AnsweredAssumed Answered

GStreamer 0.10 - Rotate and Flip on iMX6D/Q

Question asked by Richard Thompson on Oct 28, 2015
Latest reply on Dec 18, 2015 by Richard Thompson

Platform is iMX6 Quad, Linux-3.14.28, gstreamer 0.10.36, gst-fsl-plugins-4.0.3, firmware-imx-3.14.28-1.0.0

 

Dual screen, video playback on HDMI at 1080p

 

I am trying to use gstreamer 0.10 to play back scaled, positioned, rotated and flipped video on the HDMI overlay output (fb1)

- We require 0, 90, 180, 270 degree rotations, and optional Horizontal flip

 

I have tried many different pipelines, but none seem to be usable.

 

gst-launch uridecodebin ! imxv4l2sink

MFW_GST_V4LSINK_PLUGIN 4.0.3

Scaling works well ("axis-top", "axis-left", "disp-width", "disp-height")

 

"rotate": Only works for 0 and 180 degree90 and 270 degree rotations result in a black screen.

It doesn't seem to matter what output size I use.

 

gst-launch uridecodebin ! mfw_isink

MFW_GST_ISINK_PLUGIN 4.0.3

Scaling works but often flickers as the pipeline transitions from PAUSE to PLAY
The scaled frame is briefly drawn at another location on screen before being drawn at the correct one.

 

"rotation": Values 0-3 work as expected

Values 4-7 (+/-90 deg rotation) fail, and I see a lot of "set_crop error exceeds width/height" debug messages.

It will then not play any further videos until the board is power cycled.

 

If I reduce the video size down to 800x600 then it works - however this is not an acceptable size, we must be able to play full-screen, full-resolution video.

 

It would be ok to rotate and flip the entire framebuffer, however this must be selectable at runtime - we cannot restart the machine to apply this.

Outcomes