GStreamer 0.10 - Rotate and Flip on iMX6D/Q

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

GStreamer 0.10 - Rotate and Flip on iMX6D/Q

2,289 Views
Richard2
Contributor III

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.

0 Kudos
Reply
5 Replies

1,521 Views
Richard2
Contributor III

Thanks for your reply.

The pipelines are in the original post, repeated here in full:

gst-launch uridecodebin uri="%VIDEO_FILE%" ! imxv4l2sink rotate=[0, 90, 180, 270]

"rotate" values 0 and 180 work. 90 and 270 result in a black screen.

gst-launch uridecodebin uri="%VIDEO_FILE%" ! mfw_isink rotation=[0,1,2,3,4,5,6,7]

"rotation": Values 0-3 work. 4-7 (+/-90 deg rotation) result in a black screen.

I see a lot of "set_crop error exceeds width/height" debug messages, and it will not play any further videos until the board is power cycled.

0 Kudos
Reply

1,522 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi,

Sorry for the delay. I just tested it in 3.14.28 and it worked. Are you using a custom board? or one of the FSL boards?

0 Kudos
Reply

1,522 Views
Richard2
Contributor III

Thanks for testing this.

We are using our own hardware that is a dual-screen system, configured with an overlay framebuffer on each screen. Did you test on this type?

We are trying to rotate playback on the HDMI overlay framebuffer.

0 Kudos
Reply

1,522 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi,

Can you share the pilelines you used?

It would be nice to try to reproduce the problem first.

Best Regards,

Alejandro

0 Kudos
Reply

1,523 Views
Richard2
Contributor III

Should I take this silence as an indication that 90 degree rotations are impossible, and that the Freescale specifications claiming that the iMX6 can do this are in fact wrong?

0 Kudos
Reply