RFR: 8273096: Add support for H.265/HEVC to JavaFX Media [v4]
Kevin Rushforth
kcr at openjdk.java.net
Fri Dec 17 17:26:25 UTC 2021
On Tue, 14 Dec 2021 07:27:50 GMT, Alexander Matveev <almatvee at openjdk.org> wrote:
>> - Added support for H.265/HEVC for all 3 platforms.
>> - Support is added only for .mp4 files over FILE/HTTP/HTTPS protocols. HTTP Live Streaming with H.265/HEVC is not supported.
>> - On Windows mfwrapper was introduced which uses Media Foundation APIs to decode HEVC.
>> - 10 and 12-bit HEVC was tested and also supported, however due to graphics pipeline not supporting 10-bit YUV rendering we will use color converter to convert video frame to 8-bit before sending it for rendering.
>> - Resolution upto 4k is supported.
>>
>> Additional runtime dependency requirements:
>> Windows: Windows 10 with HEVC Video Extensions installed.
>> macOS: macOS High Sierra and later
>> Linux: at least libavcodec56 and libswscale5
>>
>> Additional build dependency:
>> Linux: libswscale-dev
>
> Alexander Matveev has updated the pull request incrementally with one additional commit since the last revision:
>
> 8273096: Add support for H.265/HEVC to JavaFX Media [v5]
Latest code changes look good with one question (in two places).
@johanvos @tiainen Can one of you be the second reviewer?
modules/javafx.media/src/main/native/gstreamer/plugins/mfwrapper/mfwrapper.cpp line 646:
> 644:
> 645: if (SUCCEEDED(hr) && dwFlags != MFT_OUTPUT_STATUS_SAMPLE_READY)
> 646: return FALSE;
If the previous call failed, should you really continue with the following call to `ProcessOutput`?
modules/javafx.media/src/main/native/gstreamer/plugins/mfwrapper/mfwrapper.cpp line 760:
> 758:
> 759: HRESULT hr = decoder->pDecoder->GetOutputStatus(&dwFlags);
> 760: if (SUCCEEDED(hr) && dwFlags != MFT_OUTPUT_STATUS_SAMPLE_READY)
If the previous call failed, should you really continue with the following call to `ProcessOutput`?
-------------
PR: https://git.openjdk.java.net/jfx/pull/649
More information about the openjfx-dev
mailing list