Rerun C++ SDK
Loading...
Searching...
No Matches
video_sample.hpp
1// DO NOT EDIT! This file was auto-generated by crates/build/re_types_builder/src/codegen/cpp/mod.rs
2// Based on "crates/store/re_types/definitions/rerun/components/video_sample.fbs".
3
4#pragma once
5
6#include "../collection.hpp"
7#include "../datatypes/blob.hpp"
8#include "../result.hpp"
9
10#include <cstdint>
11#include <memory>
12#include <utility>
13
14namespace rerun::components {
15 /// **Component**: Video sample data (also known as "video chunk").
16 ///
17 /// Each video sample must contain enough data for exactly one video frame
18 /// (this restriction may be relaxed in the future for some codecs).
19 ///
20 /// Keyframes may require additional data, for details see `components::VideoCodec`.
21 struct VideoSample {
23
24 public:
25 VideoSample() = default;
26
27 VideoSample(rerun::datatypes::Blob buffer_) : buffer(std::move(buffer_)) {}
28
29 VideoSample& operator=(rerun::datatypes::Blob buffer_) {
30 buffer = std::move(buffer_);
31 return *this;
32 }
33
34 VideoSample(rerun::Collection<uint8_t> data_) : buffer(std::move(data_)) {}
35
36 VideoSample& operator=(rerun::Collection<uint8_t> data_) {
37 buffer = std::move(data_);
38 return *this;
39 }
40
41 /// Cast to the underlying Blob datatype
42 operator rerun::datatypes::Blob() const {
43 return buffer;
44 }
45 };
46} // namespace rerun::components
47
48namespace rerun {
49 static_assert(sizeof(rerun::datatypes::Blob) == sizeof(components::VideoSample));
50
51 /// \private
52 template <>
53 struct Loggable<components::VideoSample> {
54 static constexpr std::string_view ComponentType = "rerun.components.VideoSample";
55
56 /// Returns the arrow data type this type corresponds to.
57 static const std::shared_ptr<arrow::DataType>& arrow_datatype() {
58 return Loggable<rerun::datatypes::Blob>::arrow_datatype();
59 }
60
61 /// Serializes an array of `rerun::components::VideoSample` into an arrow array.
62 static Result<std::shared_ptr<arrow::Array>> to_arrow(
63 const components::VideoSample* instances, size_t num_instances
64 ) {
65 if (num_instances == 0) {
66 return Loggable<rerun::datatypes::Blob>::to_arrow(nullptr, 0);
67 } else if (instances == nullptr) {
68 return rerun::Error(
69 ErrorCode::UnexpectedNullArgument,
70 "Passed array instances is null when num_elements> 0."
71 );
72 } else {
73 return Loggable<rerun::datatypes::Blob>::to_arrow(
74 &instances->buffer,
75 num_instances
76 );
77 }
78 }
79 };
80} // namespace rerun
Generic collection of elements that are roughly contiguous in memory.
Definition collection.hpp:49
Status outcome object (success or error) returned for fallible operations.
Definition error.hpp:99
All built-in components. See Types in the Rerun manual.
Definition rerun.hpp:79
All Rerun C++ types and functions are in the rerun namespace or one of its nested namespaces.
Definition rerun.hpp:23
Component: Video sample data (also known as "video chunk").
Definition video_sample.hpp:21
Datatype: A binary blob of data.
Definition blob.hpp:21