|
25 | 25 | from holoscan.core import Application, Tracker |
26 | 26 | from holoscan.gxf import load_extensions |
27 | 27 | from holoscan.operators import FormatConverterOp, GXFCodeletOp, HolovizOp, VideoStreamReplayerOp |
28 | | -from holoscan.resources import BlockMemoryPool, GXFComponentResource, RMMAllocator, MemoryStorageType |
| 28 | +from holoscan.resources import ( |
| 29 | + BlockMemoryPool, |
| 30 | + GXFComponentResource, |
| 31 | + MemoryStorageType, |
| 32 | + RMMAllocator, |
| 33 | +) |
29 | 34 |
|
30 | | -from holohub.tensor_to_video_buffer import TensorToVideoBufferOp |
31 | 35 | from holohub.append_timestamp import AppendTimestampOp |
| 36 | +from holohub.tensor_to_video_buffer import TensorToVideoBufferOp |
32 | 37 |
|
33 | 38 | # Import h.264 GXF codelets and components as Holoscan operators and resources |
34 | 39 | # Starting with Holoscan SDK v2.1.0, importing GXF codelets/components as Holoscan operators/ |
@@ -124,6 +129,7 @@ class VideoEncoderRequestOp(GXFCodeletOp): |
124 | 129 | def __init__(self, fragment, *args, **kwargs): |
125 | 130 | super().__init__(fragment, "nvidia::gxf::VideoEncoderRequest", *args, **kwargs) |
126 | 131 |
|
| 132 | + |
127 | 133 | class H264VideoEncodeDecodeApp(Application): |
128 | 134 | def __init__(self, data): |
129 | 135 | """Initialize the H264 video decode application""" |
@@ -172,9 +178,7 @@ def compose(self): |
172 | 178 | self, name="tensor_to_video_buffer", **self.kwargs("tensor_to_video_buffer") |
173 | 179 | ) |
174 | 180 | encoder_async_condition = AsynchronousCondition(self, "encoder_async_condition") |
175 | | - video_encoder_context = VideoEncoderContext( |
176 | | - self, scheduling_term=encoder_async_condition |
177 | | - ) |
| 181 | + video_encoder_context = VideoEncoderContext(self, scheduling_term=encoder_async_condition) |
178 | 182 |
|
179 | 183 | video_encoder_request = VideoEncoderRequestOp( |
180 | 184 | self, |
@@ -257,8 +261,12 @@ def compose(self): |
257 | 261 |
|
258 | 262 | self.add_flow(source, format_converter, {("output", "source_video")}) |
259 | 263 | self.add_flow(format_converter, tensor_to_video_buffer, {("tensor", "in_tensor")}) |
260 | | - self.add_flow(tensor_to_video_buffer, video_encoder_request, {("out_video_buffer", "input_frame")}) |
261 | | - self.add_flow(video_encoder_response, append_timestamp, {("output_transmitter", "in_tensor")}) |
| 264 | + self.add_flow( |
| 265 | + tensor_to_video_buffer, video_encoder_request, {("out_video_buffer", "input_frame")} |
| 266 | + ) |
| 267 | + self.add_flow( |
| 268 | + video_encoder_response, append_timestamp, {("output_transmitter", "in_tensor")} |
| 269 | + ) |
262 | 270 | self.add_flow(append_timestamp, video_decoder_request, {("out_tensor", "input_frame")}) |
263 | 271 | self.add_flow( |
264 | 272 | video_decoder_response, |
@@ -306,6 +314,3 @@ def compose(self): |
306 | 314 | with Tracker(app) as trackers: |
307 | 315 | app.run() |
308 | 316 | trackers.print() |
309 | | - |
310 | | - |
311 | | - |
|
0 commit comments