3#include "codec_bridge.hpp"
4#include "../global.hpp"
5#include "../utilities/system_info.hpp"
16 inline HandleGuard<CodecBridge::InputContainer>::HandleGuard(
void *handle) noexcept
17 : HandleGuard<CodecBridge::InputContainer>(handle, [](
void *handle) { CVB_CALL_CAPI(
ReleaseObject(handle)); })
29 class InputContainer final
46 return Internal::DoResCallObjectOut<InputContainer>(
47 [&](
void *&handle) {
return CVB_CALL_CAPI(CVCBCreateInputContainerTyped(fileName.c_str(), handle)); });
55 return std::make_unique<InputContainer>(
std::move(guard));
58 explicit InputContainer(HandleGuard<InputContainer> &&guard) noexcept
63 InputContainer(
const InputContainer &other) =
delete;
64 InputContainer &operator=(
const InputContainer &other) =
delete;
65 InputContainer(InputContainer &&other) =
delete;
66 InputContainer &operator=(InputContainer &&other) =
delete;
68 ~InputContainer() =
default;
70 void *Handle() const noexcept
72 return handle_.Handle();
91 asciiName.reserve(name.size());
92 for (
const auto &c : name)
93 asciiName.push_back(
static_cast<char>(c));
94 return Internal::DoResCallObjectOut<Decoder>([&](
void *&handle) {
95 return CVB_CALL_CAPI(CVCBInputContainerCreateDecoder(
96 Handle(), asciiName.c_str(),
static_cast<CExports::CVCBPixelFormat
>(pixelFormat), handle));
112 return Internal::DoResCallObjectOut<Decoder>([&](
void *&handle) {
113 return CVB_CALL_CAPI(CVCBInputContainerCreateDecoder(
114 Handle(),
nullptr,
static_cast<CExports::CVCBPixelFormat
>(pixelFormat), handle));
128 CExports::CVCBPACKET handle =
nullptr;
129 CVB_CALL_CAPI_CHECKED(CVCBInputContainerNextPacket(Handle(), handle));
132 HandleGuard<Packet> guard(handle);
133 return Packet::FromHandle(
std::move(guard));
137 HandleGuard<InputContainer> handle_;
29 class InputContainer final {
…};
cvbbool_t ReleaseObject(OBJ &Object)
Namespace for encoding and decoding videos.
Definition codec_bridge.hpp:24
PixelFormat
Subset of FFmpeg pixel formats.
Definition codec_bridge.hpp:91
@ None
Ivalid format. Equal to PIX_FMT_NONE. Corresponds to PfncFormat::InvalidPixelFormat.
Definition codec_bridge.hpp:93
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