Closed gregd72002 closed 2 years ago
I tested (using the current gstreamer1.0-plugins-good from Raspberry Pi OS)
your problem occurs when the -v4l2 option is used, but not without it. The -v4l2 option uses the gpu for "videoconvert" as well as for h264 decoding.
When I use the patched gstreamer1.0-plugins-good (patch v4l2_1_18_4_diff3.txt from the uxplay wiki instructions) there is no problem with -v4l2.
So I guess that the patch that Raspberry Pi OS applied is not as complete as the the one in the uxplay wiki. (I had thought their most recent patch was equivalent to my v4l2_1_18_4_diff2.txt patch.).
In any case, "uxplay -bt709 -vs kmssink" (without the -v4l2) seems to work OK when the screen is rotated in Raspberry Pi OS "Lite" without extra patching, so you don't need to do the wiki patch to gstreamer1.0-plugins-good (if you do the patch, you will not need the -bt709 any more).
(Please confirm this fixes your problem, and close the issue if it does)
EDIT: this issue occurs with the "Desktop" version of Raspberry PI OS as well: don't use -v4l2 for the unpatched system.
Thanks. After recompiling gstreamer1.0-plugins-good with patch v4l2_1_18_4_diff3.txt, I can now rotate the screen. Now I still need to resolve issue with no audio. But I think it is down to my setup in here.
UxPlay works fine on my RPi (Bullseye) using the following command:
uxplay -v4l2 -bt709 -vs kmssink
I can start screen mirroring from my iPhone in portrait or landscape and it works fine. I can see in debug that is uses this pipeline"appsrc name=video_source ! queue ! h264parse ! capssetter caps="video/x-h264, colorimetry=bt709" ! v4l2h264dec ! v4l2convert ! kmssink name=video_sink sync=false"
and withHowever when I rotate the device from portrait to landscape (or vice-versa), UxPlay stops streaming with the following error:
When I look into debug I see the wxh change: