RFR: 8336277: Colors are incorrect when playing H.265/HEVC on Windows 11

Andy Goryachev angorya at openjdk.org
Tue Aug 6 17:26:36 UTC 2024


On Wed, 31 Jul 2024 03:45:20 GMT, Alexander Matveev <almatvee at openjdk.org> wrote:

> - For some reason H.265 decoder on Windows accepts proposed media format without error, but does not actually change output format.
> - For 8-bit we proposed IYUV, but decoder outputs NV12. For 10-bit we proposed NV12, but decoder outputs P010. As result colors where not correct during rendering.
> - To detect such condition we will propose media format and then read it back to determine actual decoder output format.
> - Added color conversion for P010 format, which was missing. P010 conversion is done in two stages (P010->NV12->IYUV), since color converter does not support direct conversion from P010 to IYUV.
> - Note: Color conversion from P010->NV12->IYUV and NV12->IYUV is temporary solution and will be disabled/removed once JDK-8337686 is implemented. JDK-8337686 will add native support for P010 and NV12 to Graphics.
> - Added debug trace for formats. Disabled by default.

not yet a review.
noticed an issue on macOS.  to reproduce, open a clip from the ticket, hit "play" and then drag the position slider someplace else.
in the master branch, I see these in stderr:

2024-08-06 10:19:04.010 java[52568:1934744] CMTimeMakeWithSeconds(159.122 seconds, timescale 1): warning: error of -0.122 introduced due to very low timescale
2024-08-06 10:19:09.380 java[52568:1934744] CMTimeMakeWithSeconds(287.769 seconds, timescale 1): warning: error of -0.769 introduced due to very low timescale


with this change, I see an exception in com.sun.media.jfxmediaimpl.NativeMediaPlayer:1530 because VideoResolution is being constructed with width=0 and height=0

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1525#issuecomment-2271782737


More information about the openjfx-dev mailing list