Jump to content

FakesinkOp

From RidgeRun Developer Wiki

🚧 Documentation is under development

The Holoscan SDK guide is currently under active development. Some sections may be incomplete or change without notice.

Questions? Contact RidgeRun or email to support@ridgerun.com.

Contents Pin






Preliminary reference
This reference is preliminary. The set of available operators and HSDK applications, along with their APIs and documented behavior, may change in future releases.


FakesinkOp

FakesinkOp consumes Tensor samples without copying or inspecting their payload. It is the terminal sink used when a benchmark must measure capture, preprocessing or inference without adding display work.


Pipeline profiling
Contact RidgeRun for help finding which stages use the most processing time and improving your pipeline's performance.


Input arguments

The optional verbose constructor argument enables logging of received tensors. The sink has no output port and does not allocate a replacement Tensor.

Ports and data contract

Port Memory Queue Trigger Contract
input Tensor memory supplied by the upstream operator 1 OnEach Receives each selected sample and releases it after recording the event. No Holoscan output.
V4L2UserPtrSourceOp -> RawBayerToYoloTensorOp -> TensorRtInferenceOp -> FakesinkOp

The same sink can terminate other Tensor graphs, including the SDK-owned InferenceOp path.

Build

Follow Holoscan RidgeRun Build and Installation for the module build and installation. The operator-specific include, target, and runtime requirements are listed below.

Include fakesink_op/fakesink_op.hpp and link holoscan::fakesink_op.

Example

The received Sample<Tensor> is local to compute(). When it goes out of scope, the sink releases the plan-owned Tensor storage. No synchronization, host copy, Tensor decode or inference postprocessing occurs. With verbose=true, the implementation prints the buffer count, shape, dtype, device, byte count, sequence and frame ID; this is useful for checking a graph but adds logging overhead.

The sink also records the receive and release interval in the shared RidgeRun flow trace under the sink stage. That trace event is independent of Glass-to-Glass latency because no display or optical measurement is performed.

auto sink = graph.op<holoscan::ridgerun::FakesinkOp>("fakesink", false);
graph.add_flow(inference->output, sink->input);


Not a display sink
FakesinkOp does not render, decode detections, run NMS or transform the inference output. Its timing represents a software endpoint, not Glass-to-Glass latency.


Source reference
You can find the source code at FakesinkOp.


Related pages


Cookies help us deliver our services. By using our services, you agree to our use of cookies.