diff --git a/.gitignore b/.gitignore index e89d22e299..42b5b557bc 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ ci/ # Development environment .venv/ .vscode-server/ +.vscode/ ngc-cli/ CTestConfig.cmake .ngc diff --git a/CMakeLists.txt b/CMakeLists.txt index 300c6acd1b..05996be476 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/Dockerfile b/Dockerfile index 4bd140e8e5..a4f1dfb957 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/CMakeLists.txt b/applications/CMakeLists.txt index 68ebbd08bd..c554cd38d8 100644 --- a/applications/CMakeLists.txt +++ b/applications/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -38,6 +38,10 @@ add_holohub_application(deltacast_transmitter DEPENDS OPERATORS deltacast_videomaster ) +add_holohub_application(deltacast_receiver DEPENDS + OPERATORS deltacast_videomaster + ) + add_holohub_application(depth_anything_v2) add_subdirectory(distributed) diff --git a/applications/adv_networking_bench/CMakeLists.txt b/applications/adv_networking_bench/CMakeLists.txt index ebc3c4c96d..229931d92b 100644 --- a/applications/adv_networking_bench/CMakeLists.txt +++ b/applications/adv_networking_bench/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/adv_networking_bench_default_sw_loopback.yaml b/applications/adv_networking_bench/adv_networking_bench_default_sw_loopback.yaml index ede50f8300..3a2a4d8adf 100644 --- a/applications/adv_networking_bench/adv_networking_bench_default_sw_loopback.yaml +++ b/applications/adv_networking_bench/adv_networking_bench_default_sw_loopback.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/adv_networking_bench_default_tx_rx.yaml b/applications/adv_networking_bench/adv_networking_bench_default_tx_rx.yaml index bb96181e64..85326b71e4 100644 --- a/applications/adv_networking_bench/adv_networking_bench_default_tx_rx.yaml +++ b/applications/adv_networking_bench/adv_networking_bench_default_tx_rx.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/adv_networking_bench_default_tx_rx_hds.yaml b/applications/adv_networking_bench/adv_networking_bench_default_tx_rx_hds.yaml index ce14bb7688..9c7ad27181 100644 --- a/applications/adv_networking_bench/adv_networking_bench_default_tx_rx_hds.yaml +++ b/applications/adv_networking_bench/adv_networking_bench_default_tx_rx_hds.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/adv_networking_bench_default_tx_rx_multi_q_hds.yaml b/applications/adv_networking_bench/adv_networking_bench_default_tx_rx_multi_q_hds.yaml index 9219078838..777a517588 100644 --- a/applications/adv_networking_bench/adv_networking_bench_default_tx_rx_multi_q_hds.yaml +++ b/applications/adv_networking_bench/adv_networking_bench_default_tx_rx_multi_q_hds.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/adv_networking_bench_rdma_tx_rx.yaml b/applications/adv_networking_bench/adv_networking_bench_rdma_tx_rx.yaml index cf3c3c1a5c..731a81913b 100644 --- a/applications/adv_networking_bench/adv_networking_bench_rdma_tx_rx.yaml +++ b/applications/adv_networking_bench/adv_networking_bench_rdma_tx_rx.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/adv_networking_bench_rivermax_tx_rx.yaml b/applications/adv_networking_bench/adv_networking_bench_rivermax_tx_rx.yaml index 1dd9d6d33f..b107740ad9 100644 --- a/applications/adv_networking_bench/adv_networking_bench_rivermax_tx_rx.yaml +++ b/applications/adv_networking_bench/adv_networking_bench_rivermax_tx_rx.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/adv_networking_bench_rx_arb_match.yaml b/applications/adv_networking_bench/adv_networking_bench_rx_arb_match.yaml index 2ec965f14b..3f11daae7a 100644 --- a/applications/adv_networking_bench/adv_networking_bench_rx_arb_match.yaml +++ b/applications/adv_networking_bench/adv_networking_bench_rx_arb_match.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/cpp/CMakeLists.txt b/applications/adv_networking_bench/cpp/CMakeLists.txt index 825c97eb80..d5c1d636a4 100644 --- a/applications/adv_networking_bench/cpp/CMakeLists.txt +++ b/applications/adv_networking_bench/cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/cpp/default_bench_op_tx.h b/applications/adv_networking_bench/cpp/default_bench_op_tx.h index c8eeb520d3..fb0b3dc096 100644 --- a/applications/adv_networking_bench/cpp/default_bench_op_tx.h +++ b/applications/adv_networking_bench/cpp/default_bench_op_tx.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/cpp/kernels.cu b/applications/adv_networking_bench/cpp/kernels.cu index c71ab0c7a2..fed4477345 100644 --- a/applications/adv_networking_bench/cpp/kernels.cu +++ b/applications/adv_networking_bench/cpp/kernels.cu @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/cpp/main.cpp b/applications/adv_networking_bench/cpp/main.cpp index ebfbe7267f..13812c47c9 100644 --- a/applications/adv_networking_bench/cpp/main.cpp +++ b/applications/adv_networking_bench/cpp/main.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/cpp/rdma_bench.h b/applications/adv_networking_bench/cpp/rdma_bench.h index e5d8a37486..68c6e31992 100644 --- a/applications/adv_networking_bench/cpp/rdma_bench.h +++ b/applications/adv_networking_bench/cpp/rdma_bench.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/cpp/testing/benchmark_utils.py b/applications/adv_networking_bench/cpp/testing/benchmark_utils.py index ee4a548202..3063f2c697 100644 --- a/applications/adv_networking_bench/cpp/testing/benchmark_utils.py +++ b/applications/adv_networking_bench/cpp/testing/benchmark_utils.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/cpp/testing/io_utils.py b/applications/adv_networking_bench/cpp/testing/io_utils.py index 133460a172..88bf5890c6 100644 --- a/applications/adv_networking_bench/cpp/testing/io_utils.py +++ b/applications/adv_networking_bench/cpp/testing/io_utils.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/cpp/testing/nvidia_nic_utils.py b/applications/adv_networking_bench/cpp/testing/nvidia_nic_utils.py index 5a7a01d477..1de5a1f735 100644 --- a/applications/adv_networking_bench/cpp/testing/nvidia_nic_utils.py +++ b/applications/adv_networking_bench/cpp/testing/nvidia_nic_utils.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/adv_networking_bench/cpp/testing/test_ano_bench.py b/applications/adv_networking_bench/cpp/testing/test_ano_bench.py index b7b250e179..02ac594444 100644 --- a/applications/adv_networking_bench/cpp/testing/test_ano_bench.py +++ b/applications/adv_networking_bench/cpp/testing/test_ano_bench.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/aja_video_capture/CMakeLists.txt b/applications/aja_video_capture/CMakeLists.txt index 5e874c120f..e4f2c7fb9a 100644 --- a/applications/aja_video_capture/CMakeLists.txt +++ b/applications/aja_video_capture/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/basic_networking_ping/CMakeLists.txt b/applications/basic_networking_ping/CMakeLists.txt index 38e4b50215..b92f56bb42 100644 --- a/applications/basic_networking_ping/CMakeLists.txt +++ b/applications/basic_networking_ping/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/basic_networking_ping/python/basic_networking_ping.py b/applications/basic_networking_ping/python/basic_networking_ping.py index ebdd4f7340..501f12b2db 100644 --- a/applications/basic_networking_ping/python/basic_networking_ping.py +++ b/applications/basic_networking_ping/python/basic_networking_ping.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/colonoscopy_segmentation/CMakeLists.txt b/applications/colonoscopy_segmentation/CMakeLists.txt index bdff230893..e128bd2aa1 100644 --- a/applications/colonoscopy_segmentation/CMakeLists.txt +++ b/applications/colonoscopy_segmentation/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/cvcuda_basic/CMakeLists.txt b/applications/cvcuda_basic/CMakeLists.txt index aa472c6944..c7bba91241 100644 --- a/applications/cvcuda_basic/CMakeLists.txt +++ b/applications/cvcuda_basic/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/cvcuda_basic/python/cvcuda_basic.py b/applications/cvcuda_basic/python/cvcuda_basic.py index b7e858ddf6..882cdef585 100644 --- a/applications/cvcuda_basic/python/cvcuda_basic.py +++ b/applications/cvcuda_basic/python/cvcuda_basic.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/deltacast_receiver/CMakeLists.txt b/applications/deltacast_receiver/CMakeLists.txt new file mode 100644 index 0000000000..4b6e06849f --- /dev/null +++ b/applications/deltacast_receiver/CMakeLists.txt @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +cmake_minimum_required(VERSION 3.20) +project(deltacast_receiver_apps LANGUAGES NONE) + +add_subdirectory(cpp) + +if(HOLOHUB_BUILD_PYTHON) + add_subdirectory(python) +endif() \ No newline at end of file diff --git a/applications/deltacast_receiver/README.md b/applications/deltacast_receiver/README.md new file mode 100644 index 0000000000..6363e426f1 --- /dev/null +++ b/applications/deltacast_receiver/README.md @@ -0,0 +1,35 @@ +# Deltacast Videomaster Receiver + +This application demonstrates the use of videomaster_source to receive and display video streams from a Deltacast capture card using Holoviz for visualization. + +## Requirements + +This application uses the DELTACAST.TV capture card for input stream. Contact [DELTACAST.TV](https://www.deltacast.tv/) for more details on how to access the SDK and setup your environment. + +## Build Instructions + +See instructions from the top level README on how to build this application. +Note that this application requires to provide the VideoMaster_SDK_DIR if it is not located in a default location on the system. +This can be done with the following command, from the top level Holohub source directory: + +```bash +./holohub build --local deltacast_receiver --configure-args="-DVideoMaster_SDK_DIR=" +``` + +## Run Instructions + +### C++ Application + +From the build directory, run the command: + +```bash +./applications/deltacast_receiver/cpp/deltacast_receiver +``` + +### Python Application + +From the build directory, run the command: + +```bash +python3 applications/deltacast_receiver/python/deltacast_receiver.py +``` diff --git a/applications/deltacast_receiver/cpp/CMakeLists.txt b/applications/deltacast_receiver/cpp/CMakeLists.txt new file mode 100644 index 0000000000..f6b49a2dba --- /dev/null +++ b/applications/deltacast_receiver/cpp/CMakeLists.txt @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +cmake_minimum_required(VERSION 3.20) +project(deltacast_receiver CXX) + +find_package(holoscan 1.0 REQUIRED CONFIG + PATHS "/opt/nvidia/holoscan" "/workspace/holoscan-sdk/install") + +# CPP Application +add_executable(deltacast_receiver + main.cpp +) + +target_link_libraries(deltacast_receiver + PRIVATE + holoscan::core + holoscan::ops::format_converter + holoscan::ops::holoviz + holoscan::videomaster +) + +# Copy config file +add_custom_target(deltacast_receiver_yaml + COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/deltacast_receiver.yaml" ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS "deltacast_receiver.yaml" + BYPRODUCTS "deltacast_receiver.yaml" +) +add_dependencies(deltacast_receiver deltacast_receiver_yaml) diff --git a/applications/deltacast_receiver/cpp/deltacast_receiver.yaml b/applications/deltacast_receiver/cpp/deltacast_receiver.yaml new file mode 100644 index 0000000000..7930b3289d --- /dev/null +++ b/applications/deltacast_receiver/cpp/deltacast_receiver.yaml @@ -0,0 +1,46 @@ +%YAML 1.2 +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +deltacast: + width: 1920 + height: 1080 + progressive: true + framerate: 30 + board: 0 + input: 0 + rdma: false + +format_converter: + in_dtype: "rgb888" + alpha_value: 255 + out_dtype: "rgba8888" + out_channel_order: [2,1,0,3] + +drop_alpha_channel_converter: + in_dtype: "rgba8888" + out_dtype: "rgb888" + resize_height: 270 + resize_width: 480 + +holoviz: + tensors: + - name: "" + type: color + opacity: 1.0 + priority: 0 + width: 480 + height: 270 \ No newline at end of file diff --git a/applications/deltacast_receiver/cpp/main.cpp b/applications/deltacast_receiver/cpp/main.cpp new file mode 100644 index 0000000000..c797a99374 --- /dev/null +++ b/applications/deltacast_receiver/cpp/main.cpp @@ -0,0 +1,128 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#include + +class App : public holoscan::Application { + public: + /** Compose function */ + void compose() override { + using namespace holoscan; + + uint32_t width = from_config("deltacast.width").as(); + uint32_t height = from_config("deltacast.height").as(); + bool use_rdma = from_config("deltacast.rdma").as(); + uint64_t source_block_size = width * height * 4; + uint64_t source_num_blocks = use_rdma ? 3 : 4; + + // Create the VideoMaster source operator (receiver) with explicit arguments + auto source = make_operator( + "deltacast_source", + Arg("rdma") = use_rdma, + Arg("board") = from_config("deltacast.board").as(), + Arg("input") = from_config("deltacast.input").as(), + Arg("width") = width, + Arg("height") = height, + Arg("progressive") = from_config("deltacast.progressive").as(), + Arg("framerate") = from_config("deltacast.framerate").as()); + + auto drop_alpha_channel_converter = make_operator( + "drop_alpha_channel_converter", + from_config("drop_alpha_channel_converter"), + Arg("pool") = + make_resource("pool", 1, source_block_size, source_num_blocks)); + + // Format converter to prepare for visualization + auto format_converter = + make_operator("format_converter", + from_config("format_converter"), + Arg("pool") = make_resource( + "converter_pool", 1, source_block_size, + source_num_blocks)); + + auto visualizer = make_operator( + "holoviz", + from_config("holoviz"), + Arg("allocator") = make_resource("holoviz_allocator")); + + // Connect the pipeline: source -> format_converter -> holoviz + add_flow(source, drop_alpha_channel_converter); + add_flow(drop_alpha_channel_converter, format_converter); + add_flow(format_converter, visualizer, {{"", "receivers"}}); + } +}; + +/** Helper function to parse the command line arguments */ +bool parse_arguments(int argc, char** argv, std::string& config_name) { + static struct option long_options[] = { + {"config", required_argument, 0, 'c' }, + {"help", no_argument, 0, 'h' }, + {0, 0, 0, 0 } + }; + + int c; + while ((c = getopt_long(argc, argv, "c:h", long_options, NULL)) != -1 && c != '?') { + switch (c) { + case 'c': + config_name = optarg; + break; + case 'h': + std::cout << "Usage: " << argv[0] << " [options] [config_file]\n"; + std::cout << "Options:\n"; + std::cout << " -c, --config Configuration file path\n"; + std::cout << " -h, --help Show this help message\n"; + std::cout << "\nExample:\n"; + std::cout << " " << argv[0] << " deltacast_receiver.yaml\n"; + return false; + default: + std::cout << "Unknown arguments returned: " << c << std::endl; + return false; + } + } + + if (optind < argc) { + config_name = argv[optind++]; + } + return true; +} + +int main(int argc, char** argv) { + auto app = holoscan::make_application(); + + // Parse the arguments + std::string config_name = ""; + if (!parse_arguments(argc, argv, config_name)) { + return 1; + } + + if (config_name != "") { + app->config(config_name); + } else { + auto config_path = std::filesystem::weakly_canonical(argv[0]).parent_path(); + config_path += "/deltacast_receiver.yaml"; + app->config(config_path); + } + + app->run(); + + return 0; +} diff --git a/applications/deltacast_receiver/cpp/metadata.json b/applications/deltacast_receiver/cpp/metadata.json new file mode 100644 index 0000000000..54b2ffc900 --- /dev/null +++ b/applications/deltacast_receiver/cpp/metadata.json @@ -0,0 +1,43 @@ +{ + "application": { + "name": "Deltacast Videomaster Receiver", + "authors": [ + { + "name": "Laurent Radoux", + "affiliation": "DELTACAST" + }, + { + "name": "Pierre PERICK", + "affiliation": "DELTACAST" + } + ], + "language": "C++", + "version": "1.0", + "changelog": { + "1.0": "Initial Release - Simplified receiver application for video display without AI processing" + }, + "holoscan_sdk": { + "minimum_required_version": "3.0.0", + "tested_versions": [ + "3.6.0" + ] + }, + "videomaster_sdk": { + "minimum_required_version": "6.26.0", + "tested_versions": [ + "6.32.0" + ] + }, + "platforms": [ + "x86_64", + "aarch64" + ], + "tags": ["Video", "Deltacast", "Receiver", "Display", "Holoviz", "RDMA", "GPUDirect"], + "ranking": 2, + "requirements": {}, + "run": { + "command": "/deltacast_receiver", + "workdir": "holohub_bin" + } + } +} diff --git a/applications/deltacast_receiver/python/CMakeLists.txt b/applications/deltacast_receiver/python/CMakeLists.txt new file mode 100644 index 0000000000..6e7ec0ad28 --- /dev/null +++ b/applications/deltacast_receiver/python/CMakeLists.txt @@ -0,0 +1,46 @@ +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# To get the environment path +find_package(holoscan 1.0 REQUIRED CONFIG PATHS "/opt/nvidia/holoscan" "/workspace/holoscan-sdk/install") + +# Add testing +if(BUILD_TESTING) + + # Add test + add_test(NAME deltacast_receiver_python_test + COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/deltacast_receiver.py + --config ${CMAKE_CURRENT_SOURCE_DIR}/deltacast_receiver.yaml + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) + + set_tests_properties(deltacast_receiver_python_test PROPERTIES + PASS_REGULAR_EXPRESSION "Running the graph;" + FAIL_REGULAR_EXPRESSION "[^a-z]Error;ERROR;Failed") + + set_property(TEST deltacast_receiver_python_test PROPERTY ENVIRONMENT + "PYTHONPATH=${GXF_LIB_DIR}/../python/lib:${CMAKE_BINARY_DIR}/python/lib") + +endif() + +# Install application and dependencies into the install/ directory for packaging +install( + FILES deltacast_receiver.py + DESTINATION bin/deltacast_receiver/python +) + +install( + FILES deltacast_receiver.yaml + DESTINATION bin/deltacast_receiver/python +) diff --git a/applications/deltacast_receiver/python/deltacast_receiver.py b/applications/deltacast_receiver/python/deltacast_receiver.py new file mode 100644 index 0000000000..4cf3c6564d --- /dev/null +++ b/applications/deltacast_receiver/python/deltacast_receiver.py @@ -0,0 +1,139 @@ +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import sys +from argparse import ArgumentParser + +from holoscan.core import Application +from holoscan.operators import FormatConverterOp, HolovizOp +from holoscan.resources import BlockMemoryPool, MemoryStorageType, UnboundedAllocator + +from holohub.videomaster import VideoMasterSourceOp + + +class DeltacastReceiverApp(Application): + def __init__(self): + """Initialize the deltacast receiver application.""" + super().__init__() + self.name = "Deltacast Receiver" + + def compose(self): + """ + Compose the application by setting up the operators and their connections. + """ + # Retrieve VideoMaster parameters + deltacast_kwargs = self.kwargs("deltacast") + width = deltacast_kwargs.get("width", 1920) + height = deltacast_kwargs.get("height", 1080) + use_rdma = deltacast_kwargs.get("rdma", False) + + # Calculate source block size and count and define the source pool parameters + source_block_size = width * height * 4 + source_block_count = 3 if use_rdma else 4 + + source_pool_kwargs = dict( + storage_type=MemoryStorageType.DEVICE, + block_size=source_block_size, + num_blocks=source_block_count, + ) + + # Initialize operators + source = VideoMasterSourceOp( + self, + name="deltacast_source", + rdma=use_rdma, + board=deltacast_kwargs.get("board", 0), + input=deltacast_kwargs.get("input", 0), + width=width, + height=height, + progressive=deltacast_kwargs.get("progressive", True), + framerate=deltacast_kwargs.get("framerate", 30), + ) + + # Format converter to prepare for visualization + format_converter = FormatConverterOp( + self, + name="format_converter", + pool=BlockMemoryPool(self, name="converter_pool", **source_pool_kwargs), + **self.kwargs("format_converter"), + ) + + # Drop alpha channel converter (matches C++ implementation exactly) + drop_alpha_channel_converter = FormatConverterOp( + self, + name="drop_alpha_channel_converter", + pool=BlockMemoryPool(self, name="drop_alpha_pool", **source_pool_kwargs), + **self.kwargs("drop_alpha_channel_converter"), + ) + + # Holoviz for visualization + visualizer = HolovizOp( + self, + name="holoviz", + allocator=UnboundedAllocator(self, name="holoviz_allocator"), + **self.kwargs("holoviz"), + ) + + # Connect the pipeline: source -> drop_alpha_channel_converter -> format_converter -> holoviz + # This matches the exact flow from the C++ implementation + self.add_flow(source, drop_alpha_channel_converter) + self.add_flow(drop_alpha_channel_converter, format_converter) + self.add_flow(format_converter, visualizer, {("", "receivers")}) + + +def parse_config(): + """ + Parse command line arguments and validate paths. + + Returns + ------- + args : argparse.Namespace + Parsed command-line arguments. + """ + # Parse command line arguments + parser = ArgumentParser(description="DeltaCast Receiver demo application.") + parser.add_argument( + "-c", + "--config", + type=str, + default=os.path.join(os.path.dirname(__file__), "deltacast_receiver.yaml"), + help="Path to the configuration file to override the default config file location. If not provided, the deltacast_receiver.yaml in root directory will be used. (default location: %(default)s)", + ) + + args = parser.parse_args() + + # Ensure the configuration file exists + if not os.path.exists(args.config): + raise FileNotFoundError( + f"Configuration file {args.config} does not exist at expected location. Use --config to specify the correct path." + ) + + return args + + +def main(): + try: + args = parse_config() + app = DeltacastReceiverApp() + app.config(args.config) + app.run() + except Exception as e: + print(f"Error: {e}") + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/applications/deltacast_receiver/python/deltacast_receiver.yaml b/applications/deltacast_receiver/python/deltacast_receiver.yaml new file mode 100644 index 0000000000..7930b3289d --- /dev/null +++ b/applications/deltacast_receiver/python/deltacast_receiver.yaml @@ -0,0 +1,46 @@ +%YAML 1.2 +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +deltacast: + width: 1920 + height: 1080 + progressive: true + framerate: 30 + board: 0 + input: 0 + rdma: false + +format_converter: + in_dtype: "rgb888" + alpha_value: 255 + out_dtype: "rgba8888" + out_channel_order: [2,1,0,3] + +drop_alpha_channel_converter: + in_dtype: "rgba8888" + out_dtype: "rgb888" + resize_height: 270 + resize_width: 480 + +holoviz: + tensors: + - name: "" + type: color + opacity: 1.0 + priority: 0 + width: 480 + height: 270 \ No newline at end of file diff --git a/applications/deltacast_receiver/python/metadata.json b/applications/deltacast_receiver/python/metadata.json new file mode 100644 index 0000000000..ef30616b63 --- /dev/null +++ b/applications/deltacast_receiver/python/metadata.json @@ -0,0 +1,39 @@ +{ + "application": { + "name": "Deltacast Videomaster Receiver", + "authors": [ + { + "name": "Pierre PERICK", + "affiliation": "DELTACAST" + } + ], + "language": "Python", + "version": "1.0", + "changelog": { + "1.0": "Initial Release" + }, + "holoscan_sdk": { + "minimum_required_version": "3.0.0", + "tested_versions": [ + "3.6.0" + ] + }, + "videomaster_sdk": { + "minimum_required_version": "6.26.0", + "tested_versions": [ + "6.32.0" + ] + }, + "platforms": [ + "x86_64", + "aarch64" + ], + "tags": ["Video", "Deltacast", "Display", "RDMA", "GPUDirect", "Receiver"], + "ranking": 2, + "requirements": {}, + "run": { + "command": "python3 /deltacast_receiver.py", + "workdir": "holohub_bin" + } + } +} diff --git a/applications/deltacast_transmitter/CMakeLists.txt b/applications/deltacast_transmitter/CMakeLists.txt index db70bab3a2..72d6b60b87 100644 --- a/applications/deltacast_transmitter/CMakeLists.txt +++ b/applications/deltacast_transmitter/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 DELTACAST.TV. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/deltacast_transmitter/cpp/deltacast_transmitter.yaml b/applications/deltacast_transmitter/cpp/deltacast_transmitter.yaml index 5d3b36c639..cebc5ff92c 100644 --- a/applications/deltacast_transmitter/cpp/deltacast_transmitter.yaml +++ b/applications/deltacast_transmitter/cpp/deltacast_transmitter.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 DELTACAST.TV. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -14,8 +14,6 @@ # See the License for the specific language governing permissions and # limitations under the License. --- -extensions: - - lib/gxf_extensions/libgxf_videomaster.so replayer: basename: "surgical_video" @@ -36,7 +34,7 @@ deltacast: width: 1920 height: 1080 progressive: true - framerate: 25 + framerate: 30 board: 0 output: 0 rdma: false diff --git a/applications/deltacast_transmitter/cpp/main.cpp b/applications/deltacast_transmitter/cpp/main.cpp index 01688b95d3..be75e144ad 100644 --- a/applications/deltacast_transmitter/cpp/main.cpp +++ b/applications/deltacast_transmitter/cpp/main.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 DELTACAST.TV. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -35,7 +35,7 @@ class App : public holoscan::Application { uint32_t width = from_config("deltacast.width").as(); uint32_t height = from_config("deltacast.height").as(); - uint64_t source_block_size = width * height * 4 * 4; + uint64_t source_block_size = width * height * 4; uint64_t source_num_blocks = from_config("deltacast.rdma").as() ? 3 : 4; auto source = make_operator("replayer", from_config("replayer"), @@ -49,8 +49,7 @@ class App : public holoscan::Application { auto visualizer = make_operator( "deltacast", - from_config("deltacast"), - Arg("pool") = make_resource("pool")); + from_config("deltacast")); add_flow(source, format_converter); add_flow(format_converter, visualizer); diff --git a/applications/deltacast_transmitter/cpp/metadata.json b/applications/deltacast_transmitter/cpp/metadata.json index a69e71815a..834d495c00 100644 --- a/applications/deltacast_transmitter/cpp/metadata.json +++ b/applications/deltacast_transmitter/cpp/metadata.json @@ -22,14 +22,16 @@ "tested_versions": [ "0.5.0", "2.9.0", - "3.0.0" + "3.0.0", + "3.6.0" ] }, "videomaster_sdk": { "minimum_required_version": "6.26.0", "tested_versions": [ "6.29.0", - "6.30.0" + "6.30.0", + "6.32.0" ] }, "platforms": [ diff --git a/applications/deltacast_transmitter/python/CMakeLists.txt b/applications/deltacast_transmitter/python/CMakeLists.txt index cd0f4b6dc9..d6428c8e94 100644 --- a/applications/deltacast_transmitter/python/CMakeLists.txt +++ b/applications/deltacast_transmitter/python/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 DELTACAST.TV. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,11 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +# To get the environment path +find_package(holoscan 1.0 REQUIRED CONFIG PATHS "/opt/nvidia/holoscan" "/workspace/holoscan-sdk/install") + # Add testing if(BUILD_TESTING) - # To get the environment path - find_package(holoscan 1.0 REQUIRED CONFIG PATHS "/opt/nvidia/holoscan" "/workspace/holoscan-sdk/install") - # Configure the yaml file for testing file(READ "${CMAKE_CURRENT_SOURCE_DIR}/deltacast_transmitter.yaml" CONFIG_FILE) @@ -31,9 +31,6 @@ if(BUILD_TESTING) --config ${CMAKE_CURRENT_BINARY_DIR}/deltacast_transmitter.yaml WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) - set_property(TEST deltacast_transmitter_python_test PROPERTY ENVIRONMENT - "PYTHONPATH=${GXF_LIB_DIR}/../python/lib:${CMAKE_BINARY_DIR}/python/lib") - set_tests_properties(deltacast_transmitter_python_test PROPERTIES PASS_REGULAR_EXPRESSION "Reach end of file or playback count reaches to the limit. Stop ticking.;" FAIL_REGULAR_EXPRESSION "[^a-z]Error;ERROR;Failed") diff --git a/applications/deltacast_transmitter/python/deltacast_transmitter.py b/applications/deltacast_transmitter/python/deltacast_transmitter.py index 74d485376c..a3bf3190e5 100644 --- a/applications/deltacast_transmitter/python/deltacast_transmitter.py +++ b/applications/deltacast_transmitter/python/deltacast_transmitter.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 DELTACAST.TV. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -18,7 +18,7 @@ from holoscan.core import Application from holoscan.operators import FormatConverterOp, VideoStreamReplayerOp -from holoscan.resources import BlockMemoryPool, MemoryStorageType, UnboundedAllocator +from holoscan.resources import BlockMemoryPool, MemoryStorageType from holohub.videomaster import VideoMasterTransmitterOp @@ -44,7 +44,7 @@ def compose(self): height = videomaster_kwargs.get("height", 1080) # Calculate source block size and count and define the source pool parameters - source_block_size = width * height * 4 * 4 + source_block_size = width * height * 4 source_block_count = 3 if videomaster_kwargs.get("rdma") else 4 source_pool_kwargs = dict( @@ -68,7 +68,6 @@ def compose(self): visualizer = VideoMasterTransmitterOp( self, name="videomaster", - pool=UnboundedAllocator(self, name="pool"), rdma=videomaster_kwargs.get("rdma", False), board=videomaster_kwargs.get("board", 0), width=width, diff --git a/applications/deltacast_transmitter/python/deltacast_transmitter.yaml b/applications/deltacast_transmitter/python/deltacast_transmitter.yaml index cdb43249f4..585ee86bb3 100644 --- a/applications/deltacast_transmitter/python/deltacast_transmitter.yaml +++ b/applications/deltacast_transmitter/python/deltacast_transmitter.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 DELTACAST.TV. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -14,8 +14,6 @@ # See the License for the specific language governing permissions and # limitations under the License. --- -extensions: - - lib/gxf_extensions/libgxf_videomaster.so replayer: basename: "surgical_video" @@ -36,7 +34,7 @@ videomaster: width: 1920 height: 1080 progressive: true - framerate: 60 + framerate: 30 board: 0 output: 0 rdma: false diff --git a/applications/deltacast_transmitter/python/metadata.json b/applications/deltacast_transmitter/python/metadata.json index 7bedef47b7..d1609fc93a 100644 --- a/applications/deltacast_transmitter/python/metadata.json +++ b/applications/deltacast_transmitter/python/metadata.json @@ -17,14 +17,16 @@ "tested_versions": [ "0.5.0", "2.9.0", - "3.0.0" + "3.0.0", + "3.6.0" ] }, "videomaster_sdk": { "minimum_required_version": "6.26.0", "tested_versions": [ "6.29.0", - "6.30.0" + "6.30.0", + "6.32.0" ] }, "platforms": [ diff --git a/applications/depth_anything_v2/Dockerfile b/applications/depth_anything_v2/Dockerfile index 104b1d0611..5aa759ebbe 100644 --- a/applications/depth_anything_v2/Dockerfile +++ b/applications/depth_anything_v2/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/distributed/grpc/grpc_endoscopy_tool_tracking/CMakeLists.txt b/applications/distributed/grpc/grpc_endoscopy_tool_tracking/CMakeLists.txt index e6aa9fbea2..ccb1dbb1f7 100644 --- a/applications/distributed/grpc/grpc_endoscopy_tool_tracking/CMakeLists.txt +++ b/applications/distributed/grpc/grpc_endoscopy_tool_tracking/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/distributed/grpc/grpc_h264_endoscopy_tool_tracking/CMakeLists.txt b/applications/distributed/grpc/grpc_h264_endoscopy_tool_tracking/CMakeLists.txt index ec2a1141f4..0bdb22bec6 100644 --- a/applications/distributed/grpc/grpc_h264_endoscopy_tool_tracking/CMakeLists.txt +++ b/applications/distributed/grpc/grpc_h264_endoscopy_tool_tracking/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/distributed/ucx/ucx_endoscopy_tool_tracking/CMakeLists.txt b/applications/distributed/ucx/ucx_endoscopy_tool_tracking/CMakeLists.txt index 1522e3af45..85b9f7bdc3 100644 --- a/applications/distributed/ucx/ucx_endoscopy_tool_tracking/CMakeLists.txt +++ b/applications/distributed/ucx/ucx_endoscopy_tool_tracking/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/distributed/ucx/ucx_h264_endoscopy_tool_tracking/CMakeLists.txt b/applications/distributed/ucx/ucx_h264_endoscopy_tool_tracking/CMakeLists.txt index 5184fea9f6..73763c0a1e 100644 --- a/applications/distributed/ucx/ucx_h264_endoscopy_tool_tracking/CMakeLists.txt +++ b/applications/distributed/ucx/ucx_h264_endoscopy_tool_tracking/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/ehr_query_llm/lmm/rag/ehr/finetune/evaluate_embeddings.py b/applications/ehr_query_llm/lmm/rag/ehr/finetune/evaluate_embeddings.py index 86828730cb..35c278dd8b 100644 --- a/applications/ehr_query_llm/lmm/rag/ehr/finetune/evaluate_embeddings.py +++ b/applications/ehr_query_llm/lmm/rag/ehr/finetune/evaluate_embeddings.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/ehr_query_llm/lmm/rag/ehr/finetune/finetune_embeddings.py b/applications/ehr_query_llm/lmm/rag/ehr/finetune/finetune_embeddings.py index c168b1fec0..1eb37339e1 100644 --- a/applications/ehr_query_llm/lmm/rag/ehr/finetune/finetune_embeddings.py +++ b/applications/ehr_query_llm/lmm/rag/ehr/finetune/finetune_embeddings.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/endoscopy_out_of_body_detection/CMakeLists.txt b/applications/endoscopy_out_of_body_detection/CMakeLists.txt index 1b92f49ded..941ad61b6b 100644 --- a/applications/endoscopy_out_of_body_detection/CMakeLists.txt +++ b/applications/endoscopy_out_of_body_detection/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/endoscopy_out_of_body_detection/python/main.py b/applications/endoscopy_out_of_body_detection/python/main.py index b1570a44a6..3c0495c301 100644 --- a/applications/endoscopy_out_of_body_detection/python/main.py +++ b/applications/endoscopy_out_of_body_detection/python/main.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/endoscopy_tool_tracking/CMakeLists.txt b/applications/endoscopy_tool_tracking/CMakeLists.txt index 06c9e857db..e412d7d1e2 100644 --- a/applications/endoscopy_tool_tracking/CMakeLists.txt +++ b/applications/endoscopy_tool_tracking/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/endoscopy_tool_tracking/cpp/Dockerfile b/applications/endoscopy_tool_tracking/cpp/Dockerfile index 54c8a35ccf..24dec98ec2 100644 --- a/applications/endoscopy_tool_tracking/cpp/Dockerfile +++ b/applications/endoscopy_tool_tracking/cpp/Dockerfile @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/endoscopy_tool_tracking/cpp/README.md b/applications/endoscopy_tool_tracking/cpp/README.md index feaec207b1..d1da0c0cfa 100644 --- a/applications/endoscopy_tool_tracking/cpp/README.md +++ b/applications/endoscopy_tool_tracking/cpp/README.md @@ -23,7 +23,7 @@ If you want to manually convert the video data, please refer to the instructions ### Build Instructions Please refer to the top level Holohub README.md file for information on how to build this application. -In order to build with the Deltacast VideoMaster operator use ```./holohub build --build-with deltacast_videomaster``` +In order to build with the Deltacast VideoMaster operator use ```./holohub build endoscopy_tool_tracking --build-with deltacast_videomaster``` ### Run Instructions diff --git a/applications/endoscopy_tool_tracking/cpp/endoscopy_tool_tracking.yaml b/applications/endoscopy_tool_tracking/cpp/endoscopy_tool_tracking.yaml index 56f38e4b3d..1ea94c4a7f 100644 --- a/applications/endoscopy_tool_tracking/cpp/endoscopy_tool_tracking.yaml +++ b/applications/endoscopy_tool_tracking/cpp/endoscopy_tool_tracking.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -30,8 +30,6 @@ resources: extensions: - lib/gxf_extensions/libgxf_lstm_tensor_rt_inference.so -# Uncomment the following extension when using deltacast as a source -# - lib/gxf_extensions/libgxf_videomaster.so # Uncomment the following extension when using yuan as source # - lib/gxf_extensions/libgxf_qcap_source.so diff --git a/applications/endoscopy_tool_tracking/cpp/main.cpp b/applications/endoscopy_tool_tracking/cpp/main.cpp index da740a5168..5715cbefd0 100644 --- a/applications/endoscopy_tool_tracking/cpp/main.cpp +++ b/applications/endoscopy_tool_tracking/cpp/main.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights * reserved. SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -127,8 +127,7 @@ class App : public holoscan::Application { Arg("width") = width, Arg("height") = height, Arg("progressive") = from_config("deltacast.progressive").as(), - Arg("framerate") = from_config("deltacast.framerate").as(), - Arg("pool") = make_resource("pool")); + Arg("framerate") = from_config("deltacast.framerate").as()); #endif source_block_size = width * height * 4 * 4; source_num_blocks = use_rdma ? 3 : 4; @@ -269,7 +268,6 @@ class App : public holoscan::Application { Arg("height") = height, Arg("progressive") = from_config("deltacast.progressive").as(), Arg("framerate") = from_config("deltacast.framerate").as(), - Arg("pool") = make_resource("pool"), Arg("enable_overlay") = overlay_enabled); auto overlay_format_converter_videomaster = make_operator( "overlay_format_converter", diff --git a/applications/gstreamer/CMakeLists.txt b/applications/gstreamer/CMakeLists.txt index 0f78b6dc54..c639be8f45 100644 --- a/applications/gstreamer/CMakeLists.txt +++ b/applications/gstreamer/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/gstreamer/gst_video_recorder/CMakeLists.txt b/applications/gstreamer/gst_video_recorder/CMakeLists.txt index 487b9c9a13..c0bd0ac547 100644 --- a/applications/gstreamer/gst_video_recorder/CMakeLists.txt +++ b/applications/gstreamer/gst_video_recorder/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/gstreamer/gst_video_recorder/Dockerfile b/applications/gstreamer/gst_video_recorder/Dockerfile index 090b97c1d5..4e4c9a521f 100644 --- a/applications/gstreamer/gst_video_recorder/Dockerfile +++ b/applications/gstreamer/gst_video_recorder/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/gstreamer/gst_video_recorder/gst_video_recorder.cpp b/applications/gstreamer/gst_video_recorder/gst_video_recorder.cpp index b1ef89833b..e68f997ef3 100644 --- a/applications/gstreamer/gst_video_recorder/gst_video_recorder.cpp +++ b/applications/gstreamer/gst_video_recorder/gst_video_recorder.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/gstreamer/gst_video_recorder/gst_video_recorder_v4l2.yaml b/applications/gstreamer/gst_video_recorder/gst_video_recorder_v4l2.yaml index 1c71dd30da..a4fc9ab723 100644 --- a/applications/gstreamer/gst_video_recorder/gst_video_recorder_v4l2.yaml +++ b/applications/gstreamer/gst_video_recorder/gst_video_recorder_v4l2.yaml @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/gstreamer/gst_video_recorder/install_deps.sh b/applications/gstreamer/gst_video_recorder/install_deps.sh index 66675a5a7a..e3a65411ad 100755 --- a/applications/gstreamer/gst_video_recorder/install_deps.sh +++ b/applications/gstreamer/gst_video_recorder/install_deps.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/gstreamer/gst_video_recorder/pattern_generator.cpp b/applications/gstreamer/gst_video_recorder/pattern_generator.cpp index 857a0afd9f..84834a7da8 100644 --- a/applications/gstreamer/gst_video_recorder/pattern_generator.cpp +++ b/applications/gstreamer/gst_video_recorder/pattern_generator.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/gstreamer/gst_video_recorder/pattern_generator.hpp b/applications/gstreamer/gst_video_recorder/pattern_generator.hpp index 407a12e79e..7e4479a63c 100644 --- a/applications/gstreamer/gst_video_recorder/pattern_generator.hpp +++ b/applications/gstreamer/gst_video_recorder/pattern_generator.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/h264/h264_endoscopy_tool_tracking/CMakeLists.txt b/applications/h264/h264_endoscopy_tool_tracking/CMakeLists.txt index 188bdc7a1e..4c26afb152 100644 --- a/applications/h264/h264_endoscopy_tool_tracking/CMakeLists.txt +++ b/applications/h264/h264_endoscopy_tool_tracking/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/h264/h264_video_decode/CMakeLists.txt b/applications/h264/h264_video_decode/CMakeLists.txt index 184a290cfc..fe7970bd69 100644 --- a/applications/h264/h264_video_decode/CMakeLists.txt +++ b/applications/h264/h264_video_decode/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/high_speed_endoscopy/CMakeLists.txt b/applications/high_speed_endoscopy/CMakeLists.txt index ebc3c4c96d..229931d92b 100644 --- a/applications/high_speed_endoscopy/CMakeLists.txt +++ b/applications/high_speed_endoscopy/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holochat/Dockerfile b/applications/holochat/Dockerfile index 8899d099f5..cbede46579 100644 --- a/applications/holochat/Dockerfile +++ b/applications/holochat/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holochat/chatbot.py b/applications/holochat/chatbot.py index fc3369ddbf..e9c0acf536 100644 --- a/applications/holochat/chatbot.py +++ b/applications/holochat/chatbot.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holochat/config.yaml b/applications/holochat/config.yaml index c06634a234..65f02dd3ae 100644 --- a/applications/holochat/config.yaml +++ b/applications/holochat/config.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holochat/holochat.sh b/applications/holochat/holochat.sh index 8359d75032..7a793bd70b 100755 --- a/applications/holochat/holochat.sh +++ b/applications/holochat/holochat.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holochat/llm.py b/applications/holochat/llm.py index f4637dc94f..57b2f7041a 100644 --- a/applications/holochat/llm.py +++ b/applications/holochat/llm.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holochat/tests/CMakeLists.txt b/applications/holochat/tests/CMakeLists.txt index a980fd7834..d24a662d14 100644 --- a/applications/holochat/tests/CMakeLists.txt +++ b/applications/holochat/tests/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holochat/tests/test_chatbot.py b/applications/holochat/tests/test_chatbot.py index 0b43edb0e3..8071c64521 100644 --- a/applications/holochat/tests/test_chatbot.py +++ b/applications/holochat/tests/test_chatbot.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holochat/tests/test_llm.py b/applications/holochat/tests/test_llm.py index 7fc8677e1f..cdcec7820e 100644 --- a/applications/holochat/tests/test_llm.py +++ b/applications/holochat/tests/test_llm.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holochat/utils.py b/applications/holochat/utils.py index 4868db060d..6d9fcb1c2f 100644 --- a/applications/holochat/utils.py +++ b/applications/holochat/utils.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holoscan_ros2/pubsub/CMakeLists.txt b/applications/holoscan_ros2/pubsub/CMakeLists.txt index dc1055ca80..9eefc0c396 100644 --- a/applications/holoscan_ros2/pubsub/CMakeLists.txt +++ b/applications/holoscan_ros2/pubsub/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holoscan_ros2/vb1940/CMakeLists.txt b/applications/holoscan_ros2/vb1940/CMakeLists.txt index afb2d5360b..11ff7827d9 100644 --- a/applications/holoscan_ros2/vb1940/CMakeLists.txt +++ b/applications/holoscan_ros2/vb1940/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/holoscan_ros2/vb1940/cpp/CMakeLists.txt b/applications/holoscan_ros2/vb1940/cpp/CMakeLists.txt index a59b2c59a5..b65dcdb223 100644 --- a/applications/holoscan_ros2/vb1940/cpp/CMakeLists.txt +++ b/applications/holoscan_ros2/vb1940/cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/iio/CMakeLists.txt b/applications/iio/CMakeLists.txt index 636633eb20..b29b99d791 100644 --- a/applications/iio/CMakeLists.txt +++ b/applications/iio/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 Analog Devices, Inc. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, Analog Devices, Inc. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/multiai_endoscopy/CMakeLists.txt b/applications/multiai_endoscopy/CMakeLists.txt index 65ecabf67c..5c57c3d084 100644 --- a/applications/multiai_endoscopy/CMakeLists.txt +++ b/applications/multiai_endoscopy/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/multiai_endoscopy/python/multi_ai.py b/applications/multiai_endoscopy/python/multi_ai.py index 23b8ddf477..4ecf94a7c0 100644 --- a/applications/multiai_endoscopy/python/multi_ai.py +++ b/applications/multiai_endoscopy/python/multi_ai.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/multiai_ultrasound/CMakeLists.txt b/applications/multiai_ultrasound/CMakeLists.txt index 63854af93e..3245842347 100644 --- a/applications/multiai_ultrasound/CMakeLists.txt +++ b/applications/multiai_ultrasound/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/multiai_ultrasound/cpp/main.cpp b/applications/multiai_ultrasound/cpp/main.cpp index cfa3e9827b..471fd76498 100644 --- a/applications/multiai_ultrasound/cpp/main.cpp +++ b/applications/multiai_ultrasound/cpp/main.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/multiai_ultrasound/operators/visualizer_icardio/CMakeLists.txt b/applications/multiai_ultrasound/operators/visualizer_icardio/CMakeLists.txt index 7453836c70..81a13c790b 100644 --- a/applications/multiai_ultrasound/operators/visualizer_icardio/CMakeLists.txt +++ b/applications/multiai_ultrasound/operators/visualizer_icardio/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/multiai_ultrasound/operators/visualizer_icardio/python/visualizer_icardio_pybind.cpp b/applications/multiai_ultrasound/operators/visualizer_icardio/python/visualizer_icardio_pybind.cpp index 7f8349f77a..199f1a0dfc 100644 --- a/applications/multiai_ultrasound/operators/visualizer_icardio/python/visualizer_icardio_pybind.cpp +++ b/applications/multiai_ultrasound/operators/visualizer_icardio/python/visualizer_icardio_pybind.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/multiai_ultrasound/operators/visualizer_icardio/python/visualizer_icardio_pydoc.hpp b/applications/multiai_ultrasound/operators/visualizer_icardio/python/visualizer_icardio_pydoc.hpp index da7295621a..4b2d34bb6e 100644 --- a/applications/multiai_ultrasound/operators/visualizer_icardio/python/visualizer_icardio_pydoc.hpp +++ b/applications/multiai_ultrasound/operators/visualizer_icardio/python/visualizer_icardio_pydoc.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/multiai_ultrasound/operators/visualizer_icardio/visualizer_icardio.cpp b/applications/multiai_ultrasound/operators/visualizer_icardio/visualizer_icardio.cpp index d794361d03..a6d13069af 100644 --- a/applications/multiai_ultrasound/operators/visualizer_icardio/visualizer_icardio.cpp +++ b/applications/multiai_ultrasound/operators/visualizer_icardio/visualizer_icardio.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/multiai_ultrasound/operators/visualizer_icardio/visualizer_icardio.hpp b/applications/multiai_ultrasound/operators/visualizer_icardio/visualizer_icardio.hpp index 4e5bd1a867..74405c4207 100644 --- a/applications/multiai_ultrasound/operators/visualizer_icardio/visualizer_icardio.hpp +++ b/applications/multiai_ultrasound/operators/visualizer_icardio/visualizer_icardio.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/multiai_ultrasound/python/multiai_ultrasound.py b/applications/multiai_ultrasound/python/multiai_ultrasound.py index a57b117ab6..85d4c77e9b 100644 --- a/applications/multiai_ultrasound/python/multiai_ultrasound.py +++ b/applications/multiai_ultrasound/python/multiai_ultrasound.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/network_radar_pipeline/CMakeLists.txt b/applications/network_radar_pipeline/CMakeLists.txt index 58d8d8f4eb..e4d0cf745b 100644 --- a/applications/network_radar_pipeline/CMakeLists.txt +++ b/applications/network_radar_pipeline/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/network_radar_pipeline/cpp/Dockerfile b/applications/network_radar_pipeline/cpp/Dockerfile index 36d9059bc9..7d9f38c477 100644 --- a/applications/network_radar_pipeline/cpp/Dockerfile +++ b/applications/network_radar_pipeline/cpp/Dockerfile @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/nvidia_video_codec/CMakeLists.txt b/applications/nvidia_video_codec/CMakeLists.txt index bb21c42bac..84c5447f6c 100644 --- a/applications/nvidia_video_codec/CMakeLists.txt +++ b/applications/nvidia_video_codec/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/nvidia_video_codec/nvc_decode/CMakeLists.txt b/applications/nvidia_video_codec/nvc_decode/CMakeLists.txt index 5497ee76c7..3f2057409f 100644 --- a/applications/nvidia_video_codec/nvc_decode/CMakeLists.txt +++ b/applications/nvidia_video_codec/nvc_decode/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/nvidia_video_codec/nvc_encode_decode/CMakeLists.txt b/applications/nvidia_video_codec/nvc_encode_decode/CMakeLists.txt index 5497ee76c7..3f2057409f 100644 --- a/applications/nvidia_video_codec/nvc_encode_decode/CMakeLists.txt +++ b/applications/nvidia_video_codec/nvc_encode_decode/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/nvidia_video_codec/nvc_encode_writer/CMakeLists.txt b/applications/nvidia_video_codec/nvc_encode_writer/CMakeLists.txt index 5497ee76c7..3f2057409f 100644 --- a/applications/nvidia_video_codec/nvc_encode_writer/CMakeLists.txt +++ b/applications/nvidia_video_codec/nvc_encode_writer/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/CMakeLists.txt b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/CMakeLists.txt index 902e2f78ce..734c52acba 100644 --- a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/CMakeLists.txt +++ b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/CMakeLists.txt b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/CMakeLists.txt index 89e1068834..0e3ab12e6e 100644 --- a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/CMakeLists.txt +++ b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/nvc_endoscopy_tool_tracking.cpp b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/nvc_endoscopy_tool_tracking.cpp index fb7dc5f533..484ddc5b2d 100644 --- a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/nvc_endoscopy_tool_tracking.cpp +++ b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/nvc_endoscopy_tool_tracking.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/nvc_endoscopy_tool_tracking.yaml b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/nvc_endoscopy_tool_tracking.yaml index 29dc2582ce..7e098da791 100644 --- a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/nvc_endoscopy_tool_tracking.yaml +++ b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/cpp/nvc_endoscopy_tool_tracking.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/CMakeLists.txt b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/CMakeLists.txt index 74d1cd6efc..e0e217020c 100644 --- a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/CMakeLists.txt +++ b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/nvc_endoscopy_tool_tracking.py b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/nvc_endoscopy_tool_tracking.py index f2d455dc37..220e476abd 100644 --- a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/nvc_endoscopy_tool_tracking.py +++ b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/nvc_endoscopy_tool_tracking.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License") diff --git a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/nvc_endoscopy_tool_tracking.yaml b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/nvc_endoscopy_tool_tracking.yaml index fcb1127fe7..f0de949d60 100644 --- a/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/nvc_endoscopy_tool_tracking.yaml +++ b/applications/nvidia_video_codec/nvc_endoscopy_tool_tracking/python/nvc_endoscopy_tool_tracking.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/object_detection_torch/CMakeLists.txt b/applications/object_detection_torch/CMakeLists.txt index 163c6a0002..ae8f5ca7af 100644 --- a/applications/object_detection_torch/CMakeLists.txt +++ b/applications/object_detection_torch/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/object_detection_torch/main.cpp b/applications/object_detection_torch/main.cpp index d6a056ea24..f8a65946fe 100644 --- a/applications/object_detection_torch/main.cpp +++ b/applications/object_detection_torch/main.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights * reserved. SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/openigtlink_3dslicer/CMakeLists.txt b/applications/openigtlink_3dslicer/CMakeLists.txt index ccc07efe80..105b08cba9 100644 --- a/applications/openigtlink_3dslicer/CMakeLists.txt +++ b/applications/openigtlink_3dslicer/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/openigtlink_3dslicer/python/CMakeLists.txt b/applications/openigtlink_3dslicer/python/CMakeLists.txt index 98f21edfbd..1cb6aed2eb 100644 --- a/applications/openigtlink_3dslicer/python/CMakeLists.txt +++ b/applications/openigtlink_3dslicer/python/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/orsi/CMakeLists.txt b/applications/orsi/CMakeLists.txt index cec0e78d5f..ce0974f1ea 100644 --- a/applications/orsi/CMakeLists.txt +++ b/applications/orsi/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/orsi/orsi_in_out_body/CMakeLists.txt b/applications/orsi/orsi_in_out_body/CMakeLists.txt index ebc3c4c96d..229931d92b 100644 --- a/applications/orsi/orsi_in_out_body/CMakeLists.txt +++ b/applications/orsi/orsi_in_out_body/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/orsi/orsi_multi_ai_ar/CMakeLists.txt b/applications/orsi/orsi_multi_ai_ar/CMakeLists.txt index ebc3c4c96d..229931d92b 100644 --- a/applications/orsi/orsi_multi_ai_ar/CMakeLists.txt +++ b/applications/orsi/orsi_multi_ai_ar/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/orsi/orsi_segmentation_ar/CMakeLists.txt b/applications/orsi/orsi_segmentation_ar/CMakeLists.txt index ebc3c4c96d..229931d92b 100644 --- a/applications/orsi/orsi_segmentation_ar/CMakeLists.txt +++ b/applications/orsi/orsi_segmentation_ar/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/orthorectification_with_optix/python/optix_utils_for_ortho.py b/applications/orthorectification_with_optix/python/optix_utils_for_ortho.py index d1858700fa..3130d868ec 100755 --- a/applications/orthorectification_with_optix/python/optix_utils_for_ortho.py +++ b/applications/orthorectification_with_optix/python/optix_utils_for_ortho.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/CMakeLists.txt b/applications/pipeline_visualization/CMakeLists.txt index 6d9e3afdd8..ae7fea97de 100644 --- a/applications/pipeline_visualization/CMakeLists.txt +++ b/applications/pipeline_visualization/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/Dockerfile b/applications/pipeline_visualization/Dockerfile index 14e9dd441f..56103f5646 100644 --- a/applications/pipeline_visualization/Dockerfile +++ b/applications/pipeline_visualization/Dockerfile @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/cpp/CMakeLists.txt b/applications/pipeline_visualization/cpp/CMakeLists.txt index f35f23cae3..41037dcb4d 100644 --- a/applications/pipeline_visualization/cpp/CMakeLists.txt +++ b/applications/pipeline_visualization/cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/cpp/create_tensor.cpp b/applications/pipeline_visualization/cpp/create_tensor.cpp index 2b04d6b941..d1ffd1dbb1 100644 --- a/applications/pipeline_visualization/cpp/create_tensor.cpp +++ b/applications/pipeline_visualization/cpp/create_tensor.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/cpp/create_tensor.hpp b/applications/pipeline_visualization/cpp/create_tensor.hpp index b43b603105..5a6afe5a07 100644 --- a/applications/pipeline_visualization/cpp/create_tensor.hpp +++ b/applications/pipeline_visualization/cpp/create_tensor.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/cpp/nats_logger.cpp b/applications/pipeline_visualization/cpp/nats_logger.cpp index fa87debd9d..5123dca772 100644 --- a/applications/pipeline_visualization/cpp/nats_logger.cpp +++ b/applications/pipeline_visualization/cpp/nats_logger.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/cpp/nats_logger.hpp b/applications/pipeline_visualization/cpp/nats_logger.hpp index a247deb953..b990f5406f 100644 --- a/applications/pipeline_visualization/cpp/nats_logger.hpp +++ b/applications/pipeline_visualization/cpp/nats_logger.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/cpp/pipeline_visualization.cpp b/applications/pipeline_visualization/cpp/pipeline_visualization.cpp index 54253e83db..c1574db385 100644 --- a/applications/pipeline_visualization/cpp/pipeline_visualization.cpp +++ b/applications/pipeline_visualization/cpp/pipeline_visualization.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/cpp/pipeline_visualization.yaml b/applications/pipeline_visualization/cpp/pipeline_visualization.yaml index 7887d3e4e6..535bb3711d 100644 --- a/applications/pipeline_visualization/cpp/pipeline_visualization.yaml +++ b/applications/pipeline_visualization/cpp/pipeline_visualization.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/python/CMakeLists.txt b/applications/pipeline_visualization/python/CMakeLists.txt index 82a01fb010..6140ab7a07 100644 --- a/applications/pipeline_visualization/python/CMakeLists.txt +++ b/applications/pipeline_visualization/python/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/python/nats_logger_pybind.cpp b/applications/pipeline_visualization/python/nats_logger_pybind.cpp index 794ebec8af..31717764c5 100644 --- a/applications/pipeline_visualization/python/nats_logger_pybind.cpp +++ b/applications/pipeline_visualization/python/nats_logger_pybind.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/python/pipeline_visualization.py b/applications/pipeline_visualization/python/pipeline_visualization.py index 898db40442..f0bae8be34 100755 --- a/applications/pipeline_visualization/python/pipeline_visualization.py +++ b/applications/pipeline_visualization/python/pipeline_visualization.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/python/pipeline_visualization.yaml b/applications/pipeline_visualization/python/pipeline_visualization.yaml index bb807094f5..bf5c7d4178 100644 --- a/applications/pipeline_visualization/python/pipeline_visualization.yaml +++ b/applications/pipeline_visualization/python/pipeline_visualization.yaml @@ -1,5 +1,5 @@ %YAML 1.2 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/python/pydoc.hpp b/applications/pipeline_visualization/python/pydoc.hpp index fe31d49f65..baf42a26db 100644 --- a/applications/pipeline_visualization/python/pydoc.hpp +++ b/applications/pipeline_visualization/python/pydoc.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/start_nats_server.sh b/applications/pipeline_visualization/start_nats_server.sh index 7e61f6d2f3..246b8450f4 100755 --- a/applications/pipeline_visualization/start_nats_server.sh +++ b/applications/pipeline_visualization/start_nats_server.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/visualizer/graph_components.py b/applications/pipeline_visualization/visualizer/graph_components.py index 27b0e8e611..01b7be4130 100644 --- a/applications/pipeline_visualization/visualizer/graph_components.py +++ b/applications/pipeline_visualization/visualizer/graph_components.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/visualizer/nats_async.py b/applications/pipeline_visualization/visualizer/nats_async.py index 3c3986035e..90afd7089b 100644 --- a/applications/pipeline_visualization/visualizer/nats_async.py +++ b/applications/pipeline_visualization/visualizer/nats_async.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/visualizer/start_visualizer.sh b/applications/pipeline_visualization/visualizer/start_visualizer.sh index ba3951ba24..212acf5536 100755 --- a/applications/pipeline_visualization/visualizer/start_visualizer.sh +++ b/applications/pipeline_visualization/visualizer/start_visualizer.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/visualizer/styles.py b/applications/pipeline_visualization/visualizer/styles.py index fbd959f3d7..95117306b8 100644 --- a/applications/pipeline_visualization/visualizer/styles.py +++ b/applications/pipeline_visualization/visualizer/styles.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/visualizer/tensor_to_numpy.py b/applications/pipeline_visualization/visualizer/tensor_to_numpy.py index 41ffff1a82..ac0db01ff1 100644 --- a/applications/pipeline_visualization/visualizer/tensor_to_numpy.py +++ b/applications/pipeline_visualization/visualizer/tensor_to_numpy.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/visualizer/visualizer_dynamic.py b/applications/pipeline_visualization/visualizer/visualizer_dynamic.py index 6d1bafe168..0680ad1dea 100755 --- a/applications/pipeline_visualization/visualizer/visualizer_dynamic.py +++ b/applications/pipeline_visualization/visualizer/visualizer_dynamic.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 """ -SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pipeline_visualization/visualizer/visualizer_static.py b/applications/pipeline_visualization/visualizer/visualizer_static.py index f8c2972e7e..8f6132f417 100755 --- a/applications/pipeline_visualization/visualizer/visualizer_static.py +++ b/applications/pipeline_visualization/visualizer/visualizer_static.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 """ -SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/prohawk_video_replayer/CMakeLists.txt b/applications/prohawk_video_replayer/CMakeLists.txt index e46d0e12cf..71fc925a73 100644 --- a/applications/prohawk_video_replayer/CMakeLists.txt +++ b/applications/prohawk_video_replayer/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/pva_video_filter/CMakeLists.txt b/applications/pva_video_filter/CMakeLists.txt index 01d6c6caf0..fefb410c9e 100644 --- a/applications/pva_video_filter/CMakeLists.txt +++ b/applications/pva_video_filter/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/realsense_visualizer/CMakeLists.txt b/applications/realsense_visualizer/CMakeLists.txt index 8383fb5bba..490edce36f 100644 --- a/applications/realsense_visualizer/CMakeLists.txt +++ b/applications/realsense_visualizer/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/simple_radar_pipeline/CMakeLists.txt b/applications/simple_radar_pipeline/CMakeLists.txt index d0aaf9da29..9ccd76ab4f 100644 --- a/applications/simple_radar_pipeline/CMakeLists.txt +++ b/applications/simple_radar_pipeline/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/simple_radar_pipeline/cpp/CMakeLists.txt b/applications/simple_radar_pipeline/cpp/CMakeLists.txt index 79223f4dfd..41ce4e7e3a 100644 --- a/applications/simple_radar_pipeline/cpp/CMakeLists.txt +++ b/applications/simple_radar_pipeline/cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/simple_radar_pipeline/cpp/simple_radar_pipeline.cu b/applications/simple_radar_pipeline/cpp/simple_radar_pipeline.cu index 0929936162..6bd24fe33c 100644 --- a/applications/simple_radar_pipeline/cpp/simple_radar_pipeline.cu +++ b/applications/simple_radar_pipeline/cpp/simple_radar_pipeline.cu @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/slang/slang_gamma_correction/CMakeLists.txt b/applications/slang/slang_gamma_correction/CMakeLists.txt index 5e874c120f..e4f2c7fb9a 100644 --- a/applications/slang/slang_gamma_correction/CMakeLists.txt +++ b/applications/slang/slang_gamma_correction/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/slang/slang_simple/CMakeLists.txt b/applications/slang/slang_simple/CMakeLists.txt index 5e874c120f..e4f2c7fb9a 100644 --- a/applications/slang/slang_simple/CMakeLists.txt +++ b/applications/slang/slang_simple/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/stereo_vision/CMakeLists.txt b/applications/stereo_vision/CMakeLists.txt index 96de9bfa1c..319d691948 100644 --- a/applications/stereo_vision/CMakeLists.txt +++ b/applications/stereo_vision/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/stereo_vision/cpp/CMakeLists.txt b/applications/stereo_vision/cpp/CMakeLists.txt index d1a7afa020..c3d30eadb1 100644 --- a/applications/stereo_vision/cpp/CMakeLists.txt +++ b/applications/stereo_vision/cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/stereo_vision/cpp/main.cpp b/applications/stereo_vision/cpp/main.cpp index 2171cc41e3..932bf42ee1 100644 --- a/applications/stereo_vision/cpp/main.cpp +++ b/applications/stereo_vision/cpp/main.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights * reserved. SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/stereo_vision/scripts/get_data_and_models.sh b/applications/stereo_vision/scripts/get_data_and_models.sh index f796430f9f..61aa267afd 100644 --- a/applications/stereo_vision/scripts/get_data_and_models.sh +++ b/applications/stereo_vision/scripts/get_data_and_models.sh @@ -1,4 +1,4 @@ -#SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +#SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. #SPDX-License-Identifier: Apache-2.0 #Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/CMakeLists.txt b/applications/surgical_scene_recon/CMakeLists.txt index 47ef833848..7be4b19f46 100644 --- a/applications/surgical_scene_recon/CMakeLists.txt +++ b/applications/surgical_scene_recon/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/Dockerfile b/applications/surgical_scene_recon/Dockerfile index f31a2e52ec..09b3ef6ec7 100644 --- a/applications/surgical_scene_recon/Dockerfile +++ b/applications/surgical_scene_recon/Dockerfile @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/dynamic_rendering_viz.py b/applications/surgical_scene_recon/dynamic_rendering_viz.py index c310123356..a0cd2bffcd 100644 --- a/applications/surgical_scene_recon/dynamic_rendering_viz.py +++ b/applications/surgical_scene_recon/dynamic_rendering_viz.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/operators/__init__.py b/applications/surgical_scene_recon/operators/__init__.py index a4d67fc929..fa5543e5b7 100644 --- a/applications/surgical_scene_recon/operators/__init__.py +++ b/applications/surgical_scene_recon/operators/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/operators/endonerf_loader_op.py b/applications/surgical_scene_recon/operators/endonerf_loader_op.py index ab2768b7ce..d9e1b8838c 100644 --- a/applications/surgical_scene_recon/operators/endonerf_loader_op.py +++ b/applications/surgical_scene_recon/operators/endonerf_loader_op.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/operators/gsplat_loader_op.py b/applications/surgical_scene_recon/operators/gsplat_loader_op.py index c91a796e45..1275fe58b2 100644 --- a/applications/surgical_scene_recon/operators/gsplat_loader_op.py +++ b/applications/surgical_scene_recon/operators/gsplat_loader_op.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/operators/gsplat_render_op.py b/applications/surgical_scene_recon/operators/gsplat_render_op.py index 8b05571981..54d9c822c5 100644 --- a/applications/surgical_scene_recon/operators/gsplat_render_op.py +++ b/applications/surgical_scene_recon/operators/gsplat_render_op.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/operators/image_saver_op.py b/applications/surgical_scene_recon/operators/image_saver_op.py index 718e34eda1..361e45b1d7 100644 --- a/applications/surgical_scene_recon/operators/image_saver_op.py +++ b/applications/surgical_scene_recon/operators/image_saver_op.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/run_complete_workflow.py b/applications/surgical_scene_recon/run_complete_workflow.py index a79340c811..22401d0a62 100644 --- a/applications/surgical_scene_recon/run_complete_workflow.py +++ b/applications/surgical_scene_recon/run_complete_workflow.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 """ diff --git a/applications/surgical_scene_recon/run_surgical_recon.py b/applications/surgical_scene_recon/run_surgical_recon.py index 2d60c28330..ed2b0f14a5 100644 --- a/applications/surgical_scene_recon/run_surgical_recon.py +++ b/applications/surgical_scene_recon/run_surgical_recon.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/tests/run_tests.sh b/applications/surgical_scene_recon/tests/run_tests.sh index f5ade642de..d20c80d410 100644 --- a/applications/surgical_scene_recon/tests/run_tests.sh +++ b/applications/surgical_scene_recon/tests/run_tests.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # Comprehensive testing script for training integration diff --git a/applications/surgical_scene_recon/tests/test_data_loading.py b/applications/surgical_scene_recon/tests/test_data_loading.py index 8debcf9198..f2414d174e 100644 --- a/applications/surgical_scene_recon/tests/test_data_loading.py +++ b/applications/surgical_scene_recon/tests/test_data_loading.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/tests/test_dynamic_rendering_viz.py b/applications/surgical_scene_recon/tests/test_dynamic_rendering_viz.py index 5f155813bb..2b5f7b0dbb 100644 --- a/applications/surgical_scene_recon/tests/test_dynamic_rendering_viz.py +++ b/applications/surgical_scene_recon/tests/test_dynamic_rendering_viz.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/tests/test_minimal_holoviz.py b/applications/surgical_scene_recon/tests/test_minimal_holoviz.py index fd71b758ee..3e7c963958 100644 --- a/applications/surgical_scene_recon/tests/test_minimal_holoviz.py +++ b/applications/surgical_scene_recon/tests/test_minimal_holoviz.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/tests/test_static_rendering.py b/applications/surgical_scene_recon/tests/test_static_rendering.py index c049b098ab..13a72dd3f1 100644 --- a/applications/surgical_scene_recon/tests/test_static_rendering.py +++ b/applications/surgical_scene_recon/tests/test_static_rendering.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/tests/test_static_rendering_viz.py b/applications/surgical_scene_recon/tests/test_static_rendering_viz.py index 135211f448..19000bafab 100644 --- a/applications/surgical_scene_recon/tests/test_static_rendering_viz.py +++ b/applications/surgical_scene_recon/tests/test_static_rendering_viz.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/train_standalone.py b/applications/surgical_scene_recon/train_standalone.py index 52aac661cd..30abb758ff 100644 --- a/applications/surgical_scene_recon/train_standalone.py +++ b/applications/surgical_scene_recon/train_standalone.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 """ diff --git a/applications/surgical_scene_recon/training/__init__.py b/applications/surgical_scene_recon/training/__init__.py index a2814906aa..9822ee9f7d 100644 --- a/applications/surgical_scene_recon/training/__init__.py +++ b/applications/surgical_scene_recon/training/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/training/gsplat_train.py b/applications/surgical_scene_recon/training/gsplat_train.py index 389f716483..4d6c7cf492 100644 --- a/applications/surgical_scene_recon/training/gsplat_train.py +++ b/applications/surgical_scene_recon/training/gsplat_train.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/surgical_scene_recon/training/scene/cameras.py b/applications/surgical_scene_recon/training/scene/cameras.py index 0987eebe94..f9feab5779 100644 --- a/applications/surgical_scene_recon/training/scene/cameras.py +++ b/applications/surgical_scene_recon/training/scene/cameras.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/scene/deformation.py b/applications/surgical_scene_recon/training/scene/deformation.py index 9866d85c66..2a167c863c 100644 --- a/applications/surgical_scene_recon/training/scene/deformation.py +++ b/applications/surgical_scene_recon/training/scene/deformation.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/scene/endo_loader.py b/applications/surgical_scene_recon/training/scene/endo_loader.py index 6ca8b2f66e..4a3fa84818 100644 --- a/applications/surgical_scene_recon/training/scene/endo_loader.py +++ b/applications/surgical_scene_recon/training/scene/endo_loader.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/scene/hexplane.py b/applications/surgical_scene_recon/training/scene/hexplane.py index e01905a04a..e64fbccab6 100644 --- a/applications/surgical_scene_recon/training/scene/hexplane.py +++ b/applications/surgical_scene_recon/training/scene/hexplane.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/scene/regulation.py b/applications/surgical_scene_recon/training/scene/regulation.py index ec84dd9d87..ac7373dde8 100644 --- a/applications/surgical_scene_recon/training/scene/regulation.py +++ b/applications/surgical_scene_recon/training/scene/regulation.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/scene/utils.py b/applications/surgical_scene_recon/training/scene/utils.py index 7854c0e92b..5e1509ce5a 100644 --- a/applications/surgical_scene_recon/training/scene/utils.py +++ b/applications/surgical_scene_recon/training/scene/utils.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/utils/create_animations.py b/applications/surgical_scene_recon/training/utils/create_animations.py index 23b73855e9..279329b837 100644 --- a/applications/surgical_scene_recon/training/utils/create_animations.py +++ b/applications/surgical_scene_recon/training/utils/create_animations.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/utils/general_utils.py b/applications/surgical_scene_recon/training/utils/general_utils.py index cb8889e438..3186133f26 100644 --- a/applications/surgical_scene_recon/training/utils/general_utils.py +++ b/applications/surgical_scene_recon/training/utils/general_utils.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/utils/graphics_utils.py b/applications/surgical_scene_recon/training/utils/graphics_utils.py index 653ec53e6d..7484cb8916 100644 --- a/applications/surgical_scene_recon/training/utils/graphics_utils.py +++ b/applications/surgical_scene_recon/training/utils/graphics_utils.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/utils/image_utils.py b/applications/surgical_scene_recon/training/utils/image_utils.py index e2fca84401..119f3e90bf 100644 --- a/applications/surgical_scene_recon/training/utils/image_utils.py +++ b/applications/surgical_scene_recon/training/utils/image_utils.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/utils/loss_utils.py b/applications/surgical_scene_recon/training/utils/loss_utils.py index 87a3d54bfb..f6f4c68c35 100644 --- a/applications/surgical_scene_recon/training/utils/loss_utils.py +++ b/applications/surgical_scene_recon/training/utils/loss_utils.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/utils/params_utils.py b/applications/surgical_scene_recon/training/utils/params_utils.py index 2ee2c5dc27..8920a289b8 100644 --- a/applications/surgical_scene_recon/training/utils/params_utils.py +++ b/applications/surgical_scene_recon/training/utils/params_utils.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/utils/scene_utils.py b/applications/surgical_scene_recon/training/utils/scene_utils.py index 4944da943a..92f736685a 100644 --- a/applications/surgical_scene_recon/training/utils/scene_utils.py +++ b/applications/surgical_scene_recon/training/utils/scene_utils.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/surgical_scene_recon/training/utils/sh_utils.py b/applications/surgical_scene_recon/training/utils/sh_utils.py index 166eefa76e..1a1deb6139 100644 --- a/applications/surgical_scene_recon/training/utils/sh_utils.py +++ b/applications/surgical_scene_recon/training/utils/sh_utils.py @@ -1,5 +1,5 @@ -# Copyright 2025 NVIDIA CORPORATION & AFFILIATES (modifications). -# Copyright 2021 The PlenOctree Authors. +# Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES (modifications). +# Copyright (c) 2025-2026, The PlenOctree Authors. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # diff --git a/applications/surgical_scene_recon/training/utils/timer.py b/applications/surgical_scene_recon/training/utils/timer.py index b7d45f0da3..88ad7043bc 100644 --- a/applications/surgical_scene_recon/training/utils/timer.py +++ b/applications/surgical_scene_recon/training/utils/timer.py @@ -1,6 +1,6 @@ # MIT License # -# Copyright (c) 2025 EndoGaussian Project +# Copyright (c) 2025-2026, EndoGaussian Project # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/applications/ultrasound_segmentation/CMakeLists.txt b/applications/ultrasound_segmentation/CMakeLists.txt index 98d2e3cd9b..ca73e8c8aa 100644 --- a/applications/ultrasound_segmentation/CMakeLists.txt +++ b/applications/ultrasound_segmentation/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/velodyne_lidar_app/CMakeLists.txt b/applications/velodyne_lidar_app/CMakeLists.txt index 53e4c93145..eac6583d51 100644 --- a/applications/velodyne_lidar_app/CMakeLists.txt +++ b/applications/velodyne_lidar_app/CMakeLists.txt @@ -1,4 +1,4 @@ -# # SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# # SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # # # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/CMakeLists.txt b/applications/video_streaming/CMakeLists.txt index b212d5afa0..4c061e8a0b 100644 --- a/applications/video_streaming/CMakeLists.txt +++ b/applications/video_streaming/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/Dockerfile b/applications/video_streaming/Dockerfile index d8bbebf7c5..0d3a8bce5f 100644 --- a/applications/video_streaming/Dockerfile +++ b/applications/video_streaming/Dockerfile @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/integration_test_cpp.sh b/applications/video_streaming/integration_test_cpp.sh index 841d673f82..132f21c156 100755 --- a/applications/video_streaming/integration_test_cpp.sh +++ b/applications/video_streaming/integration_test_cpp.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # C++ Integration Test for Video Streaming Demo diff --git a/applications/video_streaming/integration_test_python.sh b/applications/video_streaming/integration_test_python.sh index 2d3aa82f45..0aecf3d87c 100755 --- a/applications/video_streaming/integration_test_python.sh +++ b/applications/video_streaming/integration_test_python.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # Python Integration Test for Video Streaming Demo diff --git a/applications/video_streaming/video_streaming_client/CMakeLists.txt b/applications/video_streaming/video_streaming_client/CMakeLists.txt index 17f083c493..663b384b1c 100644 --- a/applications/video_streaming/video_streaming_client/CMakeLists.txt +++ b/applications/video_streaming/video_streaming_client/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_client/cpp/CMakeLists.txt b/applications/video_streaming/video_streaming_client/cpp/CMakeLists.txt index d3ef4e9f1a..562b338412 100644 --- a/applications/video_streaming/video_streaming_client/cpp/CMakeLists.txt +++ b/applications/video_streaming/video_streaming_client/cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.20) diff --git a/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo.cpp b/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo.cpp index ef233849ea..92f5abd0d3 100644 --- a/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo.cpp +++ b/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo.yaml b/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo.yaml index e9b679c8f6..72af316fe8 100644 --- a/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo.yaml +++ b/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo.yaml @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo_replayer.yaml b/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo_replayer.yaml index 4ee4841a51..17d4b6f79a 100644 --- a/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo_replayer.yaml +++ b/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo_replayer.yaml @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo_wrapper.sh b/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo_wrapper.sh index 17845bfd36..f36375453d 100644 --- a/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo_wrapper.sh +++ b/applications/video_streaming/video_streaming_client/cpp/video_streaming_client_demo_wrapper.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_client/python/CMakeLists.txt b/applications/video_streaming/video_streaming_client/python/CMakeLists.txt index 04cc4c64e3..9f1fdeb2d7 100644 --- a/applications/video_streaming/video_streaming_client/python/CMakeLists.txt +++ b/applications/video_streaming/video_streaming_client/python/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo.py b/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo.py index 1240ed7445..1c8aac7ee5 100755 --- a/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo.py +++ b/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo.yaml b/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo.yaml index e6b234b011..268ccaaaaa 100644 --- a/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo.yaml +++ b/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo.yaml @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 %YAML 1.2 diff --git a/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo_replayer.yaml b/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo_replayer.yaml index 3437af3765..dfec14e9c1 100644 --- a/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo_replayer.yaml +++ b/applications/video_streaming/video_streaming_client/python/video_streaming_client_demo_replayer.yaml @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 %YAML 1.2 diff --git a/applications/video_streaming/video_streaming_server/CMakeLists.txt b/applications/video_streaming/video_streaming_server/CMakeLists.txt index e0e85a730d..6b724ac5c7 100644 --- a/applications/video_streaming/video_streaming_server/CMakeLists.txt +++ b/applications/video_streaming/video_streaming_server/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_server/cpp/CMakeLists.txt b/applications/video_streaming/video_streaming_server/cpp/CMakeLists.txt index 671987b0d3..d1cb15ba51 100644 --- a/applications/video_streaming/video_streaming_server/cpp/CMakeLists.txt +++ b/applications/video_streaming/video_streaming_server/cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo.cpp b/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo.cpp index 975a1f8d6b..5fa4c35f72 100644 --- a/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo.cpp +++ b/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo.yaml b/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo.yaml index a4d19e828a..c5c1b1066f 100644 --- a/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo.yaml +++ b/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo.yaml @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo_wrapper.sh b/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo_wrapper.sh index 63e7b5aebc..1874819de4 100644 --- a/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo_wrapper.sh +++ b/applications/video_streaming/video_streaming_server/cpp/video_streaming_server_demo_wrapper.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_server/python/CMakeLists.txt b/applications/video_streaming/video_streaming_server/python/CMakeLists.txt index aa1a721061..9c537597d3 100644 --- a/applications/video_streaming/video_streaming_server/python/CMakeLists.txt +++ b/applications/video_streaming/video_streaming_server/python/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_server/python/video_streaming_server_demo.py b/applications/video_streaming/video_streaming_server/python/video_streaming_server_demo.py index b4d74c1237..ffca359ab9 100755 --- a/applications/video_streaming/video_streaming_server/python/video_streaming_server_demo.py +++ b/applications/video_streaming/video_streaming_server/python/video_streaming_server_demo.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/video_streaming/video_streaming_server/python/video_streaming_server_demo.yaml b/applications/video_streaming/video_streaming_server/python/video_streaming_server_demo.yaml index d7ae65cddd..c6c942f173 100644 --- a/applications/video_streaming/video_streaming_server/python/video_streaming_server_demo.yaml +++ b/applications/video_streaming/video_streaming_server/python/video_streaming_server_demo.yaml @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 %YAML 1.2 diff --git a/applications/vila_live/CMakeLists.txt b/applications/vila_live/CMakeLists.txt index d0211c23d6..101cfbd2d6 100644 --- a/applications/vila_live/CMakeLists.txt +++ b/applications/vila_live/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/vila_live/tests/CMakeLists.txt b/applications/vila_live/tests/CMakeLists.txt index f563575ba4..55748b28a5 100644 --- a/applications/vila_live/tests/CMakeLists.txt +++ b/applications/vila_live/tests/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/vila_live/tests/test_tinychat.py b/applications/vila_live/tests/test_tinychat.py index 1cc572e51c..f18140b7b8 100644 --- a/applications/vila_live/tests/test_tinychat.py +++ b/applications/vila_live/tests/test_tinychat.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/vila_live/tests/test_vlm.py b/applications/vila_live/tests/test_vlm.py index b67ef396d7..ba1e9907aa 100644 --- a/applications/vila_live/tests/test_vlm.py +++ b/applications/vila_live/tests/test_vlm.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/volume_rendering/CMakeLists.txt b/applications/volume_rendering/CMakeLists.txt index 932f882e79..a692a8be29 100644 --- a/applications/volume_rendering/CMakeLists.txt +++ b/applications/volume_rendering/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/volume_rendering/python/CMakeLists.txt b/applications/volume_rendering/python/CMakeLists.txt index 4a3136082b..c1f82dc23d 100644 --- a/applications/volume_rendering/python/CMakeLists.txt +++ b/applications/volume_rendering/python/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/volume_rendering/python/volume_rendering.py b/applications/volume_rendering/python/volume_rendering.py index 74ad29b302..a43c6671fd 100644 --- a/applications/volume_rendering/python/volume_rendering.py +++ b/applications/volume_rendering/python/volume_rendering.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/vpi_stereo/CMakeLists.txt b/applications/vpi_stereo/CMakeLists.txt index f737d27012..d43fb018a0 100644 --- a/applications/vpi_stereo/CMakeLists.txt +++ b/applications/vpi_stereo/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/xr_gsplat/Dockerfile b/applications/xr_gsplat/Dockerfile index 49f86ef910..a8b059f65d 100644 --- a/applications/xr_gsplat/Dockerfile +++ b/applications/xr_gsplat/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/xr_holoviz/Dockerfile b/applications/xr_holoviz/Dockerfile index 4d0b4d7806..38f5141384 100644 --- a/applications/xr_holoviz/Dockerfile +++ b/applications/xr_holoviz/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/yolo_model_deployment/CMakeLists.txt b/applications/yolo_model_deployment/CMakeLists.txt index 0f601a7ea1..4a461d0fbb 100644 --- a/applications/yolo_model_deployment/CMakeLists.txt +++ b/applications/yolo_model_deployment/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/applications/yolo_model_deployment/patch_export.py b/applications/yolo_model_deployment/patch_export.py index fec2f223c5..7403589ee3 100644 --- a/applications/yolo_model_deployment/patch_export.py +++ b/applications/yolo_model_deployment/patch_export.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 import re diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 95be333bfe..e6cfd7dec1 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/benchmarks/green_context_benchmarking/CMakeLists.txt b/benchmarks/green_context_benchmarking/CMakeLists.txt index e201a308fb..3fddb64b10 100644 --- a/benchmarks/green_context_benchmarking/CMakeLists.txt +++ b/benchmarks/green_context_benchmarking/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/benchmarks/green_context_benchmarking/benchmark_cuda_kernel.cu b/benchmarks/green_context_benchmarking/benchmark_cuda_kernel.cu index 6fb1cdb3ef..4ead5f2738 100644 --- a/benchmarks/green_context_benchmarking/benchmark_cuda_kernel.cu +++ b/benchmarks/green_context_benchmarking/benchmark_cuda_kernel.cu @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/benchmarks/green_context_benchmarking/benchmark_cuda_kernel.cu.hpp b/benchmarks/green_context_benchmarking/benchmark_cuda_kernel.cu.hpp index eca4ef53f4..acf31c8e15 100644 --- a/benchmarks/green_context_benchmarking/benchmark_cuda_kernel.cu.hpp +++ b/benchmarks/green_context_benchmarking/benchmark_cuda_kernel.cu.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/benchmarks/green_context_benchmarking/cupti_profiler.hpp b/benchmarks/green_context_benchmarking/cupti_profiler.hpp index 844aa7de7c..670e29fe53 100644 --- a/benchmarks/green_context_benchmarking/cupti_profiler.hpp +++ b/benchmarks/green_context_benchmarking/cupti_profiler.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/benchmarks/green_context_benchmarking/green_context_benchmark.cpp b/benchmarks/green_context_benchmarking/green_context_benchmark.cpp index 150b527d5c..e38057ed9b 100644 --- a/benchmarks/green_context_benchmarking/green_context_benchmark.cpp +++ b/benchmarks/green_context_benchmarking/green_context_benchmark.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/benchmarks/holoscan_flow_benchmarking/benchmark.py b/benchmarks/holoscan_flow_benchmarking/benchmark.py index da832f1ac1..5a3f774217 100644 --- a/benchmarks/holoscan_flow_benchmarking/benchmark.py +++ b/benchmarks/holoscan_flow_benchmarking/benchmark.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/benchmarks/realtime_threads_benchmarking/CMakeLists.txt b/benchmarks/realtime_threads_benchmarking/CMakeLists.txt index be19257f98..8e0c70e502 100644 --- a/benchmarks/realtime_threads_benchmarking/CMakeLists.txt +++ b/benchmarks/realtime_threads_benchmarking/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/benchmarks/realtime_threads_benchmarking/plot_results.py b/benchmarks/realtime_threads_benchmarking/plot_results.py index 87e0d7f5d0..386c0c7867 100644 --- a/benchmarks/realtime_threads_benchmarking/plot_results.py +++ b/benchmarks/realtime_threads_benchmarking/plot_results.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/benchmarks/realtime_threads_benchmarking/realtime_thread_benchmark.cpp b/benchmarks/realtime_threads_benchmarking/realtime_thread_benchmark.cpp index b911347c73..0910fecc01 100644 --- a/benchmarks/realtime_threads_benchmarking/realtime_thread_benchmark.cpp +++ b/benchmarks/realtime_threads_benchmarking/realtime_thread_benchmark.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/cmake/FetchHolohubOperator.cmake b/cmake/FetchHolohubOperator.cmake index 87f3d26f75..c791960f13 100644 --- a/cmake/FetchHolohubOperator.cmake +++ b/cmake/FetchHolohubOperator.cmake @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/cmake/modules/add_python_tests.cmake b/cmake/modules/add_python_tests.cmake index 259ae3078d..68318ea59e 100644 --- a/cmake/modules/add_python_tests.cmake +++ b/cmake/modules/add_python_tests.cmake @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/cmake/modules/holoscan_download_data.cmake b/cmake/modules/holoscan_download_data.cmake index d34833585c..3497835220 100644 --- a/cmake/modules/holoscan_download_data.cmake +++ b/cmake/modules/holoscan_download_data.cmake @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/doc/website/Dockerfile b/doc/website/Dockerfile index d81f56f3f9..7b0bf38a29 100644 --- a/doc/website/Dockerfile +++ b/doc/website/Dockerfile @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/doc/website/scripts/common_utils.py b/doc/website/scripts/common_utils.py index fae65dc03d..397b3969be 100644 --- a/doc/website/scripts/common_utils.py +++ b/doc/website/scripts/common_utils.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: LicenseRef-Apache2 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/doc/website/scripts/generate_featured_apps.py b/doc/website/scripts/generate_featured_apps.py index c4aac076b5..d1977c8f72 100644 --- a/doc/website/scripts/generate_featured_apps.py +++ b/doc/website/scripts/generate_featured_apps.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: LicenseRef-Apache2 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/doc/website/scripts/generate_pages.py b/doc/website/scripts/generate_pages.py index 2e41650546..dd0d3eae10 100644 --- a/doc/website/scripts/generate_pages.py +++ b/doc/website/scripts/generate_pages.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: LicenseRef-Apache2 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/gxf_extensions/CMakeLists.txt b/gxf_extensions/CMakeLists.txt index 3060e50e81..595e091b3e 100644 --- a/gxf_extensions/CMakeLists.txt +++ b/gxf_extensions/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,7 +16,6 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gxf_extensions) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gxf_extensions) -add_holohub_extension(deltacast_videomaster) add_holohub_extension(emergent_source) add_holohub_extension(lstm_tensor_rt_inference) add_holohub_extension(yuan_qcap) diff --git a/gxf_extensions/deltacast_videomaster/CMakeLists.txt b/gxf_extensions/deltacast_videomaster/CMakeLists.txt deleted file mode 100644 index 81670c74f3..0000000000 --- a/gxf_extensions/deltacast_videomaster/CMakeLists.txt +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright (c) 2022, DELTACAST.TV. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -cmake_minimum_required(VERSION 3.20) - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -include(FetchContent) -project(gxf_videomaster) - -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) - -find_package(holoscan REQUIRED CONFIG - PATHS "/opt/nvidia/holoscan" "/workspace/holoscan-sdk/install") - -FetchContent_Declare( - VideoMasterAPIHelper - GIT_REPOSITORY https://github.com/deltacasttv/videomaster-api-helper.git - GIT_TAG 1.3.0 - SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/api_helper" -) -FetchContent_MakeAvailable(VideoMasterAPIHelper) - -# Finds the VideoMaster SDK -find_package(VideoMasterHD REQUIRED 6.25) - -# Create library -add_library(gxf_videomaster_lib SHARED - videomaster_base.hpp - videomaster_base.cpp - videomaster_source.hpp - videomaster_source.cpp - videomaster_transmitter.hpp - videomaster_transmitter.cpp -) - -target_link_libraries(gxf_videomaster_lib - PUBLIC - VideoMasterAPIHelper - VideoMasterHD::Core - CUDA::cudart - CUDA::cuda_driver - GXF::multimedia - GXF::std - holoscan::core - yaml-cpp -) - -# Create extension -add_library(gxf_videomaster SHARED - videomaster_ext.cpp -) -add_library(holoscan::exts::gxf_videomaster ALIAS gxf_videomaster) - -target_link_libraries(gxf_videomaster - PUBLIC gxf_videomaster_lib -) diff --git a/gxf_extensions/deltacast_videomaster/README.md b/gxf_extensions/deltacast_videomaster/README.md deleted file mode 100644 index f5957939ee..0000000000 --- a/gxf_extensions/deltacast_videomaster/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# VideoMaster GXF Extension - -This GXF extension provides support for VideoMaster SDK. - -## Requirements - -This extension requires the VideoMaster SDK - -## Building the extension - -As part of Holohub, running CMake on Holohub and point to Holoscan SDK install tree. diff --git a/gxf_extensions/deltacast_videomaster/metadata.json b/gxf_extensions/deltacast_videomaster/metadata.json deleted file mode 100644 index c0b7481bc2..0000000000 --- a/gxf_extensions/deltacast_videomaster/metadata.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "gxf_extension": { - "name": "videomaster", - "authors": [ - { - "name": "Laurent Radoux", - "affiliation": "Deltacast" - } - ], - "version": "1.1", - "changelog": { - "1.0": "Initial Release", - "1.1": "" - }, - "gxf_version": { - "minimum_required_version": "2.5", - "tested_versions": [ - "2.5" - ] - }, - "platforms": [ - "x86_64", - "aarch64" - ], - "tags": [ - "Camera", - "Deltacast" - ], - "ranking": 2, - "requirements": { - "packages": [ - { - "name": "VideoMaster SDK", - "author": "Deltacast", - "license": "Proprietary", - "version": "", - "url": "https://deltacast.tv" - } - ] - } - } -} \ No newline at end of file diff --git a/gxf_extensions/deltacast_videomaster/videomaster_base.cpp b/gxf_extensions/deltacast_videomaster/videomaster_base.cpp deleted file mode 100644 index ab8a6e147d..0000000000 --- a/gxf_extensions/deltacast_videomaster/videomaster_base.cpp +++ /dev/null @@ -1,415 +0,0 @@ -/* - * Copyright (c) 2022, DELTACAST.TV. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#include "videomaster_base.hpp" - -#include -#include - -#include -#include - -#include "VideoMasterHD_ApplicationBuffers.h" -#include "VideoMasterHD_String.h" -#include "gxf/multimedia/video.hpp" -#include "VideoMasterAPIHelper/api.hpp" -#include "VideoMasterAPIHelper/api_success.hpp" -#include "VideoMasterAPIHelper/enum_to_string.hpp" -#include "VideoMasterAPIHelper/VideoInformation/dv.hpp" -#include "VideoMasterAPIHelper/VideoInformation/sdi.hpp" - -namespace nvidia { -namespace holoscan { -namespace videomaster { - -const std::unordered_map id_to_rx_stream_type = { - {0, VHD_ST_RX0}, {1, VHD_ST_RX1}, {2, VHD_ST_RX2}, {3, VHD_ST_RX3}, - {4, VHD_ST_RX4}, {5, VHD_ST_RX5}, {6, VHD_ST_RX6}, {7, VHD_ST_RX7}, - {8, VHD_ST_RX8}, {9, VHD_ST_RX9}, {10, VHD_ST_RX10}, {11, VHD_ST_RX11}, -}; -const std::unordered_map id_to_rx_channel_type_prop = { - {0, VHD_CORE_BP_RX0_TYPE}, {1, VHD_CORE_BP_RX1_TYPE}, - {2, VHD_CORE_BP_RX2_TYPE}, {3, VHD_CORE_BP_RX3_TYPE}, - {4, VHD_CORE_BP_RX4_TYPE}, {5, VHD_CORE_BP_RX5_TYPE}, - {6, VHD_CORE_BP_RX6_TYPE}, {7, VHD_CORE_BP_RX7_TYPE}, - {8, VHD_CORE_BP_RX8_TYPE}, {9, VHD_CORE_BP_RX9_TYPE}, - {10, VHD_CORE_BP_RX10_TYPE}, {11, VHD_CORE_BP_RX11_TYPE}, -}; -const std::unordered_map id_to_tx_stream_type = { - {0, VHD_ST_TX0}, {1, VHD_ST_TX1}, {2, VHD_ST_TX2}, {3, VHD_ST_TX3}, - {4, VHD_ST_TX4}, {5, VHD_ST_TX5}, {6, VHD_ST_TX6}, {7, VHD_ST_TX7}, - {8, VHD_ST_TX8}, {9, VHD_ST_TX9}, {10, VHD_ST_TX10}, {11, VHD_ST_TX11}, -}; -const std::unordered_map id_to_tx_channel_type_prop = { - {0, VHD_CORE_BP_TX0_TYPE}, {1, VHD_CORE_BP_TX1_TYPE}, {2, VHD_CORE_BP_TX2_TYPE}, - {3, VHD_CORE_BP_TX3_TYPE}, {4, VHD_CORE_BP_TX4_TYPE}, {5, VHD_CORE_BP_TX5_TYPE}, - {6, VHD_CORE_BP_TX6_TYPE}, {7, VHD_CORE_BP_TX7_TYPE}, {8, VHD_CORE_BP_TX8_TYPE}, - {9, VHD_CORE_BP_TX9_TYPE}, {10, VHD_CORE_BP_TX10_TYPE}, {11, VHD_CORE_BP_TX11_TYPE}, -}; -const std::unordered_map id_to_passive_loopback_prop = { - {0, VHD_CORE_BP_BYPASS_RELAY_0}, - {1, VHD_CORE_BP_BYPASS_RELAY_1}, - {2, VHD_CORE_BP_BYPASS_RELAY_2}, - {3, VHD_CORE_BP_BYPASS_RELAY_3} -}; -const std::unordered_map id_to_active_loopback_prop = { - {0, VHD_CORE_BP_ACTIVE_LOOPBACK_0} -}; -const std::unordered_map id_to_firmware_loopback_prop = { - {0, VHD_CORE_BP_FIRMWARE_LOOPBACK_0}, - {1, VHD_CORE_BP_FIRMWARE_LOOPBACK_1} -}; - -VideoMasterBase::VideoMasterBase(bool is_input) - : _is_input(is_input), - _has_lost_signal(false) {} - -gxf::Expected VideoMasterBase::configure_board() { - std::string api_version = Deltacast::Helper::get_api_version(); - if (api_version.empty()) { - GXF_LOG_ERROR("Could not retrieve VideoMaster API version"); - return gxf::Unexpected{GXF_FAILURE}; - } - - uint32_t nb_boards = Deltacast::Helper::get_number_of_devices(); - - if (nb_boards == 0) { - GXF_LOG_ERROR("No deltacast boards found"); - return gxf::Unexpected{GXF_FAILURE}; - } - - GXF_LOG_INFO("VideoMaster API version: %s - %u boards detected", api_version.c_str(), nb_boards); - - _board_handle = std::move(Deltacast::Helper::get_board_handle(_board_index)); - - return _board_handle ? gxf::Success : gxf::Unexpected{GXF_FAILURE}; -} - -gxf_result_t VideoMasterBase::stop() { - GXF_LOG_INFO("Stopping stream and closing handles"); - - if (_stream_handle) { - _stream_handle.reset(); - } - - sleep_ms(200); - set_loopback_state(true); - sleep_ms(200); - - if (_board_handle) { - _board_handle.reset(); - } - - free_buffers(); - - return GXF_SUCCESS; -} - -gxf::Expected VideoMasterBase::open_stream() { - Deltacast::Helper::ApiSuccess success; - - const auto &id_to_channel_type_prop = - _is_input ? id_to_rx_channel_type_prop : id_to_tx_channel_type_prop; - const auto &id_to_stream_type = _is_input ? id_to_rx_stream_type : id_to_tx_stream_type; - if (id_to_channel_type_prop.find(_channel_index) == id_to_channel_type_prop.end() || - id_to_stream_type.find(_channel_index) == id_to_stream_type.end()) { - GXF_LOG_ERROR("Invalid stream id (%u)", (unsigned int)_channel_index); - return gxf::Unexpected{GXF_FAILURE}; - } - - success = VHD_GetBoardProperty(*board_handle(), - id_to_channel_type_prop.at(_channel_index), - (ULONG *)&_channel_type); - - if (!success) { - GXF_LOG_ERROR("Failed to retrieve channel type"); - return gxf::Unexpected{GXF_FAILURE}; - } - - switch (_channel_type) { - case VHD_CHNTYPE_HDSDI: - case VHD_CHNTYPE_3GSDI: - case VHD_CHNTYPE_12GSDI: - _video_information = std::make_unique(); - break; - case VHD_CHNTYPE_HDMI: - case VHD_CHNTYPE_DISPLAYPORT: - _video_information = std::make_unique(); - break; - default: - break; - } - - if (!_video_information) { - GXF_LOG_ERROR("Unsupported channel type"); - return gxf::Unexpected{GXF_FAILURE}; - } - - _stream_handle = std::move(Deltacast::Helper::get_stream_handle(board_handle(), - id_to_stream_type.at(_channel_index), - _video_information->get_stream_processing_mode())); - - set_loopback_state(false); - - if (!_stream_handle) { - GXF_LOG_ERROR("Failed to open stream handle"); - return gxf::Unexpected{GXF_FAILURE}; - } - - video_format = {}; - - GXF_LOG_INFO("%s stream successfully opened." - , VHD_STREAMTYPE_ToString(id_to_stream_type.at(_channel_index))); - - return gxf::Success; -} - -gxf::Expected VideoMasterBase::configure_stream() { - bool success_b = true; - success_b = gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetStreamProperty(*stream_handle(), - VHD_CORE_SP_BUFFER_PACKING, VHD_BUFPACK_VIDEO_RGB_32) - }, - "Failed to set stream type"); - if (!success_b) { - return gxf::Unexpected{GXF_FAILURE}; - } - - if (!_video_information->get_video_format(stream_handle())->progressive) { - success_b = gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetStreamProperty(*stream_handle() - , VHD_CORE_SP_FIELD_MERGE, TRUE) - }, - "Failed to set field merge property"); - if (!success_b) { - return gxf::Unexpected{GXF_FAILURE}; - } - } - - if (_is_input) { - auto success_opt = _video_information->set_stream_properties_values( - stream_handle(), - _video_information->get_stream_properties_values(stream_handle())); - - if (!success_opt.has_value() || !success_opt.value()) { - GXF_LOG_ERROR("Failed to set stream properties"); - return gxf::Unexpected{GXF_FAILURE}; - } - } - - const auto &id_to_stream_type = _is_input ? id_to_rx_stream_type : id_to_tx_stream_type; - video_format = _video_information->get_video_format(stream_handle()).value(); - GXF_LOG_INFO("%s configured in %ux%u@%u" - , VHD_STREAMTYPE_ToString(id_to_stream_type.at(_channel_index)) - , video_format.width, video_format.height, video_format.framerate); - - return gxf::Success; -} - -gxf::Expected VideoMasterBase::init_buffers() { - std::vector buffer_sizes; - free_buffers(); - - if (_use_rdma || _is_input) { - for (auto &slot : _rdma_buffers) - slot.resize(_video_information->get_nb_buffer_types()); - } - if (!_use_rdma || _is_input) { - for (auto &slot : _non_rdma_buffers) - slot.resize(_video_information->get_nb_buffer_types()); - } - - Deltacast::Helper::ApiSuccess success; - success = VHD_InitApplicationBuffers(*stream_handle()); - if (!success) { - GXF_LOG_ERROR("Failed to init application buffers"); - return gxf::Unexpected{GXF_FAILURE}; - } - - buffer_sizes.resize(_video_information->get_nb_buffer_types()); - - for (int buffer_type_index = 0; buffer_type_index < _video_information->get_nb_buffer_types(); - buffer_type_index++) { - VHD_GetApplicationBuffersSize(*stream_handle(), - buffer_type_index, - &buffer_sizes[buffer_type_index]); - if (!buffer_sizes[buffer_type_index]) - continue; - - for (int slot_index = 0; slot_index < _rdma_buffers.size(); slot_index++) { - if ((buffer_type_index == _video_information->get_buffer_type() && _use_rdma) || _is_input) { - _rdma_buffers[slot_index][buffer_type_index].resize(_pool, buffer_sizes[buffer_type_index], - gxf::MemoryStorageType::kDevice); - } - if ((buffer_type_index != _video_information->get_buffer_type() || !_use_rdma) || _is_input) { - void *allocated_buffer = nullptr; - posix_memalign(&allocated_buffer, 4096, buffer_sizes[buffer_type_index]); - _non_rdma_buffers[slot_index][buffer_type_index] = (BYTE*)allocated_buffer; - } - } - } - - for (int slot_index = 0; slot_index < _slot_handles.size(); slot_index++) { - std::vector raw_buffer_pointer; - for (int buffer_type_index = 0; buffer_type_index < _video_information->get_nb_buffer_types(); - buffer_type_index++) { - VHD_APPLICATION_BUFFER_DESCRIPTOR desc; - desc.Size = sizeof(VHD_APPLICATION_BUFFER_DESCRIPTOR); - desc.pBuffer = (buffer_sizes[buffer_type_index] - ? ((buffer_type_index == _video_information->get_buffer_type() && _use_rdma) - ? _rdma_buffers[slot_index][buffer_type_index].pointer() - : _non_rdma_buffers[slot_index][buffer_type_index]) - : nullptr); - desc.RDMAEnabled = (buffer_type_index == _video_information->get_buffer_type() && _use_rdma); - - raw_buffer_pointer.push_back(desc); - } - - success = VHD_CreateSlotEx(*stream_handle() - , raw_buffer_pointer.data(), &_slot_handles[slot_index]); - if (!success) { - GXF_LOG_ERROR("Failed to create slot"); - return gxf::Unexpected{GXF_FAILURE}; - } - - if (_is_input) { - success = VHD_QueueInSlot(_slot_handles[slot_index]); - if (!success) { - GXF_LOG_ERROR("Failed to queue slot"); - return gxf::Unexpected{GXF_FAILURE}; - } - } - } - - return gxf::Success; -} - -void VideoMasterBase::free_buffers() { - if (_use_rdma || _is_input) { - for (auto& slot : _rdma_buffers) - for (auto& buffer : slot) buffer.freeBuffer(); - } - if (!_use_rdma || _is_input) { - for (auto& slot : _non_rdma_buffers) - for (auto& buffer : slot) free(buffer); - } -} - -gxf::Expected VideoMasterBase::start_stream() { - _slot_count = 0; - - const auto &id_to_stream_type = _is_input ? id_to_rx_stream_type : id_to_tx_stream_type; - - Deltacast::Helper::ApiSuccess success; - if (!(success = VHD_StartStream(*stream_handle()))) { - GXF_LOG_ERROR("Could not start stream %s" - , VHD_STREAMTYPE_ToString(id_to_stream_type.at(_channel_index))); - return gxf::Unexpected{GXF_FAILURE}; - } - - GXF_LOG_INFO("%s stream successfully started." - , VHD_STREAMTYPE_ToString(id_to_stream_type.at(_channel_index))); - - return gxf::Success; -} - -bool VideoMasterBase::gxf_log_on_error(Deltacast::Helper::ApiSuccess result - , const std::string& message) { - bool result_b = static_cast(result); - if (!result_b) { - auto error_code = result.error_code(); - std::string error_message = message - + " - Error: " + Deltacast::Helper::enum_to_string(error_code); - GXF_LOG_ERROR(error_message.c_str()); - } - return result_b; -} - -bool VideoMasterBase::signal_present() { - const std::unordered_map id_to_rx_status_prop = { - {0, VHD_CORE_BP_RX0_STATUS}, {1, VHD_CORE_BP_RX1_STATUS}, {2, VHD_CORE_BP_RX2_STATUS}, - {3, VHD_CORE_BP_RX3_STATUS}, {4, VHD_CORE_BP_RX4_STATUS}, {5, VHD_CORE_BP_RX5_STATUS}, - {6, VHD_CORE_BP_RX6_STATUS}, {7, VHD_CORE_BP_RX7_STATUS}, {8, VHD_CORE_BP_RX8_STATUS}, - {9, VHD_CORE_BP_RX9_STATUS}, {10, VHD_CORE_BP_RX10_STATUS}, {11, VHD_CORE_BP_RX11_STATUS}, - }; - ULONG status; - Deltacast::Helper::ApiSuccess success; - - success = VHD_GetBoardProperty(*board_handle(), id_to_rx_status_prop.at(_channel_index), &status); - if (!success) { - GXF_LOG_ERROR("Failed to retrieve rx status"); - return false; - } - - return !(status & VHD_CORE_RXSTS_UNLOCKED); -} - -bool VideoMasterBase::set_loopback_state(bool state) { - ULONG has_passive_loopback = FALSE; - ULONG has_active_loopback = FALSE; - ULONG has_firmware_loopback = FALSE; - bool success_b = true; - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_GetBoardCapability(*board_handle(), - VHD_CORE_BOARD_CAP_PASSIVE_LOOPBACK, - &has_passive_loopback) - }, "Failed to retrieve passive loopback capability"); - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_GetBoardCapability(*board_handle(), - VHD_CORE_BOARD_CAP_ACTIVE_LOOPBACK, - &has_active_loopback) - }, "Failed to retrieve active loopback capability"); - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_GetBoardCapability(*board_handle(), - VHD_CORE_BOARD_CAP_FIRMWARE_LOOPBACK, - &has_firmware_loopback) - }, "Failed to retrieve firmware loopback capability"); - - if (has_firmware_loopback && - id_to_firmware_loopback_prop.find(_channel_index) != id_to_firmware_loopback_prop.end()) { - success_b = gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetBoardProperty(*board_handle(), - id_to_firmware_loopback_prop.at(_channel_index), state) - }, "Failed to set firmware loopback state"); - - return success_b; - } else if (has_active_loopback && - id_to_active_loopback_prop.find(_channel_index) != id_to_active_loopback_prop.end()) { - success_b = gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetBoardProperty(*board_handle(), - id_to_active_loopback_prop.at(_channel_index), - state) - }, "Failed to set active loopback state"); - - return success_b; - } else if (has_passive_loopback && - id_to_passive_loopback_prop.find(_channel_index) != id_to_passive_loopback_prop.end()) { - success_b = gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetBoardProperty(*board_handle(), - id_to_passive_loopback_prop.at(_channel_index), - state) - }, "Failed to set passive loopback state"); - return success_b; - } - - return true; -} - -} // namespace videomaster -} // namespace holoscan -} // namespace nvidia diff --git a/gxf_extensions/deltacast_videomaster/videomaster_base.hpp b/gxf_extensions/deltacast_videomaster/videomaster_base.hpp deleted file mode 100644 index 249918a1a2..0000000000 --- a/gxf_extensions/deltacast_videomaster/videomaster_base.hpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2022, DELTACAST.TV. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef NVIDIA_HOLOSCAN_GXF_EXTENSIONS_VIDEOMASTER_BASE_HPP_ -#define NVIDIA_HOLOSCAN_GXF_EXTENSIONS_VIDEOMASTER_BASE_HPP_ - -#include -#include -#include -#include - -#include "VideoMasterHD_Core.h" -#include "gxf/std/codelet.hpp" -#include "gxf/std/memory_buffer.hpp" -#include "VideoMasterAPIHelper/handle_manager.hpp" -#include "VideoMasterAPIHelper/VideoInformation/core.hpp" - -#include -#include -#define sleep_ms(value) std::this_thread::sleep_for(std::chrono::milliseconds(value)) - -namespace nvidia { -namespace holoscan { -namespace videomaster { - -class VideoMasterBase : public gxf::Codelet { - public: - explicit VideoMasterBase(bool is_input); - - gxf_result_t stop() override; - - protected: - static const uint32_t SLOT_TIMEOUT = 100; - static const uint32_t NB_SLOTS = 4; - gxf::Parameter _use_rdma; - gxf::Parameter _board_index; - gxf::Parameter _channel_index; - gxf::Parameter> _pool; - - Deltacast::Helper::BoardHandle& board_handle() { return *_board_handle; } - Deltacast::Helper::StreamHandle& stream_handle() { return *_stream_handle; } - - bool _is_input; - VHD_CHANNELTYPE _channel_type; - bool _has_lost_signal; - std::unique_ptr _video_information; - std::array, NB_SLOTS> _rdma_buffers; - std::array, NB_SLOTS> _non_rdma_buffers; - std::array _slot_handles; - uint64_t _slot_count; - - gxf::Expected configure_board(); - gxf::Expected open_stream(); - gxf::Expected configure_stream(); - gxf::Expected init_buffers(); - gxf::Expected start_stream(); - bool gxf_log_on_error(Deltacast::Helper::ApiSuccess result, const std::string& message); - - bool signal_present(); - bool set_loopback_state(bool state); - - Deltacast::Helper::VideoFormat video_format; - - private: - void free_buffers(); - std::unique_ptr _board_handle; - std::unique_ptr _stream_handle; -}; - -} // namespace videomaster -} // namespace holoscan -} // namespace nvidia - -#endif // NVIDIA_HOLOSCAN_GXF_EXTENSIONS_VIDEOMASTER_BASE_HPP diff --git a/gxf_extensions/deltacast_videomaster/videomaster_ext.cpp b/gxf_extensions/deltacast_videomaster/videomaster_ext.cpp deleted file mode 100644 index 1db23883a4..0000000000 --- a/gxf_extensions/deltacast_videomaster/videomaster_ext.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2022, DELTACAST.TV. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#include "gxf/std/extension_factory_helper.hpp" -#include "videomaster_source.hpp" -#include "videomaster_transmitter.hpp" - -GXF_EXT_FACTORY_BEGIN() -GXF_EXT_FACTORY_SET_INFO(0x46841212e268490f, 0xa2f9a144bcbe34d0, "VideoMaster", - "VideoMaster Extension", "NVIDIA", - "1.0.0", "LICENSE"); -GXF_EXT_FACTORY_ADD(0x3c86dd3b82cf4a30, 0x99e14676542c5d70, - nvidia::holoscan::videomaster::VideoMasterSource, - nvidia::gxf::Codelet, "VideoMaster Source Codelet"); -GXF_EXT_FACTORY_ADD(0x1178a1b2fea542b8, 0x947ed0d4e03ca86a, - nvidia::holoscan::videomaster::VideoMasterTransmitter, - nvidia::gxf::Codelet, "VideoMaster Transmitter Codelet"); -GXF_EXT_FACTORY_END() diff --git a/gxf_extensions/deltacast_videomaster/videomaster_source.cpp b/gxf_extensions/deltacast_videomaster/videomaster_source.cpp deleted file mode 100644 index 507a5da36e..0000000000 --- a/gxf_extensions/deltacast_videomaster/videomaster_source.cpp +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright (c) 2022, DELTACAST.TV. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#include "videomaster_source.hpp" - -#include -#include - -#include -#include - -#include "VideoMasterHD_ApplicationBuffers.h" -#include "gxf/multimedia/video.hpp" - -namespace nvidia { -namespace holoscan { -namespace videomaster { - -VideoMasterSource::VideoMasterSource() : VideoMasterBase(true) {} - -gxf_result_t VideoMasterSource::registerInterface(gxf::Registrar *registrar) { - gxf::Expected result; - result &= registrar->parameter(_use_rdma, "rdma", "Use RDMA", - "Specifies whether RDMA should be used."); - result &= registrar->parameter(_board_index, "board", "Board", - "Index of the Deltacast.TV board to use."); - result &= registrar->parameter(_channel_index, "input", "Input", - "Index of the input channel to use."); - result &= registrar->parameter(_signal, "signal", "Output", "Output signal."); - result &= registrar->parameter(_pool, "pool", "Pool", "Pool to allocate the buffers."); - result &= registrar->parameter(_width, "width", "Width", "Width of the video frames to send."); - result &= registrar->parameter(_height, "height", "Height", - "Height of the video frames to send."); - result &= registrar->parameter(_progressive, "progressive", "Progressive", - "Progressiveness of the video frames to send."); - result &= registrar->parameter(_framerate, "framerate", "Framerate", - "Framerate of the signal to generate."); - - return gxf::ToResultCode(result); -} - -gxf_result_t VideoMasterSource::start() { - gxf::Expected result; - result &= configure_board(); - result &= open_stream(); - - return gxf::ToResultCode(result); -} - -gxf_result_t VideoMasterSource::tick() { - bool success_b = true; - - if (!signal_present()) { - if (!_has_lost_signal) - GXF_LOG_INFO("No signal detected, waiting for input..."); - - _has_lost_signal = true; - return GXF_SUCCESS; - } else if (!(video_format != Deltacast::Helper::VideoFormat{})) { // start stream - gxf::Expected result; - result &= configure_stream(); - - auto config_video_format = Deltacast::Helper::VideoFormat{_width, _height - , _progressive, _framerate}; - if (video_format != config_video_format) { - GXF_LOG_ERROR("Input signal does not match configuration"); - VHD_StopStream(*stream_handle()); - return GXF_FAILURE; - } - - result &= init_buffers(); - result &= start_stream(); - - if (!result) - return gxf::ToResultCode(result); - } - - if (_has_lost_signal) { - GXF_LOG_INFO("Input signal detected"); - _has_lost_signal = false; - } - - auto detected_video_format = _video_information->get_video_format(stream_handle()); - if (detected_video_format && *detected_video_format != video_format) { - GXF_LOG_INFO("Input signal has changed, exiting"); - VHD_StopStream(*stream_handle()); - return GXF_FAILURE; - } - - HANDLE slot_handle; - ULONG api_result = VHD_WaitSlotFilled(*stream_handle(), &slot_handle, SLOT_TIMEOUT); - if (api_result != VHDERR_NOERROR && api_result != VHDERR_TIMEOUT) { - GXF_LOG_ERROR("Failed to wait for incoming slot"); - return GXF_FAILURE; - } - if (api_result != VHDERR_NOERROR && api_result == VHDERR_TIMEOUT) { - GXF_LOG_INFO("Timeout"); - return GXF_SUCCESS; - } - - BYTE *buffer = nullptr; - ULONG buffer_size = 0; - - success_b = gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_GetSlotBuffer(slot_handle, _video_information->get_buffer_type() - , &buffer, &buffer_size) - }, "Failed to get slot buffer"); - - if (!success_b) { - return GXF_FAILURE; - } - - auto result = transmit_buffer_data(buffer, buffer_size); - - VHD_QueueInSlot(slot_handle); - _slot_count++; - - return gxf::ToResultCode(result); -} - -gxf::Expected VideoMasterSource::transmit_buffer_data(void *buffer, uint32_t buffer_size) { - if (!_use_rdma) { - cudaMemcpy(_rdma_buffers[_slot_count % NB_SLOTS] - [_video_information->get_buffer_type()].pointer(), buffer, - buffer_size, cudaMemcpyHostToDevice); - buffer = _rdma_buffers[_slot_count % NB_SLOTS][_video_information->get_buffer_type()].pointer(); - } - auto message = gxf::Entity::New(context()); - if (!message) { - GXF_LOG_ERROR("Failed to allocate message; terminating."); - return gxf::Unexpected{GXF_FAILURE}; - } - - auto target_buffer = message.value().add(); - if (!target_buffer) { - GXF_LOG_ERROR("Failed to allocate video buffer; terminating."); - return gxf::Unexpected{GXF_FAILURE}; - } - - auto format = _video_information->get_video_format(stream_handle()); - if (!format) - return gxf::Unexpected{GXF_FAILURE}; - - gxf::VideoTypeTraits video_type; - gxf::VideoFormatSize color_format; - auto color_planes = color_format.getDefaultColorPlanes(format->width, format->height); - gxf::VideoBufferInfo info{format->width, format->height, video_type.value, color_planes, - gxf::SurfaceLayout::GXF_SURFACE_LAYOUT_PITCH_LINEAR}; - auto storage_type = gxf::MemoryStorageType::kDevice; - target_buffer.value()->wrapMemory(info, buffer_size, storage_type, buffer, nullptr); - - return _signal->publish(std::move(message.value())); -} - -} // namespace videomaster -} // namespace holoscan -} // namespace nvidia diff --git a/gxf_extensions/deltacast_videomaster/videomaster_source.hpp b/gxf_extensions/deltacast_videomaster/videomaster_source.hpp deleted file mode 100644 index f931b23057..0000000000 --- a/gxf_extensions/deltacast_videomaster/videomaster_source.hpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2022, DELTACAST.TV. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef NVIDIA_HOLOSCAN_GXF_EXTENSIONS_VIDEOMASTER_SOURCE_HPP_ -#define NVIDIA_HOLOSCAN_GXF_EXTENSIONS_VIDEOMASTER_SOURCE_HPP_ - -#include -#include -#include - -#include "gxf/std/transmitter.hpp" -#include "videomaster_base.hpp" - -namespace nvidia { -namespace holoscan { -namespace videomaster { - -class VideoMasterSource : public VideoMasterBase { - public: - VideoMasterSource(); - - gxf_result_t registerInterface(gxf::Registrar* registrar) override; - - gxf_result_t start() override; - gxf_result_t tick() override; - - private: - gxf::Parameter> _signal; - - gxf::Expected transmit_buffer_data(void* buffer, uint32_t buffer_size); - gxf::Parameter _width; - gxf::Parameter _height; - gxf::Parameter _progressive; - gxf::Parameter _framerate; -}; - -} // namespace videomaster -} // namespace holoscan -} // namespace nvidia - -#endif // NVIDIA_HOLOSCAN_GXF_EXTENSIONS_VIDEOMASTER_SOURCE_HPP diff --git a/gxf_extensions/deltacast_videomaster/videomaster_transmitter.cpp b/gxf_extensions/deltacast_videomaster/videomaster_transmitter.cpp deleted file mode 100644 index 2a96978bd3..0000000000 --- a/gxf_extensions/deltacast_videomaster/videomaster_transmitter.cpp +++ /dev/null @@ -1,269 +0,0 @@ -/* - * Copyright (c) 2022, DELTACAST.TV. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#include "videomaster_transmitter.hpp" - -#include -#include - -#include -#include - -#include "VideoMasterHD_ApplicationBuffers.h" -#include "VideoMasterHD_Sdi.h" -#include "VideoMasterHD_Keyer.h" -#include "gxf/multimedia/video.hpp" - -namespace nvidia { -namespace holoscan { -namespace videomaster { - -const std::unordered_map id_to_genlock_source = { - {0, VHD_GENLOCK_RX0}, {1, VHD_GENLOCK_RX1}, {2, VHD_GENLOCK_RX2}, {3, VHD_GENLOCK_RX3}, - {4, VHD_GENLOCK_RX4}, {5, VHD_GENLOCK_RX5}, {6, VHD_GENLOCK_RX6}, {7, VHD_GENLOCK_RX7}, - {8, VHD_GENLOCK_RX8}, {9, VHD_GENLOCK_RX9}, {10, VHD_GENLOCK_RX10}, {11, VHD_GENLOCK_RX11}, -}; -const std::unordered_map id_to_rx_keyer_input = { - {0, VHD_KINPUT_RX0}, {1, VHD_KINPUT_RX1}, {2, VHD_KINPUT_RX2}, {3, VHD_KINPUT_RX3}}; -const std::unordered_map id_to_tx_keyer_input = { - {0, VHD_KINPUT_TX0}, {1, VHD_KINPUT_TX1}, {2, VHD_KINPUT_TX2}, {3, VHD_KINPUT_TX3}}; -const std::unordered_map id_to_rx_keyer_output = { - {0, VHD_KOUTPUT_RX0}, {1, VHD_KOUTPUT_RX1}, {2, VHD_KOUTPUT_RX2}, {3, VHD_KOUTPUT_RX3}}; -const std::unordered_map id_to_keyer_video_output = { - { 0, VHD_KEYER_BP_VIDEOOUTPUT_TX_0 }, - { 1, VHD_KEYER_BP_VIDEOOUTPUT_TX_1 }, - { 2, VHD_KEYER_BP_VIDEOOUTPUT_TX_2 }, - { 3, VHD_KEYER_BP_VIDEOOUTPUT_TX_3 }, -}; -const std::unordered_map id_to_keyer_anc_output_prop = { - { 0, VHD_KEYER_BP_ANCOUTPUT_TX_0 }, - { 1, VHD_KEYER_BP_ANCOUTPUT_TX_1 }, - { 2, VHD_KEYER_BP_ANCOUTPUT_TX_2 }, - { 3, VHD_KEYER_BP_ANCOUTPUT_TX_3 }, -}; - -VideoMasterTransmitter::VideoMasterTransmitter() : VideoMasterBase(false) {} - -gxf_result_t VideoMasterTransmitter::registerInterface(gxf::Registrar *registrar) { - gxf::Expected result; - result &= registrar->parameter(_use_rdma, "rdma", "Use RDMA", - "Specifies whether RDMA should be used."); - result &= registrar->parameter(_board_index, "board", "Board", - "Index of the Deltacast.TV board to use."); - result &= registrar->parameter(_channel_index, "output", "Output", - "Index of the output channel to use."); - result &= registrar->parameter(_width, "width", "Width", "Width of the video frames to send."); - result &= registrar->parameter(_height, "height", "Height", - "Height of the video frames to send."); - result &= registrar->parameter(_progressive, "progressive", "Progressive", - "Progressiveness of the video frames to send."); - result &= registrar->parameter(_framerate, "framerate", "Framerate", - "Framerate of the signal to generate."); - result &= registrar->parameter(_source, "source", "Source", "Source data."); - result &= registrar->parameter(_pool, "pool", "Pool", "Pool to allocate the buffers."); - result &= registrar->parameter(_overlay, "enable_overlay", "Overlay", - "Specifies whether the input buffers should be treated as overlay data.", false); - - return gxf::ToResultCode(result); -} - -gxf_result_t VideoMasterTransmitter::start() { - gxf::Expected result; - result &= configure_board(); - result &= open_stream(); - - if (!_overlay) { - video_format = Deltacast::Helper::VideoFormat{_width, _height, _progressive, _framerate}; - _video_information->set_video_format(stream_handle(), video_format); - - auto opt_sync_source_property = _video_information->get_sync_source_properties(); - if (opt_sync_source_property) - VHD_SetBoardProperty(*board_handle(), *opt_sync_source_property, VHD_GENLOCK_LOCAL); - - result &= configure_stream(); - result &= init_buffers(); - result &= start_stream(); - - sleep_ms(200); - set_loopback_state(false); - sleep_ms(200); - } - return gxf::ToResultCode(result); -} - -gxf_result_t VideoMasterTransmitter::tick() { - bool success_b = true; - gxf::Entity message; - gxf::Expected maybe_message = _source->receive(); - if (!maybe_message) { - GXF_LOG_ERROR("No message available."); - return GXF_CONTRACT_MESSAGE_NOT_AVAILABLE; - } - message = std::move(maybe_message.value()); - - gxf::Expected> maybe_video = gxf::Unexpected{GXF_UNINITIALIZED_VALUE}; - maybe_video = message.get(); - if (!maybe_video) { - GXF_LOG_ERROR("Failed to retrieve VideoBuffer"); - return GXF_FAILURE; - } - auto frame = maybe_video.value(); - - if (_overlay) { - if (!signal_present()) { - if (!_has_lost_signal) - GXF_LOG_INFO("No signal detected, waiting for input..."); - - _has_lost_signal = true; - return GXF_SUCCESS; - } else if (!(video_format != Deltacast::Helper::VideoFormat{})) { // stream not started yet - gxf::Expected result; - - video_format = Deltacast::Helper::VideoFormat{_width, _height, _progressive, _framerate}; - _video_information->set_video_format(stream_handle(), video_format); - - result &= configure_board_for_overlay(); - result &= configure_stream(); - result &= configure_stream_for_overlay(); - result &= init_buffers(); - result &= start_stream(); - - sleep_ms(200); - set_loopback_state(false); - sleep_ms(200); - - if (!result) - return gxf::ToResultCode(result); - } - } - - HANDLE slot_handle; - if (_slot_count >= _slot_handles.size()) { - success_b = gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_WaitSlotSent(*stream_handle(), &slot_handle, SLOT_TIMEOUT) - }, "Failed to wait for slot to be sent"); - if (!success_b) - return GXF_FAILURE; - } else { - slot_handle = _slot_handles[_slot_count % NB_SLOTS]; - } - - BYTE *buffer = nullptr; - ULONG buffer_size = 0; - - success_b = gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_GetSlotBuffer(slot_handle, VHD_SDI_BT_VIDEO - , &buffer, &buffer_size) - }, "Failed to retrieve the video buffer"); - if (!success_b) { - return GXF_FAILURE; - } - - cudaMemcpy(buffer, frame->pointer(), buffer_size, - (_use_rdma ? cudaMemcpyDeviceToDevice : cudaMemcpyDeviceToHost)); - - success_b = gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_QueueOutSlot(slot_handle) - }, "Failed to queue out the video buffer"); - if (!success_b) { - return GXF_FAILURE; - } - - _slot_count++; - - return GXF_SUCCESS; -} - -gxf::Expected VideoMasterTransmitter::configure_board_for_overlay() { - bool success_b = true; - - success_b = _video_information->configure_sync(board_handle(), _channel_index); - - auto keyer_props = _video_information->get_keyer_properties(board_handle()); - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetBoardProperty(*board_handle() - , keyer_props.at(VHD_KEYER_BP_INPUT_A) - , id_to_rx_keyer_input.at(_channel_index)) - }, "Could not configure keyer input A"); - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetBoardProperty(*board_handle() - , keyer_props.at(VHD_KEYER_BP_INPUT_B) - , id_to_tx_keyer_input.at(_channel_index)) - }, "Could not configure keyer input B"); - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetBoardProperty(*board_handle() - , keyer_props.at(VHD_KEYER_BP_INPUT_K) - , id_to_tx_keyer_input.at(_channel_index)) - }, "Could not configure keyer input K"); - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetBoardProperty(*board_handle() - , id_to_keyer_video_output.at(_channel_index) - , VHD_KOUTPUT_KEYER) - }, "Could not configure keyer video output"); - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetBoardProperty(*board_handle() - , keyer_props.at(VHD_KEYER_BP_ALPHACLIP_MIN) - , 0) - }, "Could not configure alphaclip min"); - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetBoardProperty(*board_handle() - , keyer_props.at(VHD_KEYER_BP_ALPHACLIP_MAX) - , 1020) - }, "Could not configure alphaclip max"); - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetBoardProperty(*board_handle() - , keyer_props.at(VHD_KEYER_BP_ALPHABLEND_FACTOR) - , 1023) - }, "Could not configure alphablend factor"); - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetBoardProperty(*board_handle() - , keyer_props.at(VHD_KEYER_BP_ENABLE) - , TRUE) - }, "Could not enable keyer"); - - return success_b ? gxf::Success : gxf::Unexpected{GXF_FAILURE}; -} - -gxf::Expected VideoMasterTransmitter::configure_stream_for_overlay() { - bool success_b = true; - - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetStreamProperty(*stream_handle() - , VHD_CORE_SP_BUFFER_PACKING - , VHD_BUFPACK_VIDEO_RGBA_32) - }, "Could not set buffer packing"); - - auto opt_sync_tx_property = _video_information->get_sync_tx_properties(); - if (opt_sync_tx_property) { - success_b = success_b & gxf_log_on_error(Deltacast::Helper::ApiSuccess{ - VHD_SetStreamProperty(*stream_handle() - , *opt_sync_tx_property, TRUE) - }, "Could not set sync tx property"); - } - - return success_b ? gxf::Success : gxf::Unexpected{GXF_FAILURE}; -} - -} // namespace videomaster -} // namespace holoscan -} // namespace nvidia diff --git a/gxf_extensions/deltacast_videomaster/videomaster_transmitter.hpp b/gxf_extensions/deltacast_videomaster/videomaster_transmitter.hpp deleted file mode 100644 index 0741fad7a9..0000000000 --- a/gxf_extensions/deltacast_videomaster/videomaster_transmitter.hpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2022, DELTACAST.TV. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef NVIDIA_HOLOSCAN_GXF_EXTENSIONS_VIDEOMASTER_TRANSMITTER_HPP_ -#define NVIDIA_HOLOSCAN_GXF_EXTENSIONS_VIDEOMASTER_TRANSMITTER_HPP_ - -#include -#include -#include - -#include "gxf/std/receiver.hpp" -#include "videomaster_base.hpp" - -namespace nvidia { -namespace holoscan { -namespace videomaster { - -class VideoMasterTransmitter : public VideoMasterBase { - public: - VideoMasterTransmitter(); - - gxf_result_t registerInterface(gxf::Registrar* registrar) override; - - gxf_result_t start() override; - gxf_result_t tick() override; - - private: - gxf::Parameter> _source; - gxf::Parameter _width; - gxf::Parameter _height; - gxf::Parameter _progressive; - gxf::Parameter _framerate; - gxf::Parameter _overlay; - - gxf::Expected configure_board_for_overlay(); - gxf::Expected configure_stream_for_overlay(); -}; - -} // namespace videomaster -} // namespace holoscan -} // namespace nvidia - -#endif // NVIDIA_HOLOSCAN_GXF_EXTENSIONS_VIDEOMASTER_TRANSMITTER_HPP diff --git a/operators/CMakeLists.txt b/operators/CMakeLists.txt index 3e18da1502..4ddcf934a4 100644 --- a/operators/CMakeLists.txt +++ b/operators/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,7 +21,7 @@ add_holohub_operator(basic_network) add_holohub_operator(cvcuda_holoscan_interop) add_subdirectory(deidentification) add_subdirectory(dds) -add_holohub_operator(deltacast_videomaster DEPENDS EXTENSIONS deltacast_videomaster) +add_holohub_operator(deltacast_videomaster) add_holohub_operator(emergent_source DEPENDS EXTENSIONS emergent_source) add_holohub_operator(fft) add_holohub_operator(gamma_correction DEPENDS OPERATORS slang_shader) diff --git a/operators/advanced_network/Dockerfile b/operators/advanced_network/Dockerfile index feabde4681..41c5c348c8 100644 --- a/operators/advanced_network/Dockerfile +++ b/operators/advanced_network/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/CMakeLists.txt b/operators/advanced_network/advanced_network/CMakeLists.txt index 66307b871e..6d74851ee8 100644 --- a/operators/advanced_network/advanced_network/CMakeLists.txt +++ b/operators/advanced_network/advanced_network/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/common.cpp b/operators/advanced_network/advanced_network/common.cpp index 2a43984f45..f4ef17e85f 100644 --- a/operators/advanced_network/advanced_network/common.cpp +++ b/operators/advanced_network/advanced_network/common.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/common.h b/operators/advanced_network/advanced_network/common.h index b01586b1d9..d1caf64764 100644 --- a/operators/advanced_network/advanced_network/common.h +++ b/operators/advanced_network/advanced_network/common.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/manager.cpp b/operators/advanced_network/advanced_network/manager.cpp index 34381eb5ca..3129ab277f 100644 --- a/operators/advanced_network/advanced_network/manager.cpp +++ b/operators/advanced_network/advanced_network/manager.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/manager.h b/operators/advanced_network/advanced_network/manager.h index e998316e5c..745555faec 100644 --- a/operators/advanced_network/advanced_network/manager.h +++ b/operators/advanced_network/advanced_network/manager.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/dpdk/CMakeLists.txt b/operators/advanced_network/advanced_network/managers/dpdk/CMakeLists.txt index ec2a71cab0..31ba778059 100644 --- a/operators/advanced_network/advanced_network/managers/dpdk/CMakeLists.txt +++ b/operators/advanced_network/advanced_network/managers/dpdk/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_log.cpp b/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_log.cpp index 28f2718a24..9e3087ad84 100644 --- a/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_log.cpp +++ b/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_log.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_log.h b/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_log.h index e18550ee2a..07e223c26b 100644 --- a/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_log.h +++ b/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_log.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_mgr.cpp b/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_mgr.cpp index 37764ca4f3..09f244b765 100644 --- a/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_mgr.cpp +++ b/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_mgr.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_mgr.h b/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_mgr.h index 8af8fd58ed..0ad6c7c8b6 100644 --- a/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_mgr.h +++ b/operators/advanced_network/advanced_network/managers/dpdk/adv_network_dpdk_mgr.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/gpunetio/CMakeLists.txt b/operators/advanced_network/advanced_network/managers/gpunetio/CMakeLists.txt index ed1359e821..6a46ef4005 100644 --- a/operators/advanced_network/advanced_network/managers/gpunetio/CMakeLists.txt +++ b/operators/advanced_network/advanced_network/managers/gpunetio/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_kernels.cu b/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_kernels.cu index d042289bc8..422dd28ed2 100644 --- a/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_kernels.cu +++ b/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_kernels.cu @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights * reserved. SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_kernels.h b/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_kernels.h index 4086eab9df..aeb3be60cc 100644 --- a/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_kernels.h +++ b/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_kernels.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr.cpp b/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr.cpp index af26477481..ce374a02e6 100644 --- a/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr.cpp +++ b/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights * reserved. SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr.h b/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr.h index 9f42909839..ca766a2dec 100644 --- a/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr.h +++ b/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights * reserved. SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr_obj.cpp b/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr_obj.cpp index 197533b315..e742f5b5b2 100644 --- a/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr_obj.cpp +++ b/operators/advanced_network/advanced_network/managers/gpunetio/adv_network_doca_mgr_obj.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights * reserved. SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/rdma/CMakeLists.txt b/operators/advanced_network/advanced_network/managers/rdma/CMakeLists.txt index 0e439d38bc..a61e30ff0a 100644 --- a/operators/advanced_network/advanced_network/managers/rdma/CMakeLists.txt +++ b/operators/advanced_network/advanced_network/managers/rdma/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/rdma/adv_network_rdma_mgr.cpp b/operators/advanced_network/advanced_network/managers/rdma/adv_network_rdma_mgr.cpp index b6fcb24feb..d169a5b2db 100644 --- a/operators/advanced_network/advanced_network/managers/rdma/adv_network_rdma_mgr.cpp +++ b/operators/advanced_network/advanced_network/managers/rdma/adv_network_rdma_mgr.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/rdma/adv_network_rdma_mgr.h b/operators/advanced_network/advanced_network/managers/rdma/adv_network_rdma_mgr.h index 89215c2f19..e44cc17c05 100644 --- a/operators/advanced_network/advanced_network/managers/rdma/adv_network_rdma_mgr.h +++ b/operators/advanced_network/advanced_network/managers/rdma/adv_network_rdma_mgr.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/managers/rivermax/adv_network_rivermax_mgr.h b/operators/advanced_network/advanced_network/managers/rivermax/adv_network_rivermax_mgr.h index c2433aa545..ecfc9954f5 100644 --- a/operators/advanced_network/advanced_network/managers/rivermax/adv_network_rivermax_mgr.h +++ b/operators/advanced_network/advanced_network/managers/rivermax/adv_network_rivermax_mgr.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/advanced_network/types.h b/operators/advanced_network/advanced_network/types.h index 0d2b1f6744..b830179fd2 100644 --- a/operators/advanced_network/advanced_network/types.h +++ b/operators/advanced_network/advanced_network/types.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/advanced_network/python/adv_network_common_pybind.cpp b/operators/advanced_network/python/adv_network_common_pybind.cpp index ade09fa600..802778e897 100644 --- a/operators/advanced_network/python/adv_network_common_pybind.cpp +++ b/operators/advanced_network/python/adv_network_common_pybind.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/aja_source/CMakeLists.txt b/operators/aja_source/CMakeLists.txt index 490e3c6e7d..52ea263517 100644 --- a/operators/aja_source/CMakeLists.txt +++ b/operators/aja_source/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/aja_source/aja_source.cpp b/operators/aja_source/aja_source.cpp index 9b0f02888a..38d551240f 100644 --- a/operators/aja_source/aja_source.cpp +++ b/operators/aja_source/aja_source.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/aja_source/aja_source.hpp b/operators/aja_source/aja_source.hpp index c275c8ff2e..18fd1ba8ff 100644 --- a/operators/aja_source/aja_source.hpp +++ b/operators/aja_source/aja_source.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/basic_network/basic_network_operator_rx.cpp b/operators/basic_network/basic_network_operator_rx.cpp index 1e40263bac..57ec67aeae 100644 --- a/operators/basic_network/basic_network_operator_rx.cpp +++ b/operators/basic_network/basic_network_operator_rx.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. ..* SPDX-License-Identifier: Apache-2.0 + * SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. ..* SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/operators/deidentification/pixelator/test_pixelator.py b/operators/deidentification/pixelator/test_pixelator.py index c2e99bbf57..c91e966184 100644 --- a/operators/deidentification/pixelator/test_pixelator.py +++ b/operators/deidentification/pixelator/test_pixelator.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/deltacast_videomaster/CMakeLists.txt b/operators/deltacast_videomaster/CMakeLists.txt index 93ca709990..f41a757f03 100644 --- a/operators/deltacast_videomaster/CMakeLists.txt +++ b/operators/deltacast_videomaster/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 DELTACAST.TV. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -14,12 +14,32 @@ # limitations under the License. cmake_minimum_required(VERSION 3.20) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +include(FetchContent) + project(videomaster) +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) + find_package(holoscan 0.5 REQUIRED CONFIG PATHS "/opt/nvidia/holoscan" "/workspace/holoscan-sdk/install") +FetchContent_Declare( + VideoMasterAPIHelper + GIT_REPOSITORY https://github.com/deltacasttv/videomaster-api-helper.git + GIT_TAG 1.3.0 +) +FetchContent_MakeAvailable(VideoMasterAPIHelper) + +# Finds the VideoMaster SDK +find_package(VideoMasterHD REQUIRED) + add_library(videomaster SHARED + videomaster_base.hpp + videomaster_base.cpp videomaster_source.hpp videomaster_source.cpp videomaster_transmitter.hpp @@ -29,7 +49,16 @@ add_library(holoscan::videomaster ALIAS videomaster) target_include_directories(videomaster INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_definitions(videomaster INTERFACE DELTACAST_VIDEOMASTER) -target_link_libraries(videomaster holoscan::core) +target_link_libraries(videomaster +PUBLIC + VideoMasterAPIHelper + VideoMasterHD::Core + CUDA::cudart + CUDA::cuda_driver + GXF::multimedia + GXF::std + holoscan::core +) if(HOLOHUB_BUILD_PYTHON) add_subdirectory(python) diff --git a/operators/deltacast_videomaster/README.md b/operators/deltacast_videomaster/README.md index 043d6c7bec..d8a099f77d 100644 --- a/operators/deltacast_videomaster/README.md +++ b/operators/deltacast_videomaster/README.md @@ -6,8 +6,6 @@ This library contains two operators: - videomaster_source: Captures a signal from the DELTACAST capture card. - videomaster_transmitter: Streams a signal through the DELTACAST capture card. -These operators wrap the GXF extension to provide support for the VideoMaster SDK. - ## Requirements * VideoMaster SDK: Operators require the VideoMaster SDK from Deltacast. @@ -37,7 +35,7 @@ The following parameters can be configured for this operator: | `height` | uint32_t | The height of the output stream | 1080 | | `progressive` | bool | interleaved or progressive | true | | `framerate` | uint32_t | The framerate of the output stream | 60 | -| `enable_overlay` | bool | Is overlay is add by card or not | false | +| `enable_overlay` | bool | Is overlay provided by the card or not | false | ## Building the operator @@ -47,25 +45,15 @@ The path to the VideoMaster SDK is also mandatory and can be given through the V ## Tests -All tests performed with the DELTACAST VideoMaster SDK `6.30`. - -| Application | Device | Configuration | Holoscan SDK 2.9 | Holoscan SDK 3.0 | Holoscan SDK 3.1 | -| ----------------------- | ----------------------- | ----------------------------------- | ---------------- | ---------------- | ---------------- | -| deltacast_transmitter | DELTA-12G-elp-key 11 | TX0 (SDI) / ~~RDMA~~ | PASSED | PASSED | PASSED | -| deltacast_transmitter | DELTA-12G-elp-key 11 | TX0 (SDI) / RDMA | PASSED | PASSED | PASSED | -| deltacast_transmitter | DELTA-12G11-hmi11-e-key | TX0 (SDI) / ~~RDMA~~ | PASSED | PASSED | PASSED | -| deltacast_transmitter | DELTA-12G11-hmi11-e-key | TX0 (SDI) / RDMA | PASSED | PASSED | PASSED | -| deltacast_transmitter | DELTA-12G11-hmi11-e-key | TX1 (HDMI) / ~~RDMA~~ | PASSED | PASSED | PASSED | -| deltacast_transmitter | DELTA-12G11-hmi11-e-key | TX1 (HDMI) / RDMA | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G-elp-key 11 | RX0 (SDI) / ~~overlay~~ / ~~RDMA~~ | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G-elp-key 11 | RX0 (SDI) / ~~overlay~~ / RDMA | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G-elp-key 11 | RX0/TX0 (SDI) / overlay / ~~RDMA~~ | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G-elp-key 11 | RX0/TX0 (SDI) / overlay / RDMA | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G11-hmi11-e-key | RX0 (SDI) / ~~overlay~~ / ~~RDMA~~ | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G11-hmi11-e-key | RX0 (SDI) / ~~overlay~~ / RDMA | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G11-hmi11-e-key | RX0/TX0 (SDI) / overlay / ~~RDMA~~ | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G11-hmi11-e-key | RX0/TX0 (SDI) / overlay / RDMA | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G11-hmi11-e-key | RX1 (HDMI) / ~~overlay~~ / ~~RDMA~~ | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G11-hmi11-e-key | RX1 (HDMI) / ~~overlay~~ / RDMA | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G11-hmi11-e-key | RX1/TX1 (HDMI) / overlay / ~~RDMA~~ | PASSED | PASSED | PASSED | -| endoscopy_tool_tracking | DELTA-12G11-hmi11-e-key | RX1/TX1 (HDMI) / overlay / RDMA | PASSED | PASSED | PASSED | \ No newline at end of file +All tests performed with the DELTACAST VideoMaster SDK `6.32`. + +| Application | Device | Configuration | Holoscan SDK 3.6 | +| ----------------------- | ----------------------- | ----------------------------------- | ---------------- | +| deltacast_transmitter | DELTA-12G-elp-key 11 | TX0 (SDI) / ~~RDMA~~ | PASSED | +| deltacast_transmitter | DELTA-12G-elp-key 11 | TX0 (SDI) / RDMA | PASSED | +| deltacast_receiver | DELTA-12G-elp-key 11 | RX0 (SDI) / ~~RDMA~~ | PASSED | +| deltacast_receiver | DELTA-12G-elp-key 11 | RX0 (SDI) / RDMA | PASSED | +| endoscopy_tool_tracking | DELTA-12G-elp-key 11 | RX0 (SDI) / ~~overlay~~ / ~~RDMA~~ | PASSED | +| endoscopy_tool_tracking | DELTA-12G-elp-key 11 | RX0 (SDI) / ~~overlay~~ / RDMA | PASSED | +| endoscopy_tool_tracking | DELTA-12G-elp-key 11 | RX0/TX0 (SDI) / overlay / ~~RDMA~~ | PASSED | +| endoscopy_tool_tracking | DELTA-12G-elp-key 11 | RX0/TX0 (SDI) / overlay / RDMA | PASSED | \ No newline at end of file diff --git a/operators/deltacast_videomaster/metadata.json b/operators/deltacast_videomaster/metadata.json index d0635fad2d..391b71ab90 100644 --- a/operators/deltacast_videomaster/metadata.json +++ b/operators/deltacast_videomaster/metadata.json @@ -5,19 +5,22 @@ { "name": "Laurent Radoux", "affiliation": "Deltacast" + }, + { + "name": "Thomas Dethier", + "affiliation": "Deltacast" } ], - "version": "1.0", + "version": "1.1", "changelog": { - "1.0": "Initial Release" + "1.0": "Initial Release", + "1.1": "Converted from GXF operator to native operator" }, "language": ["C++", "Python"], "holoscan_sdk": { "minimum_required_version": "0.5.0", "tested_versions": [ - "0.5.0", - "2.9.0", - "3.0.0" + "3.6.0" ] }, "platforms": [ @@ -26,13 +29,6 @@ ], "tags": ["Camera", "Deltacast"], "ranking": 2, - "requirements": { - "gxf_extensions": [ - { - "name": "videomaster", - "version": "1.0" - } - ] - } + "requirements": {} } } \ No newline at end of file diff --git a/operators/deltacast_videomaster/python/videomaster.cpp b/operators/deltacast_videomaster/python/videomaster.cpp index 3bb3bfec8d..bf2ce9a0b7 100644 --- a/operators/deltacast_videomaster/python/videomaster.cpp +++ b/operators/deltacast_videomaster/python/videomaster.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 DELTACAST.TV. All rights + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights * reserved. SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -28,7 +28,6 @@ #include "../../operator_util.hpp" #include -#include "holoscan/core/gxf/gxf_operator.hpp" using std::string_literals::operator""s; using pybind11::literals::operator""_a; @@ -56,7 +55,7 @@ class PyVideoMasterSourceOp : public VideoMasterSourceOp { PyVideoMasterSourceOp(Fragment* fragment, const py::args& args, bool rdma = false, uint32_t board = 0, uint32_t input = 0, uint32_t width = 1920, uint32_t height = 1080, bool progressive = true, - uint32_t framerate = 60, std::shared_ptr pool = nullptr, + uint32_t framerate = 60, const std::string& name = "videomaster_source") : VideoMasterSourceOp(ArgList{ Arg{"rdma", rdma}, @@ -65,8 +64,7 @@ class PyVideoMasterSourceOp : public VideoMasterSourceOp { Arg{"width", width}, Arg{"height", height}, Arg{"progressive", progressive}, - Arg{"framerate", framerate}, - Arg{"pool", pool}}) { + Arg{"framerate", framerate}}) { add_positional_condition_and_resource_args(this, args); name_ = name; fragment_ = fragment; @@ -84,7 +82,7 @@ class PyVideoMasterTransmitterOp : public VideoMasterTransmitterOp { PyVideoMasterTransmitterOp(Fragment* fragment, const py::args& args, bool rdma = false, uint32_t board = 0, uint32_t output = 0, uint32_t width = 1920, uint32_t height = 1080, bool progressive = true, - uint32_t framerate = 60, std::shared_ptr pool = nullptr, + uint32_t framerate = 60, bool enable_overlay = false, const std::string& name = "videomaster_transmitter") : VideoMasterTransmitterOp(ArgList{Arg{"rdma", rdma}, @@ -94,7 +92,6 @@ class PyVideoMasterTransmitterOp : public VideoMasterTransmitterOp { Arg{"height", height}, Arg{"progressive", progressive}, Arg{"framerate", framerate}, - Arg{"pool", pool}, Arg{"enable_overlay", enable_overlay}}) { add_positional_condition_and_resource_args(this, args); name_ = name; @@ -115,7 +112,7 @@ PYBIND11_MODULE(_videomaster, m) { py::class_>( m, "VideoMasterSourceOp", doc::VideoMasterSourceOp::doc_VideoMasterSourceOp) .def(py::init, const std::string&>(), "fragment"_a, "rdma"_a = false, @@ -137,18 +133,14 @@ PYBIND11_MODULE(_videomaster, m) { "height"_a = "0"s, "progressive"_a = true, "framerate"_a = "60"s, - "pool"_a, "name"_a = "videomaster_source"s, doc::VideoMasterSourceOp::doc_VideoMasterSourceOp_python) - .def_property_readonly("gxf_typename", - &VideoMasterSourceOp::gxf_typename, - doc::VideoMasterSourceOp::doc_gxf_typename) .def("initialize", &VideoMasterSourceOp::initialize, doc::VideoMasterSourceOp::doc_initialize) .def("setup", &VideoMasterSourceOp::setup, "spec"_a, doc::VideoMasterSourceOp::doc_setup); py::class_>( m, "VideoMasterTransmitterOp", doc::VideoMasterTransmitterOp::doc_VideoMasterTransmitterOp) .def(py::init, bool, const std::string&>(), "fragment"_a, @@ -171,13 +162,9 @@ PYBIND11_MODULE(_videomaster, m) { "height"_a = "0"s, "progressive"_a = true, "framerate"_a = "60"s, - "pool"_a, "enable_overlay"_a = false, "name"_a = "videomaster_transmitter"s, doc::VideoMasterTransmitterOp::doc_VideoMasterTransmitterOp) - .def_property_readonly("gxf_typename", - &VideoMasterTransmitterOp::gxf_typename, - doc::VideoMasterTransmitterOp::doc_gxf_typename) .def("initialize", &VideoMasterTransmitterOp::initialize, doc::VideoMasterTransmitterOp::doc_initialize) diff --git a/operators/deltacast_videomaster/python/videomaster_pydoc.hpp b/operators/deltacast_videomaster/python/videomaster_pydoc.hpp index ba7b52c015..3bf7ca418d 100644 --- a/operators/deltacast_videomaster/python/videomaster_pydoc.hpp +++ b/operators/deltacast_videomaster/python/videomaster_pydoc.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 DELTACAST.TV. All rights + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights * reserved. SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -42,7 +42,7 @@ PYDOC(VideoMasterSourceOp_python, R"doc( board : int, optional The board to target (e.g., "0" for board 0). Default value is ``0``. input : int, optional - The RX channel of the baords (e.g., "1" for input 1). Default value is ``0``. + The RX channel of the boards (e.g., "1" for input 1). Default value is ``0``. width : int, optional Width of the video stream. Default value is ``1920``. height : int, optional @@ -51,21 +51,10 @@ PYDOC(VideoMasterSourceOp_python, R"doc( Whether or not the video is an interlaced format. Default value is ``True``. framerate : int, optional Frame rate of the video stream. Default value is ``60``. - pool : Allocator of type UnboundedAllocator - The pool to use for memory allocation. name : str, optional The name of the operator. )doc") -PYDOC(gxf_typename, R"doc( -The GXF type name of the resource. - -Returns -------- -str - The GXF type name of the resource -)doc") - PYDOC(setup, R"doc( Define the operator specification. @@ -102,7 +91,7 @@ PYDOC(VideoMasterTransmitterOp_python, R"doc( board : int, optional The board to target (e.g., "0" for board 0). Default value is ``0``. output : int, optional - The TX channel of the baords (e.g., "1" for input 1). Default value is ``0``. + The TX channel of the boards (e.g., "1" for input 1). Default value is ``0``. width : int, optional Width of the video stream. Default value is ``1920``. height : int, optional @@ -111,23 +100,12 @@ PYDOC(VideoMasterTransmitterOp_python, R"doc( Whether or not the video is an interlaced format. Default value is ``True``. framerate : int, optional Frame rate of the video stream. Default value is ``60``. - pool : Allocator of type UnboundedAllocator - The pool to use for memory allocation. enable_overlay : bool, optional - Boolean indicating whether a overlay processing is done by the board or not. Default value is ``False``. + Boolean indicating whether an overlay processing is done by the board or not. Default value is ``False``. name : str, optional The name of the operator. )doc") -PYDOC(gxf_typename, R"doc( -The GXF type name of the resource. - -Returns -------- -str - The GXF type name of the resource -)doc") - PYDOC(setup, R"doc( Define the operator specification. @@ -148,4 +126,4 @@ and uses a light-weight initialization. } // namespace holoscan::doc -#endif /* PYHOLOSCAN_OPERATORS_AJA_SOURCE_PYDOC_HPP */ +#endif /* PYHOLOSCAN_OPERATORS_VIDEOMASTER_SOURCE_PYDOC_HPP */ diff --git a/operators/deltacast_videomaster/videomaster_base.cpp b/operators/deltacast_videomaster/videomaster_base.cpp new file mode 100644 index 0000000000..e88ca12fbe --- /dev/null +++ b/operators/deltacast_videomaster/videomaster_base.cpp @@ -0,0 +1,536 @@ +/* + * Copyright (c) 2022-2026, DELTACAST.TV. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "videomaster_base.hpp" + +#include +#include + +#include +#include + +#include "holoscan/core/gxf/gxf_utils.hpp" + +#include "VideoMasterHD_ApplicationBuffers.h" +#include "VideoMasterHD_String.h" +#include "gxf/multimedia/video.hpp" +#include "VideoMasterAPIHelper/api.hpp" +#include "VideoMasterAPIHelper/api_success.hpp" +#include "VideoMasterAPIHelper/enum_to_string.hpp" +#include "VideoMasterAPIHelper/VideoInformation/dv.hpp" +#include "VideoMasterAPIHelper/VideoInformation/sdi.hpp" + +namespace { + +void sleep_ms(uint32_t value) { + std::this_thread::sleep_for(std::chrono::milliseconds(value)); +} + +} // namespace + +namespace holoscan::ops { + +const std::unordered_map id_to_rx_stream_type = { + {0, VHD_ST_RX0}, {1, VHD_ST_RX1}, {2, VHD_ST_RX2}, {3, VHD_ST_RX3}, + {4, VHD_ST_RX4}, {5, VHD_ST_RX5}, {6, VHD_ST_RX6}, {7, VHD_ST_RX7}, + {8, VHD_ST_RX8}, {9, VHD_ST_RX9}, {10, VHD_ST_RX10}, {11, VHD_ST_RX11}, +}; +const std::unordered_map id_to_rx_channel_type_prop = { + {0, VHD_CORE_BP_RX0_TYPE}, {1, VHD_CORE_BP_RX1_TYPE}, + {2, VHD_CORE_BP_RX2_TYPE}, {3, VHD_CORE_BP_RX3_TYPE}, + {4, VHD_CORE_BP_RX4_TYPE}, {5, VHD_CORE_BP_RX5_TYPE}, + {6, VHD_CORE_BP_RX6_TYPE}, {7, VHD_CORE_BP_RX7_TYPE}, + {8, VHD_CORE_BP_RX8_TYPE}, {9, VHD_CORE_BP_RX9_TYPE}, + {10, VHD_CORE_BP_RX10_TYPE}, {11, VHD_CORE_BP_RX11_TYPE}, +}; +const std::unordered_map id_to_tx_stream_type = { + {0, VHD_ST_TX0}, {1, VHD_ST_TX1}, {2, VHD_ST_TX2}, {3, VHD_ST_TX3}, + {4, VHD_ST_TX4}, {5, VHD_ST_TX5}, {6, VHD_ST_TX6}, {7, VHD_ST_TX7}, + {8, VHD_ST_TX8}, {9, VHD_ST_TX9}, {10, VHD_ST_TX10}, {11, VHD_ST_TX11}, +}; +const std::unordered_map id_to_tx_channel_type_prop = { + {0, VHD_CORE_BP_TX0_TYPE}, {1, VHD_CORE_BP_TX1_TYPE}, {2, VHD_CORE_BP_TX2_TYPE}, + {3, VHD_CORE_BP_TX3_TYPE}, {4, VHD_CORE_BP_TX4_TYPE}, {5, VHD_CORE_BP_TX5_TYPE}, + {6, VHD_CORE_BP_TX6_TYPE}, {7, VHD_CORE_BP_TX7_TYPE}, {8, VHD_CORE_BP_TX8_TYPE}, + {9, VHD_CORE_BP_TX9_TYPE}, {10, VHD_CORE_BP_TX10_TYPE}, {11, VHD_CORE_BP_TX11_TYPE}, +}; +const std::unordered_map id_to_passive_loopback_prop = { + {0, VHD_CORE_BP_BYPASS_RELAY_0}, + {1, VHD_CORE_BP_BYPASS_RELAY_1}, + {2, VHD_CORE_BP_BYPASS_RELAY_2}, + {3, VHD_CORE_BP_BYPASS_RELAY_3} +}; +const std::unordered_map id_to_active_loopback_prop = { + {0, VHD_CORE_BP_ACTIVE_LOOPBACK_0} +}; +const std::unordered_map id_to_firmware_loopback_prop = { + {0, VHD_CORE_BP_FIRMWARE_LOOPBACK_0}, + {1, VHD_CORE_BP_FIRMWARE_LOOPBACK_1} +}; + +VideoMasterBase::VideoMasterBase(bool is_input, uint32_t board_index, + uint32_t channel_index, bool use_rdma) + : _is_input(is_input), _board_index(board_index), + _channel_index(channel_index), _use_rdma(use_rdma) { + // Initialize CUDA context and check for errors + cudaError_t cuda_error = cudaSetDevice(0); + if (cuda_error != cudaSuccess) { + HOLOSCAN_LOG_ERROR("Failed to set CUDA device: {}", + cudaGetErrorString(cuda_error)); + _is_igpu = false; // Default to discrete GPU behavior + return; + } + + cudaDeviceProp prop; + cuda_error = cudaGetDeviceProperties(&prop, 0); + if (cuda_error != cudaSuccess) { + HOLOSCAN_LOG_ERROR("Failed to get CUDA device properties: {}", + cudaGetErrorString(cuda_error)); + _is_igpu = false; // Default to discrete GPU behavior + return; + } + + _is_igpu = prop.integrated; + HOLOSCAN_LOG_INFO("CUDA device initialized: {} (Integrated: {})", + prop.name, _is_igpu); + if (_is_igpu && _use_rdma) { + HOLOSCAN_LOG_WARN("RDMA mode is not supported with integrated GPUs. Disabling RDMA."); + _use_rdma = false; + } +} + +void VideoMasterBase::stop_stream() { + HOLOSCAN_LOG_INFO("Stopping stream and closing handles"); + + if (_stream_handle) { + _stream_handle.reset(); + } + + sleep_ms(200); + set_loopback_state(true); + sleep_ms(200); + + if (_board_handle) { + _board_handle.reset(); + } + + free_buffers(); + HOLOSCAN_LOG_INFO("VideoMaster stream stopped and cleaned up"); +} + +bool VideoMasterBase::configure_board() { + std::string api_version = Deltacast::Helper::get_api_version(); + if (api_version.empty()) { + HOLOSCAN_LOG_ERROR("Could not retrieve VideoMaster API version"); + return false; + } + + uint32_t nb_boards = Deltacast::Helper::get_number_of_devices(); + + if (nb_boards == 0) { + HOLOSCAN_LOG_ERROR("No deltacast boards found"); + return false; + } + + HOLOSCAN_LOG_INFO("VideoMaster API version: {} - {} boards detected", api_version, nb_boards); + + _board_handle = std::move(Deltacast::Helper::get_board_handle(_board_index)); + + return _board_handle != nullptr; +} + +bool VideoMasterBase::open_stream() { + HOLOSCAN_LOG_INFO("Opening {} stream on channel {}", + _is_input ? "input" : "output", _channel_index); + Deltacast::Helper::ApiSuccess success; + + const auto &id_to_channel_type_prop = + _is_input ? id_to_rx_channel_type_prop : id_to_tx_channel_type_prop; + const auto &id_to_stream_type = _is_input ? id_to_rx_stream_type : id_to_tx_stream_type; + if (id_to_channel_type_prop.find(_channel_index) == id_to_channel_type_prop.end() || + id_to_stream_type.find(_channel_index) == id_to_stream_type.end()) { + HOLOSCAN_LOG_ERROR("Invalid stream id ({})", _channel_index); + return false; + } + + success = VHD_GetBoardProperty(*board_handle(), + id_to_channel_type_prop.at(_channel_index), + (ULONG *)&_channel_type); + + if (!success) { + HOLOSCAN_LOG_ERROR("Failed to retrieve channel type"); + return false; + } + + switch (_channel_type) { + case VHD_CHNTYPE_HDSDI: + case VHD_CHNTYPE_3GSDI: + case VHD_CHNTYPE_12GSDI: + video_information = std::make_unique(); + break; + case VHD_CHNTYPE_HDMI: + case VHD_CHNTYPE_DISPLAYPORT: + video_information = std::make_unique(); + break; + default: + break; + } + + if (!video_information) { + HOLOSCAN_LOG_ERROR("Unsupported channel type"); + return false; + } + + _stream_handle = std::move(Deltacast::Helper::get_stream_handle(*_board_handle, + id_to_stream_type.at(_channel_index), + video_information->get_stream_processing_mode())); + + set_loopback_state(false); + + if (!_stream_handle) { + HOLOSCAN_LOG_ERROR("Failed to open stream handle"); + return false; + } + + video_format = {}; + + HOLOSCAN_LOG_INFO("{} stream successfully opened." + , VHD_STREAMTYPE_ToString(id_to_stream_type.at(_channel_index))); + + return true; +} + +bool VideoMasterBase::configure_stream() { + bool success_b = true; + success_b = holoscan_log_on_error(Deltacast::Helper::ApiSuccess{ + VHD_SetStreamProperty(*stream_handle(), + VHD_CORE_SP_BUFFER_PACKING, VHD_BUFPACK_VIDEO_RGB_32) + }, + "Failed to set stream type"); + if (!success_b) { + return false; + } + + if (!video_information->get_video_format(stream_handle())->progressive) { + success_b = holoscan_log_on_error(Deltacast::Helper::ApiSuccess{ + VHD_SetStreamProperty(*stream_handle() + , VHD_CORE_SP_FIELD_MERGE, TRUE) + }, + "Failed to set field merge property"); + if (!success_b) { + return false; + } + } + + if (_is_input) { + auto success_opt = video_information->set_stream_properties_values( + *_stream_handle, + video_information->get_stream_properties_values(*_stream_handle)); + + if (!success_opt.has_value() || !success_opt.value()) { + HOLOSCAN_LOG_ERROR("Failed to set stream properties"); + return false; + } + } + + const auto &id_to_stream_type = _is_input ? id_to_rx_stream_type : id_to_tx_stream_type; + video_format = video_information->get_video_format(*_stream_handle).value(); + HOLOSCAN_LOG_INFO("{} configured in {}x{}@{}" + , VHD_STREAMTYPE_ToString(id_to_stream_type.at(_channel_index)) + , video_format.width, video_format.height, video_format.framerate); + + return true; +} + +bool VideoMasterBase::init_buffers() { + HOLOSCAN_LOG_INFO("Initializing {} buffers", _is_input ? "input" : "output"); + std::vector buffer_sizes; + free_buffers(); + + if (_use_rdma || _is_input) { + for (auto &slot : gpu_buffers) + slot.resize(video_information->get_nb_buffer_types()); + } + + if (!_use_rdma) { + for (auto &slot : system_buffers) + slot.resize(video_information->get_nb_buffer_types()); + } + + Deltacast::Helper::ApiSuccess success; + success = VHD_InitApplicationBuffers(*stream_handle()); + if (!success) { + HOLOSCAN_LOG_ERROR("Failed to init application buffers"); + return false; + } + + buffer_sizes.resize(video_information->get_nb_buffer_types()); + HOLOSCAN_LOG_DEBUG("Buffer types count: {}, Slots count: {}", + video_information->get_nb_buffer_types(), gpu_buffers.size()); + + for (int buffer_type_index = 0; + buffer_type_index < video_information->get_nb_buffer_types(); + buffer_type_index++) { + VHD_GetApplicationBuffersSize(*stream_handle(), + buffer_type_index, + &buffer_sizes[buffer_type_index]); + HOLOSCAN_LOG_DEBUG("Buffer type {}: size = {} bytes", + buffer_type_index, buffer_sizes[buffer_type_index]); + if (!buffer_sizes[buffer_type_index]) + continue; + + HOLOSCAN_LOG_DEBUG("Is IGPU: {}", _is_igpu); + for (int slot_index = 0; slot_index < gpu_buffers.size(); slot_index++) { + if ((buffer_type_index == video_information->get_buffer_type() && _use_rdma) || + _is_input) { + cudaError_t cuda_error; + if (_is_igpu) { + HOLOSCAN_LOG_DEBUG("Trying to allocate Slot {}, Buffer type {}: " + "CUDA host alloc (iGPU) - {} bytes", + slot_index, buffer_type_index, + buffer_sizes[buffer_type_index]); + cuda_error = cudaHostAlloc(&gpu_buffers[slot_index][buffer_type_index], + buffer_sizes[buffer_type_index], + cudaHostAllocDefault); + if (cuda_error != cudaSuccess) { + HOLOSCAN_LOG_ERROR("CUDA host allocation failed: {}", + cudaGetErrorString(cuda_error)); + return false; + } + } else { + HOLOSCAN_LOG_DEBUG("Trying to allocate Slot {}, Buffer type {}: " + "CUDA device alloc - {} bytes", + slot_index, buffer_type_index, + buffer_sizes[buffer_type_index]); + cuda_error = cudaMalloc(&gpu_buffers[slot_index][buffer_type_index], + buffer_sizes[buffer_type_index]); + if (cuda_error != cudaSuccess) { + HOLOSCAN_LOG_ERROR("CUDA device allocation failed: {}", + cudaGetErrorString(cuda_error)); + return false; + } + } + } + if (buffer_type_index == video_information->get_buffer_type() && !_use_rdma) { + HOLOSCAN_LOG_DEBUG("Trying to allocate Slot {}, Buffer type {}: " + "posix_memalign alloc for VideoMaster DMA - {} bytes", + slot_index, buffer_type_index, + buffer_sizes[buffer_type_index]); + if (posix_memalign((void**)&system_buffers[slot_index][buffer_type_index], + 4096, buffer_sizes[buffer_type_index])) { + HOLOSCAN_LOG_ERROR("posix_memalign failed for system buffers"); + return false; + } + } + } + } + + for (int slot_index = 0; slot_index < slot_handles.size(); slot_index++) { + HOLOSCAN_LOG_DEBUG("Creating slot {}/{}", slot_index + 1, slot_handles.size()); + std::vector raw_buffer_pointer; + for (int buffer_type_index = 0; + buffer_type_index < video_information->get_nb_buffer_types(); + buffer_type_index++) { + VHD_APPLICATION_BUFFER_DESCRIPTOR desc; + desc.Size = sizeof(VHD_APPLICATION_BUFFER_DESCRIPTOR); + + // Use system buffers for VideoMaster DMA in non-RDMA mode, GPU buffers otherwise + if (buffer_type_index == video_information->get_buffer_type() && !_use_rdma) { + desc.pBuffer = (buffer_sizes[buffer_type_index] + ? system_buffers[slot_index][buffer_type_index] + : nullptr); + } else { + desc.pBuffer = (buffer_sizes[buffer_type_index] + ? gpu_buffers[slot_index][buffer_type_index] + : nullptr); + } + desc.RDMAEnabled = (buffer_type_index == video_information->get_buffer_type() && + _use_rdma); + HOLOSCAN_LOG_DEBUG(" Buffer type {}: ptr={}, RDMA={}", + buffer_type_index, (void*)desc.pBuffer, desc.RDMAEnabled); + + raw_buffer_pointer.push_back(desc); + } + HOLOSCAN_LOG_DEBUG("Creating slot with {} buffer types", raw_buffer_pointer.size()); + success = VHD_CreateSlotEx(*stream_handle(), + raw_buffer_pointer.data(), &slot_handles[slot_index]); + if (!success) { + HOLOSCAN_LOG_ERROR("Failed to create slot."); + return false; + } + + if (_is_input) { + success = VHD_QueueInSlot(slot_handles[slot_index]); + if (!success) { + HOLOSCAN_LOG_ERROR("Failed to queue slot"); + return false; + } + HOLOSCAN_LOG_DEBUG("Slot {} queued for input", slot_index); + } + } + + HOLOSCAN_LOG_INFO("Buffers initialized successfully ({} slots)", NB_SLOTS); + return true; +} + +void VideoMasterBase::free_buffers() { + HOLOSCAN_LOG_DEBUG("Freeing buffers"); + + // Free GPU buffers (always allocated) + for (int slot_index = 0; slot_index < gpu_buffers.size(); slot_index++) { + for (int buffer_type_index = 0; + buffer_type_index < gpu_buffers[slot_index].size(); + buffer_type_index++) { + if (gpu_buffers[slot_index][buffer_type_index] != nullptr) { + if (_is_igpu) { + cudaError_t cuda_error = cudaFreeHost(gpu_buffers[slot_index][buffer_type_index]); + if (cuda_error != cudaSuccess) { + HOLOSCAN_LOG_ERROR("CUDA host free failed for slot {}, buffer type {}: {}", + slot_index, buffer_type_index, cudaGetErrorString(cuda_error)); + } else { + HOLOSCAN_LOG_DEBUG("Freed CUDA host buffer for slot {}, buffer type {}", + slot_index, buffer_type_index); + } + } else { + cudaError_t cuda_error = cudaFree(gpu_buffers[slot_index][buffer_type_index]); + if (cuda_error != cudaSuccess) { + HOLOSCAN_LOG_ERROR("CUDA device free failed for slot {}, buffer type {}: {}", + slot_index, buffer_type_index, cudaGetErrorString(cuda_error)); + } else { + HOLOSCAN_LOG_DEBUG("Freed CUDA device buffer for slot {}, buffer type {}", + slot_index, buffer_type_index); + } + } + gpu_buffers[slot_index][buffer_type_index] = nullptr; + } + } + } + + // Free system buffers (only allocated in non-RDMA mode) + for (int slot_index = 0; slot_index < system_buffers.size(); slot_index++) { + for (int buffer_type_index = 0; + buffer_type_index < system_buffers[slot_index].size(); + buffer_type_index++) { + if (system_buffers[slot_index][buffer_type_index] != nullptr) { + free(system_buffers[slot_index][buffer_type_index]); + HOLOSCAN_LOG_DEBUG("Freed system buffer for slot {}, buffer type {}", + slot_index, buffer_type_index); + system_buffers[slot_index][buffer_type_index] = nullptr; + } + } + } +} + +bool VideoMasterBase::start_stream() { + const auto &id_to_stream_type = _is_input ? id_to_rx_stream_type : id_to_tx_stream_type; + + Deltacast::Helper::ApiSuccess success; + if (!(success = VHD_StartStream(*stream_handle()))) { + HOLOSCAN_LOG_ERROR("Could not start stream {}" + , VHD_STREAMTYPE_ToString(id_to_stream_type.at(_channel_index))); + return false; + } + + HOLOSCAN_LOG_INFO("{} stream successfully started." + , VHD_STREAMTYPE_ToString(id_to_stream_type.at(_channel_index))); + + return true; +} + +bool VideoMasterBase::holoscan_log_on_error(Deltacast::Helper::ApiSuccess result + , const std::string& message) { + bool result_b = static_cast(result); + if (!result_b) { + auto error_code = result.error_code(); + std::string error_message = message + + " - Error: " + Deltacast::Helper::enum_to_string(error_code); + HOLOSCAN_LOG_ERROR(error_message.c_str()); + } + return result_b; +} + +bool VideoMasterBase::signal_present() { + const std::unordered_map id_to_rx_status_prop = { + {0, VHD_CORE_BP_RX0_STATUS}, {1, VHD_CORE_BP_RX1_STATUS}, {2, VHD_CORE_BP_RX2_STATUS}, + {3, VHD_CORE_BP_RX3_STATUS}, {4, VHD_CORE_BP_RX4_STATUS}, {5, VHD_CORE_BP_RX5_STATUS}, + {6, VHD_CORE_BP_RX6_STATUS}, {7, VHD_CORE_BP_RX7_STATUS}, {8, VHD_CORE_BP_RX8_STATUS}, + {9, VHD_CORE_BP_RX9_STATUS}, {10, VHD_CORE_BP_RX10_STATUS}, {11, VHD_CORE_BP_RX11_STATUS}, + }; + ULONG status; + Deltacast::Helper::ApiSuccess success; + + success = VHD_GetBoardProperty(*board_handle(), id_to_rx_status_prop.at(_channel_index), &status); + if (!success) { + HOLOSCAN_LOG_ERROR("Failed to retrieve rx status"); + return false; + } + + return !(status & VHD_CORE_RXSTS_UNLOCKED); +} + +bool VideoMasterBase::set_loopback_state(bool state) { + ULONG has_passive_loopback = FALSE; + ULONG has_active_loopback = FALSE; + ULONG has_firmware_loopback = FALSE; + bool success_b = true; + + success_b = success_b & holoscan_log_on_error(Deltacast::Helper::ApiSuccess{ + VHD_GetBoardCapability(*board_handle(), + VHD_CORE_BOARD_CAP_PASSIVE_LOOPBACK, + &has_passive_loopback) + }, "Failed to retrieve passive loopback capability"); + + success_b = success_b & holoscan_log_on_error(Deltacast::Helper::ApiSuccess{ + VHD_GetBoardCapability(*board_handle(), + VHD_CORE_BOARD_CAP_ACTIVE_LOOPBACK, + &has_active_loopback) + }, "Failed to retrieve active loopback capability"); + + success_b = success_b & holoscan_log_on_error(Deltacast::Helper::ApiSuccess{ + VHD_GetBoardCapability(*board_handle(), + VHD_CORE_BOARD_CAP_FIRMWARE_LOOPBACK, + &has_firmware_loopback) + }, "Failed to retrieve firmware loopback capability"); + + if (has_firmware_loopback && + id_to_firmware_loopback_prop.find(_channel_index) != id_to_firmware_loopback_prop.end()) { + success_b = holoscan_log_on_error(Deltacast::Helper::ApiSuccess{ + VHD_SetBoardProperty(*board_handle(), + id_to_firmware_loopback_prop.at(_channel_index), state) + }, "Failed to set firmware loopback state"); + + return success_b; + } else if (has_active_loopback && + id_to_active_loopback_prop.find(_channel_index) != id_to_active_loopback_prop.end()) { + success_b = holoscan_log_on_error(Deltacast::Helper::ApiSuccess{ + VHD_SetBoardProperty(*board_handle(), + id_to_active_loopback_prop.at(_channel_index), + state) + }, "Failed to set active loopback state"); + + return success_b; + } else if (has_passive_loopback && + id_to_passive_loopback_prop.find(_channel_index) != id_to_passive_loopback_prop.end()) { + success_b = holoscan_log_on_error(Deltacast::Helper::ApiSuccess{ + VHD_SetBoardProperty(*board_handle(), + id_to_passive_loopback_prop.at(_channel_index), + state) + }, "Failed to set passive loopback state"); + return success_b; + } + return true; +} + +} // namespace holoscan::ops diff --git a/operators/deltacast_videomaster/videomaster_base.hpp b/operators/deltacast_videomaster/videomaster_base.hpp new file mode 100644 index 0000000000..afb0b358da --- /dev/null +++ b/operators/deltacast_videomaster/videomaster_base.hpp @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2022-2026, DELTACAST.TV. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef HOLOSCAN_OPERATORS_VIDEOMASTER_BASE_HPP_ +#define HOLOSCAN_OPERATORS_VIDEOMASTER_BASE_HPP_ + +#include +#include +#include + +#include "holoscan/holoscan.hpp" + +#include "VideoMasterHD_Core.h" +#include "VideoMasterAPIHelper/handle_manager.hpp" +#include "VideoMasterAPIHelper/VideoInformation/core.hpp" + +namespace holoscan::ops { + +class VideoMasterBase { + public: + VideoMasterBase(bool is_input, uint32_t board_index, uint32_t channel_index, + bool use_rdma = false); + + static constexpr uint32_t SLOT_TIMEOUT = 100; + static constexpr uint32_t NB_SLOTS = 4; + + bool configure_board(); + bool open_stream(); + bool configure_stream(); + bool init_buffers(); + bool start_stream(); + bool holoscan_log_on_error(Deltacast::Helper::ApiSuccess result, + const std::string& message); + void stop_stream(); + bool signal_present(); + bool set_loopback_state(bool state); + + Deltacast::Helper::BoardHandle& board_handle() { return *_board_handle; } + Deltacast::Helper::StreamHandle& stream_handle() { return *_stream_handle; } + const bool is_igpu() const { return _is_igpu; } + + std::unique_ptr video_information; + std::array, NB_SLOTS> gpu_buffers; + std::array, NB_SLOTS> system_buffers; + std::array slot_handles; + Deltacast::Helper::VideoFormat video_format; + + private: + bool _is_input; + bool _is_igpu = false; + VHD_CHANNELTYPE _channel_type = NB_VHD_CHANNELTYPE; + uint32_t _board_index; + uint32_t _channel_index; + bool _use_rdma; + + void free_buffers(); + std::unique_ptr _board_handle; + std::unique_ptr _stream_handle; +}; + +} // namespace holoscan::ops + +#endif // HOLOSCAN_OPERATORS_VIDEOMASTER_BASE_HPP_ diff --git a/operators/deltacast_videomaster/videomaster_source.cpp b/operators/deltacast_videomaster/videomaster_source.cpp index 9dff7fd125..9cb27db425 100644 --- a/operators/deltacast_videomaster/videomaster_source.cpp +++ b/operators/deltacast_videomaster/videomaster_source.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022 DELTACAST.TV. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -17,12 +17,30 @@ #include "videomaster_source.hpp" + +#include +#include + +#include +#include + +#include "VideoMasterHD_ApplicationBuffers.h" +#include "gxf/multimedia/video.hpp" + #include "holoscan/core/gxf/entity.hpp" -#include "holoscan/core/operator_spec.hpp" #include "holoscan/core/resources/gxf/allocator.hpp" #include "holoscan/core/resources/gxf/cuda_stream_pool.hpp" +#include "VideoMasterAPIHelper/VideoInformation/core.hpp" + +using holoscan::OperatorSpec; +using holoscan::InputContext; +using holoscan::OutputContext; +using holoscan::ExecutionContext; +using holoscan::Arg; +using holoscan::ArgList; + namespace holoscan::ops { void VideoMasterSourceOp::setup(OperatorSpec& spec) { @@ -32,7 +50,6 @@ void VideoMasterSourceOp::setup(OperatorSpec& spec) { spec.param(_use_rdma, "rdma", "Use RDMA", "Specifies whether RDMA should be used.", false); spec.param(_board_index, "board", "Board", "Index of the Deltacast.TV board to use.", 0u); spec.param(_channel_index, "input", "Input", "Index of the input channel to use.", 0u); - spec.param(_pool, "pool", "Pool", "Pool to allocate the buffers."); spec.param(_width, "width", "Width", "Width of the video frames to send.", 1920u); spec.param(_height, "height", "Height", "Height of the video frames to send.", 1080u); spec.param(_progressive, @@ -43,4 +60,157 @@ void VideoMasterSourceOp::setup(OperatorSpec& spec) { spec.param(_framerate, "framerate", "Framerate", "Framerate of the signal to generate.", 60u); } +void VideoMasterSourceOp::initialize() { + Operator::initialize(); + _has_lost_signal = false; + _video_master_base = std::make_unique(true, _board_index, + _channel_index, _use_rdma); +} + +void VideoMasterSourceOp::start() { + HOLOSCAN_LOG_INFO("Starting VideoMaster Source on board {} channel {}", + _board_index, _channel_index); + if (!_video_master_base->configure_board()) + throw std::runtime_error("Failed to configure board"); + if (!_video_master_base->open_stream()) + throw std::runtime_error("Failed to open stream"); + HOLOSCAN_LOG_INFO("VideoMaster Source started successfully"); +} + +void VideoMasterSourceOp::compute(InputContext& op_input, OutputContext& op_output, + ExecutionContext& context) { + bool success_b = true; + + if (!_video_master_base->signal_present()) { + if (!_has_lost_signal) + HOLOSCAN_LOG_INFO("No signal detected, waiting for input..."); + + _has_lost_signal = true; + return; + } else if (!(_video_master_base->video_format != + Deltacast::Helper::VideoFormat{})) { // start stream + if (!_video_master_base->configure_stream()) + throw std::runtime_error("Failed to configure stream"); + + auto config_video_format = Deltacast::Helper::VideoFormat{_width, _height, + _progressive, + _framerate}; + if (_video_master_base->video_format != config_video_format) { + VHD_StopStream(*_video_master_base->stream_handle()); + throw std::runtime_error("Input signal does not match configuration"); + } + + if (!_video_master_base->init_buffers()) + throw std::runtime_error("Failed to initialize buffers"); + if (!_video_master_base->start_stream()) + throw std::runtime_error("Failed to start stream"); + _slot_count = 0; + } + + if (_has_lost_signal) { + HOLOSCAN_LOG_INFO("Input signal detected, resuming operation"); + _has_lost_signal = false; + } + + HOLOSCAN_LOG_DEBUG("Videoformat detection"); + auto detected_video_format = _video_master_base->video_information->get_video_format( + _video_master_base->stream_handle()); + if (detected_video_format && + *detected_video_format != _video_master_base->video_format) { + HOLOSCAN_LOG_INFO("Input signal has changed, exiting"); + VHD_StopStream(*_video_master_base->stream_handle()); + throw std::runtime_error("Input signal has changed"); + } + + HANDLE slot_handle; + HOLOSCAN_LOG_DEBUG("Waiting for incoming slot"); + ULONG api_result = VHD_WaitSlotFilled(*_video_master_base->stream_handle(), + &slot_handle, + VideoMasterBase::SLOT_TIMEOUT); + if (api_result != VHDERR_NOERROR) { + if (api_result == VHDERR_TIMEOUT) { + HOLOSCAN_LOG_INFO("Timeout"); + return; + } else { + throw std::runtime_error("Failed to wait for incoming slot"); + } + } + + BYTE *buffer = nullptr; + ULONG buffer_size = 0; + + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_GetSlotBuffer(slot_handle, + _video_master_base->video_information->get_buffer_type(), + &buffer, &buffer_size)}, + "Failed to get slot buffer")) { + throw std::runtime_error("Failed to get slot buffer"); + } + + HOLOSCAN_LOG_DEBUG("Transmit slot buffer {} - size: {} bytes", + (void*)buffer, buffer_size); + transmit_buffer_data(buffer, buffer_size, op_output, context); + + HOLOSCAN_LOG_DEBUG("Queue slot"); + VHD_QueueInSlot(slot_handle); + _slot_count++; +} + +void VideoMasterSourceOp::stop() { + HOLOSCAN_LOG_INFO("Stopping VideoMaster Source"); + _video_master_base->stop_stream(); +} + +void VideoMasterSourceOp::transmit_buffer_data(void* buffer, uint32_t buffer_size, + OutputContext& op_output, + ExecutionContext& context) { + if (!_use_rdma) { + // In non-RDMA mode, copy from system buffer (used by VideoMaster DMA) to GPU buffer + // (used by processing pipeline) + void* gpu_buffer = _video_master_base->gpu_buffers[ + _slot_count % VideoMasterBase::NB_SLOTS][ + _video_master_base->video_information->get_buffer_type()]; + cudaError_t cuda_status; + if (_video_master_base->is_igpu()) + cuda_status = cudaMemcpy(gpu_buffer, buffer, buffer_size, cudaMemcpyHostToHost); + else + cuda_status = cudaMemcpy(gpu_buffer, buffer, buffer_size, cudaMemcpyHostToDevice); + if (cuda_status != cudaSuccess) { + throw std::runtime_error(std::string("cudaMemcpy failed: ") + + cudaGetErrorString(cuda_status)); + } + buffer = gpu_buffer; + } + auto video_output = nvidia::gxf::Entity::New(context.context()); + if (!video_output) { + throw std::runtime_error("Failed to allocate video output; terminating."); + } + + auto video_buffer = video_output.value().add(); + if (!video_buffer) { + throw std::runtime_error("Failed to allocate video buffer; terminating."); + } + + auto format = _video_master_base->video_information->get_video_format( + _video_master_base->stream_handle()); + if (!format) throw std::runtime_error("Failed to get video format"); + + nvidia::gxf::VideoTypeTraits + video_type; + nvidia::gxf::VideoFormatSize + color_format; + auto color_planes = color_format.getDefaultColorPlanes(format->width, format->height); + nvidia::gxf::VideoBufferInfo info{ + format->width, format->height, video_type.value, color_planes, + nvidia::gxf::SurfaceLayout::GXF_SURFACE_LAYOUT_PITCH_LINEAR}; + auto storage_type = _video_master_base->is_igpu() + ? nvidia::gxf::MemoryStorageType::kHost + : nvidia::gxf::MemoryStorageType::kDevice; + video_buffer.value()->wrapMemory(info, buffer_size, storage_type, buffer, nullptr); + + auto result = nvidia::gxf::Entity(std::move(video_output.value())); + + op_output.emit(result, "signal"); +} } // namespace holoscan::ops diff --git a/operators/deltacast_videomaster/videomaster_source.hpp b/operators/deltacast_videomaster/videomaster_source.hpp index 2cb49af4e4..d904025665 100644 --- a/operators/deltacast_videomaster/videomaster_source.hpp +++ b/operators/deltacast_videomaster/videomaster_source.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022 DELTACAST.TV. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,37 +22,47 @@ #include #include -#include "holoscan/core/gxf/gxf_operator.hpp" +#include "holoscan/holoscan.hpp" + +#include "videomaster_base.hpp" namespace holoscan::ops { /** * @brief Operator class to get the video stream from Deltacast capture card. * - * This wraps a GXF Codelet(`nvidia::holoscan::videomaster::VideoMasterSource`). */ -class VideoMasterSourceOp : public holoscan::ops::GXFOperator { +class VideoMasterSourceOp : public holoscan::Operator { public: - HOLOSCAN_OPERATOR_FORWARD_ARGS_SUPER(VideoMasterSourceOp, holoscan::ops::GXFOperator) + HOLOSCAN_OPERATOR_FORWARD_ARGS(VideoMasterSourceOp) VideoMasterSourceOp() = default; - const char* gxf_typename() const override { - return "nvidia::holoscan::videomaster::VideoMasterSource"; - } - void setup(OperatorSpec& spec) override; + void initialize() override; + void start() override; + void compute(InputContext& op_input, OutputContext& op_output, + ExecutionContext& context) override; + void stop() override; + private: + void transmit_buffer_data(void* buffer, uint32_t buffer_size, + OutputContext& op_output, ExecutionContext& context); + Parameter _signal; Parameter _use_rdma; Parameter _board_index; Parameter _channel_index; - Parameter> _pool; Parameter _width; Parameter _height; Parameter _progressive; Parameter _framerate; + + bool _has_lost_signal = false; + uint64_t _slot_count = 0; + + std::unique_ptr _video_master_base; }; } // namespace holoscan::ops diff --git a/operators/deltacast_videomaster/videomaster_transmitter.cpp b/operators/deltacast_videomaster/videomaster_transmitter.cpp index 6ad23221c8..003d2f096a 100644 --- a/operators/deltacast_videomaster/videomaster_transmitter.cpp +++ b/operators/deltacast_videomaster/videomaster_transmitter.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022, DELTACAST.TV. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -18,13 +18,56 @@ #include "videomaster_transmitter.hpp" #include "holoscan/core/gxf/entity.hpp" -#include "holoscan/core/operator_spec.hpp" #include "holoscan/core/resources/gxf/allocator.hpp" #include "holoscan/core/resources/gxf/cuda_stream_pool.hpp" +#include +#include + +#include +#include + +#include "VideoMasterHD_ApplicationBuffers.h" +#include "VideoMasterHD_Sdi.h" +#include "VideoMasterHD_Keyer.h" +#include "gxf/multimedia/video.hpp" + namespace holoscan::ops { +namespace { + +void sleep_ms(uint32_t value) { + std::this_thread::sleep_for(std::chrono::milliseconds(value)); +} + +const std::unordered_map id_to_genlock_source = { + {0, VHD_GENLOCK_RX0}, {1, VHD_GENLOCK_RX1}, {2, VHD_GENLOCK_RX2}, {3, VHD_GENLOCK_RX3}, + {4, VHD_GENLOCK_RX4}, {5, VHD_GENLOCK_RX5}, {6, VHD_GENLOCK_RX6}, {7, VHD_GENLOCK_RX7}, + {8, VHD_GENLOCK_RX8}, {9, VHD_GENLOCK_RX9}, {10, VHD_GENLOCK_RX10}, {11, VHD_GENLOCK_RX11}, +}; +const std::unordered_map id_to_rx_keyer_input = { + {0, VHD_KINPUT_RX0}, {1, VHD_KINPUT_RX1}, {2, VHD_KINPUT_RX2}, {3, VHD_KINPUT_RX3}}; +const std::unordered_map id_to_tx_keyer_input = { + {0, VHD_KINPUT_TX0}, {1, VHD_KINPUT_TX1}, {2, VHD_KINPUT_TX2}, {3, VHD_KINPUT_TX3}}; +const std::unordered_map id_to_rx_keyer_output = { + {0, VHD_KOUTPUT_RX0}, {1, VHD_KOUTPUT_RX1}, {2, VHD_KOUTPUT_RX2}, {3, VHD_KOUTPUT_RX3}}; +const std::unordered_map id_to_keyer_video_output = { + { 0, VHD_KEYER_BP_VIDEOOUTPUT_TX_0 }, + { 1, VHD_KEYER_BP_VIDEOOUTPUT_TX_1 }, + { 2, VHD_KEYER_BP_VIDEOOUTPUT_TX_2 }, + { 3, VHD_KEYER_BP_VIDEOOUTPUT_TX_3 }, +}; +const std::unordered_map id_to_keyer_anc_output_prop = { + { 0, VHD_KEYER_BP_ANCOUTPUT_TX_0 }, + { 1, VHD_KEYER_BP_ANCOUTPUT_TX_1 }, + { 2, VHD_KEYER_BP_ANCOUTPUT_TX_2 }, + { 3, VHD_KEYER_BP_ANCOUTPUT_TX_3 }, +}; + +} // namespace + + void VideoMasterTransmitterOp::setup(OperatorSpec& spec) { auto& source = spec.input("source"); @@ -40,7 +83,6 @@ void VideoMasterTransmitterOp::setup(OperatorSpec& spec) { true); spec.param(_framerate, "framerate", "Framerate", "Framerate of the signal to generate.", 60u); spec.param(_source, "source", "Source", "Source data.", &source); - spec.param(_pool, "pool", "Pool", "Pool to allocate the buffers."); spec.param(_overlay, "enable_overlay", "EnableOverlay", @@ -48,4 +90,300 @@ void VideoMasterTransmitterOp::setup(OperatorSpec& spec) { false); } +void VideoMasterTransmitterOp::initialize() { + Operator::initialize(); + _has_lost_signal = false; + _video_master_base = std::make_unique(false, _board_index, + _channel_index, _use_rdma); +} + +void VideoMasterTransmitterOp::start() { + HOLOSCAN_LOG_INFO("Starting VideoMaster Transmitter on board {} channel {}", + _board_index, _channel_index); + if (!_video_master_base->configure_board()) + throw std::runtime_error("Failed to configure board"); + if (!_video_master_base->open_stream()) + throw std::runtime_error("Failed to open stream"); + + if (!_overlay) { + _video_master_base->video_format = Deltacast::Helper::VideoFormat{ + _width, _height, _progressive, _framerate}; + _video_master_base->video_information->set_video_format( + _video_master_base->stream_handle(), _video_master_base->video_format); + + auto opt_sync_source_property = + _video_master_base->video_information->get_sync_source_properties(); + if (opt_sync_source_property) + VHD_SetBoardProperty(*_video_master_base->board_handle(), + *opt_sync_source_property, VHD_GENLOCK_LOCAL); + + if (!_video_master_base->configure_stream()) + throw std::runtime_error("Failed to configure stream"); + + if (!_video_master_base->init_buffers()) + throw std::runtime_error("Failed to initialize buffers"); + + if (!_video_master_base->start_stream()) + throw std::runtime_error("Failed to start stream"); + + sleep_ms(200); + _video_master_base->set_loopback_state(false); + sleep_ms(200); + } + + HOLOSCAN_LOG_INFO("VideoMaster Transmitter started successfully"); +} + +void VideoMasterTransmitterOp::compute(InputContext& op_input, OutputContext& op_output, + ExecutionContext& context) { + HOLOSCAN_LOG_DEBUG("VideoMasterTransmitterOp::compute() - Starting compute cycle {}", + _slot_count); + auto source = op_input.receive("source"); + if (!source) { + throw std::runtime_error("Failed to receive source"); + } + + auto tensor = source.value().get(); + if (!tensor) { + throw std::runtime_error("Failed to get tensor from source"); + } + HOLOSCAN_LOG_DEBUG("Successfully received tensor - size: {} bytes", tensor->nbytes()); + + if (_overlay) { + if (!_video_master_base->signal_present()) { + if (!_has_lost_signal) + HOLOSCAN_LOG_INFO("No signal detected, waiting for input..."); + + _has_lost_signal = true; + return; + } else if (!(_video_master_base->video_format != + Deltacast::Helper::VideoFormat{})) { // stream not started yet + HOLOSCAN_LOG_INFO("Configuring overlay mode: {}x{} {} @ {} Hz", + _width, _height, + _progressive ? "p" : "i", _framerate); + _video_master_base->video_format = Deltacast::Helper::VideoFormat{ + _width, _height, _progressive, _framerate}; + _video_master_base->video_information->set_video_format( + _video_master_base->stream_handle(), _video_master_base->video_format); + + HOLOSCAN_LOG_DEBUG("Configuring board for overlay..."); + if (!configure_board_for_overlay()) + throw std::runtime_error("Failed to configure board for overlay"); + + HOLOSCAN_LOG_DEBUG("Configuring stream..."); + if (!_video_master_base->configure_stream()) + throw std::runtime_error("Failed to configure stream"); + + HOLOSCAN_LOG_DEBUG("Configuring stream for overlay..."); + if (!configure_stream_for_overlay()) + throw std::runtime_error("Failed to configure stream for overlay"); + + HOLOSCAN_LOG_DEBUG("Initializing buffers..."); + if (!_video_master_base->init_buffers()) + throw std::runtime_error("Failed to initialize buffers"); + + HOLOSCAN_LOG_DEBUG("Starting stream..."); + if (!_video_master_base->start_stream()) + throw std::runtime_error("Failed to start stream"); + _slot_count = 0; + + sleep_ms(200); + _video_master_base->set_loopback_state(false); + sleep_ms(200); + HOLOSCAN_LOG_DEBUG("Overlay mode configured and started successfully"); + } + } + + HANDLE slot_handle; + HOLOSCAN_LOG_DEBUG("Getting slot handle - slot_count: {}, available slots: {}", + _slot_count, _video_master_base->slot_handles.size()); + if (_slot_count >= _video_master_base->slot_handles.size()) { + HOLOSCAN_LOG_DEBUG("Waiting for slot to be sent (slot_count >= available slots)"); + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_WaitSlotSent(*_video_master_base->stream_handle(), &slot_handle, + VideoMasterBase::SLOT_TIMEOUT)}, + "Failed to wait for slot to be sent")) { + return; + } + HOLOSCAN_LOG_DEBUG("Successfully waited for slot to be sent - slot_handle: {}", + static_cast(slot_handle)); + } else { + slot_handle = _video_master_base->slot_handles[_slot_count % + VideoMasterBase::NB_SLOTS]; + HOLOSCAN_LOG_DEBUG("Using available slot handle - index: {}, slot_handle: {}", + _slot_count % VideoMasterBase::NB_SLOTS, + static_cast(slot_handle)); + } + + BYTE *buffer = nullptr; + ULONG buffer_size = 0; + + HOLOSCAN_LOG_DEBUG("Attempting to get video buffer - slot_handle: {}", + static_cast(slot_handle)); + + // Validate slot handle before use + if (slot_handle == nullptr) { + HOLOSCAN_LOG_ERROR("Invalid slot handle detected: {}", + static_cast(slot_handle)); + return; + } + + auto get_buffer_result = VHD_GetSlotBuffer(slot_handle, VHD_SDI_BT_VIDEO, &buffer, + &buffer_size); + HOLOSCAN_LOG_DEBUG("VHD_GetSlotBuffer result: {}, buffer: {}, buffer_size: {}", + static_cast(get_buffer_result), static_cast(buffer), + buffer_size); + + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{get_buffer_result}, + "Failed to retrieve the video buffer")) { + return; + } + + HOLOSCAN_LOG_DEBUG("Copying data to buffer - tensor size: {}, buffer size: {}, " + "copy type: {}", + tensor->nbytes(), buffer_size, + (_use_rdma ? "DeviceToDevice" : "DeviceToHost")); + + // Validate that tensor size does not exceed buffer size before copying + if (tensor->nbytes() > buffer_size) { + HOLOSCAN_LOG_ERROR("Tensor size ({}) exceeds buffer size ({}); aborting copy.", + tensor->nbytes(), buffer_size); + return; + } + + cudaError_t cuda_result = cudaMemcpy( + buffer, tensor->data(), tensor->nbytes(), + (_use_rdma ? cudaMemcpyDeviceToDevice : cudaMemcpyDeviceToHost)); + if (cuda_result != cudaSuccess) { + HOLOSCAN_LOG_ERROR("CUDA memcpy failed: {}", cudaGetErrorString(cuda_result)); + return; + } + HOLOSCAN_LOG_DEBUG("Successfully copied data, queuing slot for output"); + + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{VHD_QueueOutSlot(slot_handle)}, + "Failed to queue out the video buffer")) { + return; + } + + _slot_count++; + HOLOSCAN_LOG_DEBUG("Compute cycle completed successfully - new slot_count: {}", + _slot_count); +} + +void VideoMasterTransmitterOp::stop() { + HOLOSCAN_LOG_INFO("Stopping VideoMaster Transmitter"); + _video_master_base->stop_stream(); +} + +bool VideoMasterTransmitterOp::configure_board_for_overlay() { + HOLOSCAN_LOG_INFO("Configuring board for overlay with keyer on channel {}", + _channel_index); + + if (!_video_master_base->video_information->configure_sync( + _video_master_base->board_handle(), _channel_index)) { + return false; + } + + auto keyer_props = _video_master_base->video_information->get_keyer_properties( + _video_master_base->board_handle()); + + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_SetBoardProperty(*_video_master_base->board_handle(), + keyer_props.at(VHD_KEYER_BP_INPUT_A), + id_to_rx_keyer_input.at(_channel_index))}, + "Could not configure keyer input A")) { + return false; + } + + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_SetBoardProperty(*_video_master_base->board_handle(), + keyer_props.at(VHD_KEYER_BP_INPUT_B), + id_to_tx_keyer_input.at(_channel_index))}, + "Could not configure keyer input B")) { + return false; + } + + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_SetBoardProperty(*_video_master_base->board_handle(), + keyer_props.at(VHD_KEYER_BP_INPUT_K), + id_to_tx_keyer_input.at(_channel_index))}, + "Could not configure keyer input K")) { + return false; + } + + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_SetBoardProperty(*_video_master_base->board_handle(), + id_to_keyer_video_output.at(_channel_index), + VHD_KOUTPUT_KEYER)}, + "Could not configure keyer video output")) { + return false; + } + + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_SetBoardProperty(*_video_master_base->board_handle(), + keyer_props.at(VHD_KEYER_BP_ALPHACLIP_MIN), 0)}, + "Could not configure alphaclip min")) { + return false; + } + + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_SetBoardProperty(*_video_master_base->board_handle(), + keyer_props.at(VHD_KEYER_BP_ALPHACLIP_MAX), 1020)}, + "Could not configure alphaclip max")) { + return false; + } + + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_SetBoardProperty(*_video_master_base->board_handle(), + keyer_props.at(VHD_KEYER_BP_ALPHABLEND_FACTOR), 1023)}, + "Could not configure alphablend factor")) { + return false; + } + + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_SetBoardProperty(*_video_master_base->board_handle(), + keyer_props.at(VHD_KEYER_BP_ENABLE), TRUE)}, + "Could not enable keyer")) { + return false; + } + + return true; +} + +bool VideoMasterTransmitterOp::configure_stream_for_overlay() { + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_SetStreamProperty(*_video_master_base->stream_handle(), + VHD_CORE_SP_BUFFER_PACKING, + VHD_BUFPACK_VIDEO_RGBA_32)}, + "Could not set buffer packing")) { + return false; + } + + auto opt_sync_tx_property = + _video_master_base->video_information->get_sync_tx_properties(); + if (opt_sync_tx_property) { + if (!_video_master_base->holoscan_log_on_error( + Deltacast::Helper::ApiSuccess{ + VHD_SetStreamProperty(*_video_master_base->stream_handle(), + *opt_sync_tx_property, TRUE)}, + "Could not set sync tx property")) { + return false; + } + } + + return true; +} + } // namespace holoscan::ops diff --git a/operators/deltacast_videomaster/videomaster_transmitter.hpp b/operators/deltacast_videomaster/videomaster_transmitter.hpp index 7d05667e09..85c70b36ac 100644 --- a/operators/deltacast_videomaster/videomaster_transmitter.hpp +++ b/operators/deltacast_videomaster/videomaster_transmitter.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022 DELTACAST.TV. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, DELTACAST.TV. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,28 +22,32 @@ #include #include -#include "holoscan/core/gxf/gxf_operator.hpp" +#include "holoscan/core/operator.hpp" + +#include "videomaster_base.hpp" namespace holoscan::ops { /** - * @brief Operator class to get the video stream from Deltacast capture card. - * - * This wraps a GXF Codelet(`nvidia::holoscan::videomaster::VideoMasterTransmitter`). + * @brief Operator class to transmit video stream to Deltacast capture card. */ -class VideoMasterTransmitterOp : public holoscan::ops::GXFOperator { +class VideoMasterTransmitterOp : public holoscan::Operator { public: - HOLOSCAN_OPERATOR_FORWARD_ARGS_SUPER(VideoMasterTransmitterOp, holoscan::ops::GXFOperator) + HOLOSCAN_OPERATOR_FORWARD_ARGS(VideoMasterTransmitterOp) VideoMasterTransmitterOp() = default; - const char* gxf_typename() const override { - return "nvidia::holoscan::videomaster::VideoMasterTransmitter"; - } - void setup(OperatorSpec& spec) override; + void initialize() override; + void start() override; + void compute(InputContext& op_input, OutputContext& op_output, + ExecutionContext& context) override; + void stop() override; private: + bool configure_board_for_overlay(); + bool configure_stream_for_overlay(); + Parameter _source; Parameter _use_rdma; Parameter _board_index; @@ -53,7 +57,11 @@ class VideoMasterTransmitterOp : public holoscan::ops::GXFOperator { Parameter _progressive; Parameter _framerate; Parameter _overlay; - Parameter> _pool; + + bool _has_lost_signal = false; + uint64_t _slot_count = 0; + + std::unique_ptr _video_master_base; }; } // namespace holoscan::ops diff --git a/operators/ehr_query_llm/fhir/__init__.py b/operators/ehr_query_llm/fhir/__init__.py index b1a0cac792..f2eadfbc30 100644 --- a/operators/ehr_query_llm/fhir/__init__.py +++ b/operators/ehr_query_llm/fhir/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/ehr_query_llm/fhir_resource_sanitizer_op/__init__.py b/operators/ehr_query_llm/fhir_resource_sanitizer_op/__init__.py index 93d54e0923..90dae453a9 100644 --- a/operators/ehr_query_llm/fhir_resource_sanitizer_op/__init__.py +++ b/operators/ehr_query_llm/fhir_resource_sanitizer_op/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/ehr_query_llm/message_handling/__init__.py b/operators/ehr_query_llm/message_handling/__init__.py index d5ebf5e5ac..9c5d7523af 100644 --- a/operators/ehr_query_llm/message_handling/__init__.py +++ b/operators/ehr_query_llm/message_handling/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/ehr_query_llm/zero_mq_publisher_op/__init__.py b/operators/ehr_query_llm/zero_mq_publisher_op/__init__.py index cc26cb51d6..54533107ba 100644 --- a/operators/ehr_query_llm/zero_mq_publisher_op/__init__.py +++ b/operators/ehr_query_llm/zero_mq_publisher_op/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/ehr_query_llm/zero_mq_subscriber_op/__init__.py b/operators/ehr_query_llm/zero_mq_subscriber_op/__init__.py index 0930414f63..cdc14f791d 100644 --- a/operators/ehr_query_llm/zero_mq_subscriber_op/__init__.py +++ b/operators/ehr_query_llm/zero_mq_subscriber_op/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/grpc_operators/CMakeLists.txt b/operators/grpc_operators/CMakeLists.txt index 4b977974fe..004dbe300b 100644 --- a/operators/grpc_operators/CMakeLists.txt +++ b/operators/grpc_operators/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/CMakeLists.txt b/operators/gstreamer/CMakeLists.txt index 86262efa82..706f72346a 100644 --- a/operators/gstreamer/CMakeLists.txt +++ b/operators/gstreamer/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/allocator.hpp b/operators/gstreamer/gst/allocator.hpp index 1cce2ab064..1cccf6e754 100644 --- a/operators/gstreamer/gst/allocator.hpp +++ b/operators/gstreamer/gst/allocator.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/app_src.cpp b/operators/gstreamer/gst/app_src.cpp index b671d5df3b..3f82d6c849 100644 --- a/operators/gstreamer/gst/app_src.cpp +++ b/operators/gstreamer/gst/app_src.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/app_src.hpp b/operators/gstreamer/gst/app_src.hpp index d4bd28daff..e7caa6a335 100644 --- a/operators/gstreamer/gst/app_src.hpp +++ b/operators/gstreamer/gst/app_src.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/buffer.cpp b/operators/gstreamer/gst/buffer.cpp index c5810f5b6f..137abe47b7 100644 --- a/operators/gstreamer/gst/buffer.cpp +++ b/operators/gstreamer/gst/buffer.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/buffer.hpp b/operators/gstreamer/gst/buffer.hpp index a11e5d7a0a..9d47c702db 100644 --- a/operators/gstreamer/gst/buffer.hpp +++ b/operators/gstreamer/gst/buffer.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/bus.hpp b/operators/gstreamer/gst/bus.hpp index b491da9c30..5d52d60d2f 100644 --- a/operators/gstreamer/gst/bus.hpp +++ b/operators/gstreamer/gst/bus.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/caps.cpp b/operators/gstreamer/gst/caps.cpp index 528f2d946f..8d7eb1685c 100644 --- a/operators/gstreamer/gst/caps.cpp +++ b/operators/gstreamer/gst/caps.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/caps.hpp b/operators/gstreamer/gst/caps.hpp index 81a4b832d0..53b3b64c15 100644 --- a/operators/gstreamer/gst/caps.hpp +++ b/operators/gstreamer/gst/caps.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/config.hpp b/operators/gstreamer/gst/config.hpp index 765b96cf0d..0506d3e832 100644 --- a/operators/gstreamer/gst/config.hpp +++ b/operators/gstreamer/gst/config.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/cuda_context.hpp b/operators/gstreamer/gst/cuda_context.hpp index 8b78a49fdb..7ba99f0d25 100644 --- a/operators/gstreamer/gst/cuda_context.hpp +++ b/operators/gstreamer/gst/cuda_context.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/element.hpp b/operators/gstreamer/gst/element.hpp index 9d431c0bd6..2bb7370a44 100644 --- a/operators/gstreamer/gst/element.hpp +++ b/operators/gstreamer/gst/element.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/error.hpp b/operators/gstreamer/gst/error.hpp index f23b617a20..b969a29b41 100644 --- a/operators/gstreamer/gst/error.hpp +++ b/operators/gstreamer/gst/error.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/memory.cpp b/operators/gstreamer/gst/memory.cpp index 2f7b88f6fb..b8ddf550fd 100644 --- a/operators/gstreamer/gst/memory.cpp +++ b/operators/gstreamer/gst/memory.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/memory.hpp b/operators/gstreamer/gst/memory.hpp index 8355f9135d..335092a113 100644 --- a/operators/gstreamer/gst/memory.hpp +++ b/operators/gstreamer/gst/memory.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/message.cpp b/operators/gstreamer/gst/message.cpp index 89fa49f16d..3cdfeced9c 100644 --- a/operators/gstreamer/gst/message.cpp +++ b/operators/gstreamer/gst/message.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/message.hpp b/operators/gstreamer/gst/message.hpp index 4bba77b07b..8dd13fcd79 100644 --- a/operators/gstreamer/gst/message.hpp +++ b/operators/gstreamer/gst/message.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/mini_object.hpp b/operators/gstreamer/gst/mini_object.hpp index 51c64a41af..0cc8897260 100644 --- a/operators/gstreamer/gst/mini_object.hpp +++ b/operators/gstreamer/gst/mini_object.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/object.hpp b/operators/gstreamer/gst/object.hpp index da0b6117b4..32dd48dd76 100644 --- a/operators/gstreamer/gst/object.hpp +++ b/operators/gstreamer/gst/object.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/pad.hpp b/operators/gstreamer/gst/pad.hpp index c47335eca0..341b3b3ac8 100644 --- a/operators/gstreamer/gst/pad.hpp +++ b/operators/gstreamer/gst/pad.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/pipeline.hpp b/operators/gstreamer/gst/pipeline.hpp index c48845eaab..9199de4cb6 100644 --- a/operators/gstreamer/gst/pipeline.hpp +++ b/operators/gstreamer/gst/pipeline.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/video_info.cpp b/operators/gstreamer/gst/video_info.cpp index d28d2ce659..110151ce3a 100644 --- a/operators/gstreamer/gst/video_info.cpp +++ b/operators/gstreamer/gst/video_info.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst/video_info.hpp b/operators/gstreamer/gst/video_info.hpp index 49ce2b44a3..d4d816bfb0 100644 --- a/operators/gstreamer/gst/video_info.hpp +++ b/operators/gstreamer/gst/video_info.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst_src_bridge.cpp b/operators/gstreamer/gst_src_bridge.cpp index 5d42c60483..1a05b8ae76 100644 --- a/operators/gstreamer/gst_src_bridge.cpp +++ b/operators/gstreamer/gst_src_bridge.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst_src_bridge.hpp b/operators/gstreamer/gst_src_bridge.hpp index 1ca55022be..1363fcef96 100644 --- a/operators/gstreamer/gst_src_bridge.hpp +++ b/operators/gstreamer/gst_src_bridge.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst_video_recorder_op.cpp b/operators/gstreamer/gst_video_recorder_op.cpp index c3a44b2ad3..20fe2d85aa 100644 --- a/operators/gstreamer/gst_video_recorder_op.cpp +++ b/operators/gstreamer/gst_video_recorder_op.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/gstreamer/gst_video_recorder_op.hpp b/operators/gstreamer/gst_video_recorder_op.hpp index 1be354d614..fdb2f99b95 100644 --- a/operators/gstreamer/gst_video_recorder_op.hpp +++ b/operators/gstreamer/gst_video_recorder_op.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/medical_imaging/dicom_encapsulated_pdf_writer_operator/dicom_encapsulated_pdf_writer_operator.py b/operators/medical_imaging/dicom_encapsulated_pdf_writer_operator/dicom_encapsulated_pdf_writer_operator.py index 2cbeb875c9..7361ee1d66 100644 --- a/operators/medical_imaging/dicom_encapsulated_pdf_writer_operator/dicom_encapsulated_pdf_writer_operator.py +++ b/operators/medical_imaging/dicom_encapsulated_pdf_writer_operator/dicom_encapsulated_pdf_writer_operator.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/medical_imaging/utils/importutil.py b/operators/medical_imaging/utils/importutil.py index 147fac521c..bfc5efb174 100644 --- a/operators/medical_imaging/utils/importutil.py +++ b/operators/medical_imaging/utils/importutil.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -374,7 +374,7 @@ def dist_requires(project_name: str) -> List[str]: holoscan_init_content_txt = """ -# SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/nvidia_video_codec/nv_video_decoder/CMakeLists.txt b/operators/nvidia_video_codec/nv_video_decoder/CMakeLists.txt index 1a47a3bec7..2a48b12c37 100644 --- a/operators/nvidia_video_codec/nv_video_decoder/CMakeLists.txt +++ b/operators/nvidia_video_codec/nv_video_decoder/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/nvidia_video_codec/nv_video_decoder/nv_video_decoder.cpp b/operators/nvidia_video_codec/nv_video_decoder/nv_video_decoder.cpp index fb400a7db3..206a19eea8 100644 --- a/operators/nvidia_video_codec/nv_video_decoder/nv_video_decoder.cpp +++ b/operators/nvidia_video_codec/nv_video_decoder/nv_video_decoder.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/nvidia_video_codec/nv_video_encoder/CMakeLists.txt b/operators/nvidia_video_codec/nv_video_encoder/CMakeLists.txt index aabbea7bfd..35b4e9ee91 100644 --- a/operators/nvidia_video_codec/nv_video_encoder/CMakeLists.txt +++ b/operators/nvidia_video_codec/nv_video_encoder/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/nvidia_video_codec/nv_video_reader/CMakeLists.txt b/operators/nvidia_video_codec/nv_video_reader/CMakeLists.txt index 462b4b7602..22a5e19d34 100644 --- a/operators/nvidia_video_codec/nv_video_reader/CMakeLists.txt +++ b/operators/nvidia_video_codec/nv_video_reader/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/orsi/orsi_segmentation_postprocessor/segmentation_postprocessor.cpp b/operators/orsi/orsi_segmentation_postprocessor/segmentation_postprocessor.cpp index 13390b8715..07164891b0 100644 --- a/operators/orsi/orsi_segmentation_postprocessor/segmentation_postprocessor.cpp +++ b/operators/orsi/orsi_segmentation_postprocessor/segmentation_postprocessor.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/orsi/orsi_segmentation_postprocessor/segmentation_postprocessor.hpp b/operators/orsi/orsi_segmentation_postprocessor/segmentation_postprocessor.hpp index 8226574fe7..15dfafe9a0 100644 --- a/operators/orsi/orsi_segmentation_postprocessor/segmentation_postprocessor.hpp +++ b/operators/orsi/orsi_segmentation_postprocessor/segmentation_postprocessor.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/realsense_camera/CMakeLists.txt b/operators/realsense_camera/CMakeLists.txt index 59d2e7fd6d..8a921c6922 100644 --- a/operators/realsense_camera/CMakeLists.txt +++ b/operators/realsense_camera/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/tensor_to_file/CMakeLists.txt b/operators/tensor_to_file/CMakeLists.txt index 3e028e2fb3..60093320a7 100644 --- a/operators/tensor_to_file/CMakeLists.txt +++ b/operators/tensor_to_file/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/CMakeLists.txt b/operators/video_streaming/CMakeLists.txt index 3b9ba15d4c..b4f76906a2 100644 --- a/operators/video_streaming/CMakeLists.txt +++ b/operators/video_streaming/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_client/CMakeLists.txt b/operators/video_streaming/video_streaming_client/CMakeLists.txt index 54bfeeb913..676d36af1a 100644 --- a/operators/video_streaming/video_streaming_client/CMakeLists.txt +++ b/operators/video_streaming/video_streaming_client/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_client/FindStreamingClient.cmake b/operators/video_streaming/video_streaming_client/FindStreamingClient.cmake index 64cdc34a5b..2b2f3ea944 100644 --- a/operators/video_streaming/video_streaming_client/FindStreamingClient.cmake +++ b/operators/video_streaming/video_streaming_client/FindStreamingClient.cmake @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # FindStreamingClient.cmake diff --git a/operators/video_streaming/video_streaming_client/frame_saver.cpp b/operators/video_streaming/video_streaming_client/frame_saver.cpp index 4fe4da0b34..a50eaf080e 100644 --- a/operators/video_streaming/video_streaming_client/frame_saver.cpp +++ b/operators/video_streaming/video_streaming_client/frame_saver.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_client/frame_saver.hpp b/operators/video_streaming/video_streaming_client/frame_saver.hpp index 8bced8c0b7..c10ece5f2a 100644 --- a/operators/video_streaming/video_streaming_client/frame_saver.hpp +++ b/operators/video_streaming/video_streaming_client/frame_saver.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_client/python/CMakeLists.txt b/operators/video_streaming/video_streaming_client/python/CMakeLists.txt index 394b0a02ae..65e1450528 100644 --- a/operators/video_streaming/video_streaming_client/python/CMakeLists.txt +++ b/operators/video_streaming/video_streaming_client/python/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -31,7 +31,7 @@ set_target_properties(video_streaming_client_python PROPERTIES # Use file(GENERATE) to create __init__.py at generation time # Note: file(GENERATE) will overwrite any existing __init__.py, so no manual removal needed -set(CLIENT_INIT_PY_CONTENT "# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +set(CLIENT_INIT_PY_CONTENT "# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 import holoscan.core diff --git a/operators/video_streaming/video_streaming_client/python/tests/conftest.py b/operators/video_streaming/video_streaming_client/python/tests/conftest.py index 2e636b11b0..c38ec647e1 100644 --- a/operators/video_streaming/video_streaming_client/python/tests/conftest.py +++ b/operators/video_streaming/video_streaming_client/python/tests/conftest.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_client/python/tests/test_streaming_client_op_bindings.py b/operators/video_streaming/video_streaming_client/python/tests/test_streaming_client_op_bindings.py index 7098b7190b..1e1a603e99 100644 --- a/operators/video_streaming/video_streaming_client/python/tests/test_streaming_client_op_bindings.py +++ b/operators/video_streaming/video_streaming_client/python/tests/test_streaming_client_op_bindings.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_client/python/video_streaming_client.cpp b/operators/video_streaming/video_streaming_client/python/video_streaming_client.cpp index c74f4aa6a3..48a84d432e 100644 --- a/operators/video_streaming/video_streaming_client/python/video_streaming_client.cpp +++ b/operators/video_streaming/video_streaming_client/python/video_streaming_client.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_client/tests/CMakeLists.txt b/operators/video_streaming/video_streaming_client/tests/CMakeLists.txt index f1c2d7b90d..a9cd3a8188 100644 --- a/operators/video_streaming/video_streaming_client/tests/CMakeLists.txt +++ b/operators/video_streaming/video_streaming_client/tests/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_client/tests/test_video_streaming_client_op.cpp b/operators/video_streaming/video_streaming_client/tests/test_video_streaming_client_op.cpp index 029efcd076..b13f0c103c 100644 --- a/operators/video_streaming/video_streaming_client/tests/test_video_streaming_client_op.cpp +++ b/operators/video_streaming/video_streaming_client/tests/test_video_streaming_client_op.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_client/video_streaming_client.cpp b/operators/video_streaming/video_streaming_client/video_streaming_client.cpp index 10af88f4bf..41a8d06aa4 100644 --- a/operators/video_streaming/video_streaming_client/video_streaming_client.cpp +++ b/operators/video_streaming/video_streaming_client/video_streaming_client.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_client/video_streaming_client.hpp b/operators/video_streaming/video_streaming_client/video_streaming_client.hpp index a4195f8f24..63ec759cf1 100644 --- a/operators/video_streaming/video_streaming_client/video_streaming_client.hpp +++ b/operators/video_streaming/video_streaming_client/video_streaming_client.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/CMakeLists.txt b/operators/video_streaming/video_streaming_server/CMakeLists.txt index c75b30ebc0..5124d3095c 100644 --- a/operators/video_streaming/video_streaming_server/CMakeLists.txt +++ b/operators/video_streaming/video_streaming_server/CMakeLists.txt @@ -1,5 +1,5 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.20) diff --git a/operators/video_streaming/video_streaming_server/frame_debug_utils.cpp b/operators/video_streaming/video_streaming_server/frame_debug_utils.cpp index 4bf5ca36f0..24bff6508b 100644 --- a/operators/video_streaming/video_streaming_server/frame_debug_utils.cpp +++ b/operators/video_streaming/video_streaming_server/frame_debug_utils.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/frame_debug_utils.hpp b/operators/video_streaming/video_streaming_server/frame_debug_utils.hpp index 7e854295b8..a98e83720d 100644 --- a/operators/video_streaming/video_streaming_server/frame_debug_utils.hpp +++ b/operators/video_streaming/video_streaming_server/frame_debug_utils.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/nvcf/create_streaming_function.sh b/operators/video_streaming/video_streaming_server/nvcf/create_streaming_function.sh index 95169d9ff8..7f3d399fb4 100755 --- a/operators/video_streaming/video_streaming_server/nvcf/create_streaming_function.sh +++ b/operators/video_streaming/video_streaming_server/nvcf/create_streaming_function.sh @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/nvcf/start_test_intermediate_haproxy.sh b/operators/video_streaming/video_streaming_server/nvcf/start_test_intermediate_haproxy.sh index 988bb0f1f3..72c19e0055 100755 --- a/operators/video_streaming/video_streaming_server/nvcf/start_test_intermediate_haproxy.sh +++ b/operators/video_streaming/video_streaming_server/nvcf/start_test_intermediate_haproxy.sh @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/nvcf/stop_test_intermediate_haproxy.sh b/operators/video_streaming/video_streaming_server/nvcf/stop_test_intermediate_haproxy.sh index e9cbbfd229..8f4c327e67 100755 --- a/operators/video_streaming/video_streaming_server/nvcf/stop_test_intermediate_haproxy.sh +++ b/operators/video_streaming/video_streaming_server/nvcf/stop_test_intermediate_haproxy.sh @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/nvcf/update_streaming_function.sh b/operators/video_streaming/video_streaming_server/nvcf/update_streaming_function.sh index e925acbc61..b8dc94e8be 100755 --- a/operators/video_streaming/video_streaming_server/nvcf/update_streaming_function.sh +++ b/operators/video_streaming/video_streaming_server/nvcf/update_streaming_function.sh @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/python/CMakeLists.txt b/operators/video_streaming/video_streaming_server/python/CMakeLists.txt index 4270a8c9ce..50205b5bf7 100644 --- a/operators/video_streaming/video_streaming_server/python/CMakeLists.txt +++ b/operators/video_streaming/video_streaming_server/python/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,7 +21,7 @@ pybind11_add_holohub_module( ) # Custom __init__.py with all three classes explicitly listed -set(INIT_PY_CONTENT "# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +set(INIT_PY_CONTENT "# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 import holoscan.core diff --git a/operators/video_streaming/video_streaming_server/python/tests/conftest.py b/operators/video_streaming/video_streaming_server/python/tests/conftest.py index 973ec85bfe..a257e10844 100644 --- a/operators/video_streaming/video_streaming_server/python/tests/conftest.py +++ b/operators/video_streaming/video_streaming_server/python/tests/conftest.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/python/tests/test_streaming_server_ops_bindings.py b/operators/video_streaming/video_streaming_server/python/tests/test_streaming_server_ops_bindings.py index e554865ad9..78ee79ff4d 100644 --- a/operators/video_streaming/video_streaming_server/python/tests/test_streaming_server_ops_bindings.py +++ b/operators/video_streaming/video_streaming_server/python/tests/test_streaming_server_ops_bindings.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/python/video_streaming_server.cpp b/operators/video_streaming/video_streaming_server/python/video_streaming_server.cpp index 49d4f090c5..a73afcae5b 100644 --- a/operators/video_streaming/video_streaming_server/python/video_streaming_server.cpp +++ b/operators/video_streaming/video_streaming_server/python/video_streaming_server.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/tests/CMakeLists.txt b/operators/video_streaming/video_streaming_server/tests/CMakeLists.txt index ff7621095b..43c25f3e64 100644 --- a/operators/video_streaming/video_streaming_server/tests/CMakeLists.txt +++ b/operators/video_streaming/video_streaming_server/tests/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/tests/test_video_streaming_server_ops.cpp b/operators/video_streaming/video_streaming_server/tests/test_video_streaming_server_ops.cpp index ec15c3392e..33ab41c6c3 100644 --- a/operators/video_streaming/video_streaming_server/tests/test_video_streaming_server_ops.cpp +++ b/operators/video_streaming/video_streaming_server/tests/test_video_streaming_server_ops.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/video_streaming_server_downstream_op.cpp b/operators/video_streaming/video_streaming_server/video_streaming_server_downstream_op.cpp index 983e051fd4..bcbb7eab54 100644 --- a/operators/video_streaming/video_streaming_server/video_streaming_server_downstream_op.cpp +++ b/operators/video_streaming/video_streaming_server/video_streaming_server_downstream_op.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/video_streaming_server_downstream_op.hpp b/operators/video_streaming/video_streaming_server/video_streaming_server_downstream_op.hpp index d4151cec1c..f6851e906a 100644 --- a/operators/video_streaming/video_streaming_server/video_streaming_server_downstream_op.hpp +++ b/operators/video_streaming/video_streaming_server/video_streaming_server_downstream_op.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/video_streaming_server_resource.cpp b/operators/video_streaming/video_streaming_server/video_streaming_server_resource.cpp index c26a7c0f09..0a5642886d 100644 --- a/operators/video_streaming/video_streaming_server/video_streaming_server_resource.cpp +++ b/operators/video_streaming/video_streaming_server/video_streaming_server_resource.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/video_streaming_server_resource.hpp b/operators/video_streaming/video_streaming_server/video_streaming_server_resource.hpp index 1589c358bf..6892129b3c 100644 --- a/operators/video_streaming/video_streaming_server/video_streaming_server_resource.hpp +++ b/operators/video_streaming/video_streaming_server/video_streaming_server_resource.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/video_streaming_server_upstream_op.cpp b/operators/video_streaming/video_streaming_server/video_streaming_server_upstream_op.cpp index 93fada023f..db63073856 100644 --- a/operators/video_streaming/video_streaming_server/video_streaming_server_upstream_op.cpp +++ b/operators/video_streaming/video_streaming_server/video_streaming_server_upstream_op.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/video_streaming/video_streaming_server/video_streaming_server_upstream_op.hpp b/operators/video_streaming/video_streaming_server/video_streaming_server_upstream_op.hpp index 4f96a2a365..575389a510 100644 --- a/operators/video_streaming/video_streaming_server/video_streaming_server_upstream_op.hpp +++ b/operators/video_streaming/video_streaming_server/video_streaming_server_upstream_op.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/volume_renderer/CMakeLists.txt b/operators/volume_renderer/CMakeLists.txt index 54e06bd106..e1e9a0182b 100644 --- a/operators/volume_renderer/CMakeLists.txt +++ b/operators/volume_renderer/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/xr/CMakeLists.txt b/operators/xr/CMakeLists.txt index e637f743e0..cd5525ce21 100644 --- a/operators/xr/CMakeLists.txt +++ b/operators/xr/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/xr/python/__init__.py b/operators/xr/python/__init__.py index e1d87b49a4..5873602f32 100644 --- a/operators/xr/python/__init__.py +++ b/operators/xr/python/__init__.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/xr/python/xr_empty_composition_layer_pydoc.hpp b/operators/xr/python/xr_empty_composition_layer_pydoc.hpp index 31139caaed..237cac3cdc 100644 --- a/operators/xr/python/xr_empty_composition_layer_pydoc.hpp +++ b/operators/xr/python/xr_empty_composition_layer_pydoc.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/xr/python/xr_python.cpp b/operators/xr/python/xr_python.cpp index 3c8a7cfbb1..c6a50d8607 100644 --- a/operators/xr/python/xr_python.cpp +++ b/operators/xr/python/xr_python.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/xr/xr_empty_composition_layer_op.cpp b/operators/xr/xr_empty_composition_layer_op.cpp index 2bd29555d8..2903b94cd4 100644 --- a/operators/xr/xr_empty_composition_layer_op.cpp +++ b/operators/xr/xr_empty_composition_layer_op.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/xr/xr_empty_composition_layer_op.hpp b/operators/xr/xr_empty_composition_layer_op.hpp index 1da20c20e6..11410b2e6b 100644 --- a/operators/xr/xr_empty_composition_layer_op.hpp +++ b/operators/xr/xr_empty_composition_layer_op.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/xr/xr_end_frame_op.cpp b/operators/xr/xr_end_frame_op.cpp index 7c07cd7ed9..0c2b3913e3 100644 --- a/operators/xr/xr_end_frame_op.cpp +++ b/operators/xr/xr_end_frame_op.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/xr/xr_swapchain_cuda.cpp b/operators/xr/xr_swapchain_cuda.cpp index 94a2b47083..2bc4fd79fa 100644 --- a/operators/xr/xr_swapchain_cuda.cpp +++ b/operators/xr/xr_swapchain_cuda.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/operators/xr/xr_swapchain_cuda.hpp b/operators/xr/xr_swapchain_cuda.hpp index 6fd7547221..097a1e83ac 100644 --- a/operators/xr/xr_swapchain_cuda.hpp +++ b/operators/xr/xr_swapchain_cuda.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/tutorials/async_buffer_deadline_tutorial/run_experiment.sh b/tutorials/async_buffer_deadline_tutorial/run_experiment.sh index 1fae31de94..5a1a64f4ae 100755 --- a/tutorials/async_buffer_deadline_tutorial/run_experiment.sh +++ b/tutorials/async_buffer_deadline_tutorial/run_experiment.sh @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/tutorials/async_buffer_deadline_tutorial/run_period_experiment.py b/tutorials/async_buffer_deadline_tutorial/run_period_experiment.py index 34eae9a0ab..88a4b1054a 100755 --- a/tutorials/async_buffer_deadline_tutorial/run_period_experiment.py +++ b/tutorials/async_buffer_deadline_tutorial/run_period_experiment.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/tutorials/gpu_direct_storage_on_holoscan/data_gen.py b/tutorials/gpu_direct_storage_on_holoscan/data_gen.py index c71b58b994..d0f88f97d3 100644 --- a/tutorials/gpu_direct_storage_on_holoscan/data_gen.py +++ b/tutorials/gpu_direct_storage_on_holoscan/data_gen.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/tutorials/gpu_direct_storage_on_holoscan/holoscan_gds.py b/tutorials/gpu_direct_storage_on_holoscan/holoscan_gds.py index 8f01a2065c..e18cd4eed8 100644 --- a/tutorials/gpu_direct_storage_on_holoscan/holoscan_gds.py +++ b/tutorials/gpu_direct_storage_on_holoscan/holoscan_gds.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/tutorials/integrate_external_libs_into_pipeline/cuda_example.py b/tutorials/integrate_external_libs_into_pipeline/cuda_example.py index a95f48c0a3..7c1f97f776 100644 --- a/tutorials/integrate_external_libs_into_pipeline/cuda_example.py +++ b/tutorials/integrate_external_libs_into_pipeline/cuda_example.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/tutorials/integrate_external_libs_into_pipeline/cupy_example.py b/tutorials/integrate_external_libs_into_pipeline/cupy_example.py index 9fa6e960c0..4779f11068 100644 --- a/tutorials/integrate_external_libs_into_pipeline/cupy_example.py +++ b/tutorials/integrate_external_libs_into_pipeline/cupy_example.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/cli/container.py b/utilities/cli/container.py index fbdbc6a535..4890f01824 100644 --- a/utilities/cli/container.py +++ b/utilities/cli/container.py @@ -236,6 +236,10 @@ def get_device_mounts() -> List[str]: if os.path.exists(delta_sdi): options.extend(["--device", f"{delta_sdi}:{delta_sdi}"]) + delta_sdi = f"/dev/delta-x370{i}" + if os.path.exists(delta_sdi): + options.extend(["--device", f"{delta_sdi}:{delta_sdi}"]) + # Deltacast HDMI capture board delta_hdmi = f"/dev/delta-x350{i}" if os.path.exists(delta_hdmi): diff --git a/utilities/cli/holohub.py b/utilities/cli/holohub.py index 51e2b7f9fa..178969b619 100755 --- a/utilities/cli/holohub.py +++ b/utilities/cli/holohub.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/cli/tests/CMakeLists.txt b/utilities/cli/tests/CMakeLists.txt index 6acb4b9988..c836a03225 100644 --- a/utilities/cli/tests/CMakeLists.txt +++ b/utilities/cli/tests/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/cli/tests/test_cli.py b/utilities/cli/tests/test_cli.py index adfd0611b5..6e52b2f504 100644 --- a/utilities/cli/tests/test_cli.py +++ b/utilities/cli/tests/test_cli.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/cli/tests/test_util.py b/utilities/cli/tests/test_util.py index bac5365010..46247585ca 100644 --- a/utilities/cli/tests/test_util.py +++ b/utilities/cli/tests/test_util.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/cli/version_check.py b/utilities/cli/version_check.py index 04c735187d..5dcdb889b2 100755 --- a/utilities/cli/version_check.py +++ b/utilities/cli/version_check.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/convert_gxf_entities_to_images.py b/utilities/convert_gxf_entities_to_images.py index 597938b4ea..1d17f8c27e 100644 --- a/utilities/convert_gxf_entities_to_images.py +++ b/utilities/convert_gxf_entities_to_images.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/gxf_entity_codec.py b/utilities/gxf_entity_codec.py index a39817e675..cfc26368ab 100644 --- a/utilities/gxf_entity_codec.py +++ b/utilities/gxf_entity_codec.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2022-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/metadata/__init__.py b/utilities/metadata/__init__.py index a1744724ec..d1d9d1e7ea 100644 --- a/utilities/metadata/__init__.py +++ b/utilities/metadata/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/metadata/gather_metadata.py b/utilities/metadata/gather_metadata.py index 388c018279..dfbf0d344f 100644 --- a/utilities/metadata/gather_metadata.py +++ b/utilities/metadata/gather_metadata.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/metadata/metadata_validator.py b/utilities/metadata/metadata_validator.py index c88806254e..32c01a6d3d 100644 --- a/utilities/metadata/metadata_validator.py +++ b/utilities/metadata/metadata_validator.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/metadata/utils.py b/utilities/metadata/utils.py index 4906d5249c..c37f15d415 100644 --- a/utilities/metadata/utils.py +++ b/utilities/metadata/utils.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/setup/coverage.sh b/utilities/setup/coverage.sh index 7589be82be..263ac3379e 100755 --- a/utilities/setup/coverage.sh +++ b/utilities/setup/coverage.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/setup/debug.sh b/utilities/setup/debug.sh index 38b3c489c0..dd6aa416ea 100644 --- a/utilities/setup/debug.sh +++ b/utilities/setup/debug.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/setup/template.sh b/utilities/setup/template.sh index bacba83204..9739116e37 100644 --- a/utilities/setup/template.sh +++ b/utilities/setup/template.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/setup/xvfb.sh b/utilities/setup/xvfb.sh index 5a6b2055b3..2cb81ae884 100755 --- a/utilities/setup/xvfb.sh +++ b/utilities/setup/xvfb.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/testing/test_all_applications/CMakeLists.txt b/utilities/testing/test_all_applications/CMakeLists.txt index 7bf6f2bf9d..1e38e5870e 100644 --- a/utilities/testing/test_all_applications/CMakeLists.txt +++ b/utilities/testing/test_all_applications/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/utilities/video_validation.py b/utilities/video_validation.py index 1e16165806..a19f7d1efd 100644 --- a/utilities/video_validation.py +++ b/utilities/video_validation.py @@ -1,5 +1,5 @@ """ -SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/workflows/CMakeLists.txt b/workflows/CMakeLists.txt index e90a59bc41..a6c4342d50 100644 --- a/workflows/CMakeLists.txt +++ b/workflows/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/workflows/ai_surgical_video/python/ai_surgical_video.py b/workflows/ai_surgical_video/python/ai_surgical_video.py index 1ad47ff50d..223cc84277 100644 --- a/workflows/ai_surgical_video/python/ai_surgical_video.py +++ b/workflows/ai_surgical_video/python/ai_surgical_video.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License");