Skip to content

Commit d9b53f0

Browse files
authored
Align plugins with Dolby Encoding Engine 6.3 release
2 parents 5a5c4eb + 9e7fa69 commit d9b53f0

File tree

10 files changed

+51
-33
lines changed

10 files changed

+51
-33
lines changed

plugins/BUILDING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Prerequisites
22

33
- CMake 3.24 or newer
4-
- gcc 9.4.0 or Visual Studio 2019
4+
- gcc 11.5 or Visual Studio 2022
55

66
# Instructions
77

plugins/code/hevc_enc/beamr/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ target_compile_features(dee_plugin_hevc_enc_beamr
99
cxx_std_11
1010
)
1111

12+
if(MSVC AND MSVC_VERSION GREATER_EQUAL 1930)
13+
# libmmt.lib conflicts with libucrt.lib in MSVC >= 19.3x
14+
# with the following error: "libucrt.lib(frexp.obj) : error LNK2005: frexp already defined in libmmt.lib(frexp_iface_c99.obj)"
15+
# most likely caused by libmmt.lib being too old and no longer fully compatibile with new libcurt.lib
16+
target_link_options(dee_plugin_hevc_enc_beamr PRIVATE "/FORCE:MULTIPLE")
17+
endif()
18+
1219
target_link_libraries(dee_plugin_hevc_enc_beamr
1320
PRIVATE
1421
dee_plugins::plugins_debugger

plugins/code/hevc_enc/beamr/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Beamr HEVC encoder plugin for Dolby Encoding Engine
22

3-
Provided source code was built and tested using Beamr5x-4.7.3.4.
3+
Provided source code was built and tested using Beamr5x-4.7.5.6.
44

55
## Build tools
66

7-
- Visual Studio 2019
8-
- gcc 9.4.0 (or higher)
7+
- Visual Studio 2022
8+
- gcc 11.5 (or higher)
99

1010
## Prerequisites
1111

plugins/code/hevc_enc/beamr/cmake/beamrConfig.cmake

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ target_link_libraries(beamr::common
2121
$<$<PLATFORM_ID:Windows>:beamr::ircmt>
2222
$<$<PLATFORM_ID:Windows>:beamr::svml_dispmt>
2323
$<$<PLATFORM_ID:Windows>:beamr::mmt>
24-
$<$<PLATFORM_ID:Linux>:beamr::irc>
25-
$<$<PLATFORM_ID:Linux>:beamr::imf>
26-
$<$<PLATFORM_ID:Linux>:beamr::svml>
24+
$<$<BOOL:${BEAMR_IRC_LIBNAME}>:beamr::irc>
25+
$<$<BOOL:${BEAMR_IMF_LIBNAME}>:beamr::imf>
26+
$<$<BOOL:${BEAMR_SVML_LIBNAME}>:beamr::svml>
2727
beamr::common_primitives
2828
)
2929

@@ -69,13 +69,22 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
6969
set(BEAMR_SVML_DISPMT_LIBNAME "svml_dispmt.lib")
7070
set(BEAMR_MMT_LIBNAME "libmmt.lib")
7171
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
72-
set(BEAMR_HEVC_ENC_LIBNAME "libhevc-enc-l64i.a")
73-
set(BEAMR_HEVC_CMN_LIBNAME "libhevc-cmn-l64i.a")
74-
set(BEAMR_VPL_LIBNAME "libvpl-l64i.a")
75-
set(BEAMR_VSL_LIBNAME "libvsl-l64i.a")
76-
set(BEAMR_IRC_LIBNAME "libirc.a")
77-
set(BEAMR_IMF_LIBNAME "libimf.a")
78-
set(BEAMR_SVML_LIBNAME "libsvml.a")
72+
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|amd64)")
73+
set(BEAMR_HEVC_ENC_LIBNAME "libhevc-enc-l64i.a")
74+
set(BEAMR_HEVC_CMN_LIBNAME "libhevc-cmn-l64i.a")
75+
set(BEAMR_VPL_LIBNAME "libvpl-l64i.a")
76+
set(BEAMR_VSL_LIBNAME "libvsl-l64i.a")
77+
set(BEAMR_IRC_LIBNAME "libirc.a")
78+
set(BEAMR_IMF_LIBNAME "libimf.a")
79+
set(BEAMR_SVML_LIBNAME "libsvml.a")
80+
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|aarch64)")
81+
set(BEAMR_HEVC_ENC_LIBNAME "libhevc-enc-larm64g.a")
82+
set(BEAMR_HEVC_CMN_LIBNAME "libhevc-cmn-larm64g.a")
83+
set(BEAMR_VPL_LIBNAME "libvpl-larm64g.a")
84+
set(BEAMR_VSL_LIBNAME "libvsl-larm64g.a")
85+
else()
86+
message(FATAL_ERROR "Unsupported linux architecture: ${CMAKE_SYSTEM_PROCESSOR}")
87+
endif()
7988
else()
8089
message(FATAL_ERROR "Not supported OS/architecture")
8190
endif()

plugins/code/hevc_enc/x265/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
# x265 HEVC encoder plugin for Dolby Encoding Engine
22

3-
The provided source code was built and tested using the x265 library version 3.5.
3+
The provided source code was built and tested using the x265 library version 4.1.
44

55
## Requirements:
66
- Windows:
7-
- Visual Studio 2019
7+
- Visual Studio 2022
88
- [NASM](https://nasm.us/pub/nasm/releasebuilds/?C=M;O=D)
99
- [CMake](https://github.com/Kitware/CMake/releases/tag/v3.31.8)
1010
- Linux:
11-
- gcc 9.4.0
11+
- gcc 11.5
1212
- [NASM](https://nasm.us/pub/nasm/releasebuilds/?C=M;O=D)
1313
- [CMake](https://github.com/Kitware/CMake/releases/tag/v3.31.8)
1414

1515
## Building x265 library
1616
The x265 library has to be build with multi-bitdepth (8/10/12-bit) support and in shared format.
17-
- Navigate to [x265 git repository](https://bitbucket.org/multicoreware/x265_git/src/3.5/build/) and locate `multilib` file for your platform.
17+
- Navigate to [x265 git repository](https://bitbucket.org/multicoreware/x265_git/src/4.1/build/) and locate `multilib` file for your platform.
1818
- Execute `multilib` file to build `x265` library.
1919
- Multi-bitdepth library will be located in newly created `8bit` directory
2020

plugins/code/hevc_enc/x265/src/hevc_enc_x265.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,10 @@ x265_init
278278
{
279279
native_params.push_back({"level-idc", "5.1"});
280280
native_params.push_back({"uhd-bd", ""});
281+
/* When encoding Dolby Vision profile 7 (BD), placement of B/P frames must be deterministic.
282+
This can be achieved by forcing B frame every time.
283+
IDRs and P frames are still emitted, but only at known positions.
284+
It should change the interpretation of option "bframes", from "max", to "exact" number. */
281285
native_params.push_back({"b-adapt", "0"});
282286
}
283287

@@ -450,14 +454,6 @@ x265_process
450454
input_picture.planes[1] = picture[i].plane[1];
451455
input_picture.planes[2] = picture[i].plane[2];
452456

453-
454-
/* When encoding Dolby Vision profile 7 (BD), placement of B/P frames must be deterministic.
455-
This can be achieved by forcing B frame every time.
456-
IDRs and P frames are still emitted, but only at known positions.
457-
It should change the interpretation of option "bframes", from "max", to "exact" number. */
458-
if (true == state->data->uhd_bd)
459-
input_picture.sliceType = X265_TYPE_B;
460-
461457
int num_encoded = state->api->encoder_encode(state->encoder, &p_nal, &nal_count, &input_picture, NULL);
462458
if (num_encoded < 0)
463459
{

plugins/code/hevc_enc/x265/src/hevc_enc_x265_utils.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -916,7 +916,7 @@ cast_nal_type(const uint32_t type)
916916
if (type == NAL_UNIT_CODED_SLICE_TRAIL_N) out = HEVC_ENC_NAL_UNIT_CODED_SLICE_TRAIL_N;
917917
else if (type == NAL_UNIT_CODED_SLICE_TRAIL_R) out = HEVC_ENC_NAL_UNIT_CODED_SLICE_TRAIL_R;
918918
else if (type == NAL_UNIT_CODED_SLICE_TSA_N) out = HEVC_ENC_NAL_UNIT_CODED_SLICE_TSA_N;
919-
else if (type == NAL_UNIT_CODED_SLICE_TLA_R) out = HEVC_ENC_NAL_UNIT_CODED_SLICE_TLA_R;
919+
else if (type == NAL_UNIT_CODED_SLICE_TSA_R) out = HEVC_ENC_NAL_UNIT_CODED_SLICE_TLA_R;
920920
else if (type == NAL_UNIT_CODED_SLICE_STSA_N) out = HEVC_ENC_NAL_UNIT_CODED_SLICE_STSA_N;
921921
else if (type == NAL_UNIT_CODED_SLICE_STSA_R) out = HEVC_ENC_NAL_UNIT_CODED_SLICE_STSA_R;
922922
else if (type == NAL_UNIT_CODED_SLICE_RADL_R) out = HEVC_ENC_NAL_UNIT_CODED_SLICE_RADL_N;

plugins/code/j2k_dec/kakadu/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
The provided source code was built and tested using the Kakadu SDK version 8.4.
44

55
## Build tools:
6-
- Visual Studio 2019
7-
- gcc 9.4.0
6+
- Visual Studio 2022
7+
- gcc 11.5
88

99
## Prerequisites:
1010

plugins/code/j2k_dec/kakadu/cmake/kakaduConfig.cmake

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,14 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
2727
set(KAKADU_IMPLIBDIR "../lib_x64")
2828
set(KAKADU_IMPLIBNAME "kdu_v84R.lib")
2929
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
30-
set(KAKADU_LIBDIR "lib/Linux-x86-64-gcc")
31-
set(KAKADU_LIBNAME "libkdu_v84R.so")
30+
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|aarch64)")
31+
set(KAKADU_LIBDIR "lib/Linux-arm-64-gcc")
32+
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|amd64)")
33+
set(KAKADU_LIBDIR "lib/Linux-x86-64-gcc")
34+
else()
35+
message(FATAL_ERROR "Unsupported Linux architecture")
36+
endif()
37+
set(KAKADU_LIBNAME "libkdu_v84R.so")
3238
else()
3339
message(FATAL_ERROR "Not supported OS/architecture")
3440
endif()

plugins/code/tiff_dec/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
The provided source code was built and tested using the libtiff version 4.7.0.
44

55
## Build tools:
6-
- Visual Studio 2019
7-
- gcc 9.4.0
6+
- Visual Studio 2022
7+
- gcc 11.5
88

99
## Prerequisites:
1010

0 commit comments

Comments
 (0)