> On Wed, Nov 20, 2013 at 11:45:03PM +0000, Gohad, Tushar wrote: > > > > On Wed, Nov 20, 2013 at 09:48:26PM +0000, Gohad, Tushar wrote: > > > > > Folks, > > > > > > > > > > When filling in an HDMI AVI infoframe, how does one correctly > > > > > determine the "default" picture aspect ratio (and VIC) for CEA > > > > > modes that support multiple (4:3 and 16:9) aspect ratios. > > > > > 720x576p for example, corresponds to VIC 17 or 18: > > > > > > > > > > /* 17 - 720x576@50Hz */ > > > > > { DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 27000, 720, > > > 732, > > > > > 796, 864, 0, 576, 581, 586, 625, 0, > > > > > DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), > > > > > .vrefresh = 50, }, > > > > > /* 18 - 720x576@50Hz */ > > > > > { DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 27000, 720, > > > 732, > > > > > 796, 864, 0, 576, 581, 586, 625, 0, > > > > > DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), > > > > > .vrefresh = 50, }, > > > > > > > > > > Should the "picture aspect ratio" information be derived from > > > > > sink EDID (from detailed/cvt/standard timings)? .. possibly in > > > > > drm_add_edid_modes() and store the picture aspect ratio in > > > > > drm_display_mode perhaps, for later use? Trying to get a better > > > > > understanding of how this usually works. > > > > > > > > Oh no! someone finally discovered it! Yes, we are totally missing > > > > the picture aspect ratio information from the CEA modes. It's been > > > > on my TODO list for a couple of month but not exactly high > > > > priority. If we want to get a stab a it, we'll review the patches > > > > :) > > > > Thanks Damien. Sure, I can come up with something quick. Is the idea > > then to store aspect ratio information in drm_display_mode, possibly > > as a separate member or as a hint that's part of mode->flags? > > It seems natural to extend those flags to describe the picture aspect ratio (that > why dri-devel is in Cc., touching core DRM). Cc: dri-devel To start with we can use a single bit in drm_display_mode->flags to distinguish 16:9 vs 4:3. > > > > I realized that I did not actually answer the question. The CEA > > > modes come with their defined aspect ratio, it's part of the CEA 861 > > > standard. In this case VIC 17 is 4:3, VIC 18 is 16:9. > > > > > > > I understand the VIC/aspect ratio correlation, however in order to set > > the VIC correctly, don't we need to first determine the picture aspect > > ratio? My question really is, how do we "select" the aspect ratio for > > the ambiguous cases, such as 720x576 which neither truly 4:3 nor 16:9? > > If we expose both to user-space (through the flags), user-space is responsible > for picking one. One detail (out of many, I'm sure) is that, today, we accept > modes without any picture aspect ratio information. We need to keep that > behaviour working. Exactly the reason for the term "default aspect ratio" in original question. :) I didn't see a way to set/force an aspect ratio via KMS or other methods (xrandr). Is this for historical reasons? > > I see that "drm_add_edid_modes()" enumerates detailed, CVT, standard, > > established, CEA modes. Should picture aspect ratio determination be > > a part of that process, based on the EDID info? > > Right, so I guess you'd need to add the proper flags to the modes as you're > parsing them. May prove a bit tricky. > Okay, so we seem to agree that we should set the default picture aspect ratio as we are parsing the EDID timings info. Comments from other folks on any pitfalls of this approach? > > Section 7.2.2 of CEA-861-D spec reads - > > > > "7.2.2 Order of Dual-Aspect Ratio Detailed Timing Descriptors > > > Source devices that do not support the AVI InfoFrame (e.g., DVI > > sources) shall consider the first EDID descriptor of any dual-aspect > > ratio timing to be the display-assumed aspect ratio for that timing > > ..." > > > > How do we figure out the "display-assumed aspect ratio"? > > It seems that CEA-861-E rewords that sentence: > > "A sink not capable of receiving AVI InfoFrames shall only declare video > formats with different video timings in its EDID data structure unless the sink > declares it is capable of displaying a video timing in either picture aspect > ratio." > > This relates to 4.1: > > "For a display device to simultaneously support both formats, the source > needs a way to let the display device know the picture aspect ratio in which > the video should be displayed. A DTV shall list only one picture aspect ratio of > any dual-aspect ratio timing unless it is capable of receiving and decoding the > AVI InfoFrame defined in Section 6." > > However, it is possible for a DTV that has no support for the AVI InfoFrame to > still support both aspect ratios of such formats as a user programmable option. > In that case, the EDID Detailed Timing Descriptor could be modified during > operation to reflect the selected picture aspect ratio and the change could be > signaled to the source (e.g. with Hot Plug Detect on DVI or HDMI). The effects > on the EDID data structure are explained in Section 7.2.2. See Table 4 for > Video ID Code and Aspect Ratios." > > Still not super, super clear. Worst case scenario, we could only expose the > first (preferred) mode when several modes have the same timings but > different Picture AR on DVI and call it a day. > Thanks, Tushar _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx