I received my display, saw this post about the pixels being rectangular, and thought I'd try playing a video.
I used omxplayer. I tried a short (mp4) video with a native "screen" size of 1280x720. This size corresponds to a screen with a 16:9 aspect ratio - (1280/720 = 16/9 = 1.78 (close-ish)).
First I used omxplayer without any window parameters and, as would be expected (from a 800x480 pixel screen), I got blank bars at the top & bottom of the picture. The picture also looked squashed (vertically).
However, the physical dimensions of the display area are 155x86mm. Note: 155/86 = 1.80!
So I ran omxplayer again with window parameters so that the video would fill the screen - something like this:
Code: Select all
omxplayer --win '0 0 800 480' TestVideo.mp4
So I've now got a pretty good picture with the correct aspect ratio, and no bars on the screen. I haven't looked at the source of omxplayer, but my guess is that the different horizontal & vertical scaling factors are applied in the GPU. The video played fine using a Pi2 - absolutely no stuttering, despite all that math going on in real time! For those who want to know a bit more about the video, here's some technical info from mediainfo:
Code: Select all
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 2 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 11mn 5s
Bit rate mode : Variable
Bit rate : 2 292 Kbps
Maximum bit rate : 3 500 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 25.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.099
Stream size : 182 MiB (96%)
So I guess the pixels could be squared up for python (and anything else that needs a more accurate display), with some asymmetric scaling in the GPU???
HTH
Peter