nx_server_plugin_sdk 1.0 Server Plugin SDK

i_codec_info.h
1 // Copyright 2018-present Network Optix, Inc. Licensed under MPL 2.0: www.mozilla.org/MPL/2.0/
2
3 #pragma once
4
5 #include <camera/camera_plugin_types.h>
6 #include <nx/sdk/interface.h>
7 #include <nx/sdk/result.h>
8
9 namespace nx::sdk::cloud_storage {
10
15 class ICodecInfo: public Interface<ICodecInfo>
16 {
17 public:
18 static auto interfaceId() { return makeId("nx::sdk::cloud_storage::ICodecInfo"); }
19
20 virtual nxcip::CompressionType compressionType() const = 0;
21 virtual nxcip::PixelFormat pixelFormat() const = 0;
22 virtual nxcip::MediaType mediaType() const = 0;
23 virtual int width() const = 0;
24 virtual int height() const = 0;
25 virtual int64_t codecTag() const = 0;
26 virtual int64_t bitRate() const = 0;
27 virtual int channels() const = 0;
28 virtual int frameSize() const = 0;
29 virtual int blockAlign() const = 0;
30 virtual int sampleRate() const = 0;
31 virtual nxcip::SampleFormat sampleFormat() const = 0;
32 virtual int bitsPerCodedSample() const = 0;
33 virtual int64_t channelLayout() const = 0;
34 virtual int extradataSize() const = 0;
35 virtual const uint8_t* extradata() const = 0;
36
37 // Corresponds to MediaDataPacket::channelNumber() passed to StreamWriter::putData.
38 virtual int channelNumber() const = 0;
39 };
40
41 } // namespace nx::sdk::cloud_storage
nx::sdk::cloud_storage::ICodecInfo
Definition: i_codec_info.h:15
nx::sdk::Interface
Definition: interface.h:48
nxcip::MediaType
MediaType
Definition: camera_plugin_types.h:65
nx::sdk::cloud_storage
Definition: algorithm.cpp:9
nxcip::PixelFormat
PixelFormat
Definition: camera_plugin_types.h:39
nxcip::SampleFormat
SampleFormat
Definition: camera_plugin_types.h:76
nx::sdk::IRefCountable::makeId
static const InterfaceId * makeId(const char(&charArray)[len])
Definition: i_ref_countable.h:77