3#include "codec_bridge.hpp"
4#include "../global.hpp"
5#include "../utilities/system_info.hpp"
16 inline HandleGuard<CodecBridge::OutputContainer>::HandleGuard(
void *handle) noexcept
17 : HandleGuard<CodecBridge::OutputContainer>(handle, [](
void *handle) { CVB_CALL_CAPI(
ReleaseObject(handle)); })
29 class OutputContainer final
47 return Internal::DoResCallObjectOut<OutputContainer>([&](
void *&handle) {
48 return CVB_CALL_CAPI(CVCBCreateOutputContainerTyped(encoder.Handle(), fileName.c_str(), handle));
57 return std::make_unique<OutputContainer>(
std::move(guard));
60 explicit OutputContainer(HandleGuard<OutputContainer> &&guard) noexcept
65 OutputContainer(
const OutputContainer &other) =
delete;
66 OutputContainer &operator=(
const OutputContainer &other) =
delete;
67 OutputContainer(OutputContainer &&other) =
delete;
68 OutputContainer &operator=(OutputContainer &&other) =
delete;
70 ~OutputContainer() =
default;
72 void *Handle() const noexcept
74 return handle_.Handle();
86 CExports::CVCBPACKET handle = packet->Handle();
87 CVB_CALL_CAPI_CHECKED(CVCBOutputContainerWritePacket(Handle(), handle));
98 CVB_CALL_CAPI_CHECKED(CVCBOutputContainerWriteHeader(Handle()));
109 CVB_CALL_CAPI_CHECKED(CVCBOutputContainerWriteTrailer(Handle()));
113 HandleGuard<OutputContainer> handle_;
29 class OutputContainer final {
…};
An encoder for video frames.
Definition encoder.hpp:32
void WriteHeader()
Write a header to the container.
Definition output_container.hpp:96
void WriteTrailer()
Write a trailer to the container.
Definition output_container.hpp:107
void WritePacket(std::unique_ptr< Packet > &&packet)
Write a packet to the container.
Definition output_container.hpp:84
static std::unique_ptr< OutputContainer > Create(const Cvb::String &fileName, Encoder &encoder)
Creates an output container based on a file name and an encoder.
Definition output_container.hpp:45
cvbbool_t ReleaseObject(OBJ &Object)
Namespace for encoding and decoding videos.
Definition codec_bridge.hpp:24
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
std::string String
String for wide characters or unicode characters.
Definition string.hpp:49