StormByte C++ Library: Multimedia module
0.0.9999
StormByte-Multimedia is a StormByte library module for parsing configuration files
Loading...
Searching...
No Matches
AVCodecParameters.hxx
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2024-2026 David C. Manuelda (StormBytePP)
3
*
4
* This file is part of StormByte-Multimedia.
5
*
6
* StormByte-Multimedia original source is dual-licensed:
7
*
8
* 1. GNU Lesser General Public License v3.0 (or later)
9
* You may redistribute and/or modify this file under the terms of the
10
* GNU Lesser General Public License as published by the Free Software
11
* Foundation, either version 3 of the License, or (at your option)
12
* any later version.
13
*
14
* 2. Commercial license
15
* Alternatively, this file may be used under the terms of a commercial
16
* license agreement with the copyright holder
17
* (David C. Manuelda <StormByte@gmail.com>).
18
*
19
* Both licenses apply only to original StormByte-Multimedia source in this
20
* file. Third-party components — including FFmpeg and embedded trained data —
21
* remain under their own licenses and are not covered by the commercial grant.
22
*
23
* Neither license grants any patent rights. Any patent licenses required
24
* to use this software or third-party components must be obtained separately
25
* from the patent holders.
26
*
27
* StormByte-Multimedia is distributed in the hope that it will be useful,
28
* but WITHOUT ANY WARRANTY; without even the implied warranty of
29
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30
* GNU Lesser General Public License for more details.
31
*
32
* You should have received a copy of the GNU Lesser General Public License
33
* version 3 along with StormByte-Multimedia. If not, see
34
* <https://www.gnu.org/licenses/lgpl-3.0.html>.
35
*
36
* SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-StormByte-Commercial
37
*/
38
39
#pragma once
40
41
#include <
StormByte/multimedia/ffmpeg/AVChannelLayout.hxx
>
42
#include <
StormByte/multimedia/ffmpeg/AVPointer.hxx
>
43
#include <
StormByte/multimedia/ffmpeg/AVRational.hxx
>
44
#include <
StormByte/multimedia/ffmpeg/fwd.hxx
>
45
#include <
StormByte/multimedia/property/hdr10.hxx
>
46
#include <
StormByte/multimedia/visibility.h
>
47
48
#include <cstdint>
49
54
namespace
StormByte::Multimedia::FFmpeg
{
59
class
STORMBYTE_MULTIMEDIA_PUBLIC
AVCodecParameters
:
public
AVPointer
<::AVCodecParameters> {
60
friend
class
AVBSF
;
61
friend
class
AVDecoder
;
62
friend
class
AVEncoder
;
63
friend
class
AVFormatContext
;
64
public
:
69
explicit
AVCodecParameters
(
::AVCodecParameters
* par)
noexcept
;
70
75
AVCodecParameters
(
const
AVCodecParameters
& other)
noexcept
;
76
81
AVCodecParameters
(
AVCodecParameters
&& other)
noexcept
=
default
;
82
86
~AVCodecParameters
() noexcept override;
87
93
AVCodecParameters
& operator=(const
AVCodecParameters
& other) noexcept;
94
100
AVCodecParameters
& operator=(
AVCodecParameters
&& other) noexcept = default;
101
106
int
CodecId
() const noexcept;
107
112
void
CodecId
(
int
id
) noexcept;
113
118
std::int64_t
BitRate
() const noexcept;
119
124
void
BitRate
(std::int64_t bit_rate) noexcept;
125
130
int
Width
() const noexcept;
131
136
void
Width
(
int
width) noexcept;
137
142
int
Height
() const noexcept;
143
148
void
Height
(
int
height) noexcept;
149
154
AVRational
SampleAspectRatio
() const noexcept;
155
160
void
SampleAspectRatio
(
AVRational
sar) noexcept;
161
166
int
Format
() const noexcept;
167
172
void
Format
(
int
format) noexcept;
173
178
int
ColorRange
() const noexcept;
179
184
void
ColorRange
(
int
range) noexcept;
185
190
int
ColorSpace
() const noexcept;
191
196
void
ColorSpace
(
int
space) noexcept;
197
202
int
ColorPrimaries
() const noexcept;
203
208
void
ColorPrimaries
(
int
primaries) noexcept;
209
214
int
ColorTransfer
() const noexcept;
215
220
void
ColorTransfer
(
int
transfer) noexcept;
221
226
int
SampleRate
() const noexcept;
227
232
void
SampleRate
(
int
rate) noexcept;
233
238
int
Channels
() const noexcept;
239
244
int
Profile
() const noexcept;
245
250
void
Profile
(
int
profile) noexcept;
251
256
AVChannelLayout
ChannelLayout
() const noexcept;
257
262
void
DefaultChannelLayout
(
int
channels) noexcept;
263
268
explicit operator
bool
() const noexcept;
269
275
bool
CopyChannelLayout
(const
AVChannelLayout
& layout) noexcept;
276
282
bool
Export
(::
AVCodecParameters
* dest) const noexcept;
283
288
void
WriteHdr10
(const
StormByte
::
Multimedia
::
Property
::HDR10& hdr10) noexcept;
289
294
int
CodecType
() const noexcept;
295
300
void
CodecType
(
int
type) noexcept;
301
302
private:
306
void
Free() noexcept override;
307
308
using
AVPointer
<::
AVCodecParameters
>::
Get
;
309
};
310
311
extern template class
STORMBYTE_MULTIMEDIA_PUBLIC
AVPointer
<::
AVCodecParameters
>;
312
}
AVChannelLayout.hxx
AVPointer.hxx
AVRational.hxx
StormByte::Multimedia::FFmpeg::AVChannelLayout
RAII AVChannelLayout (av_channel_layout_copy / uninit).
Definition
AVChannelLayout.hxx:66
StormByte::Multimedia::FFmpeg::AVCodecParameters::SampleAspectRatio
AVRational SampleAspectRatio() const noexcept
Pixel aspect ratio (sample_aspect_ratio).
StormByte::Multimedia::FFmpeg::AVCodecParameters::CodecId
int CodecId() const noexcept
FFmpeg codec id.
StormByte::Multimedia::FFmpeg::AVCodecParameters::AVCodecParameters
AVCodecParameters(const AVCodecParameters &other) noexcept
Copy constructor (deep copy).
StormByte::Multimedia::FFmpeg::AVCodecParameters::AVCodecParameters
AVCodecParameters(::AVCodecParameters *par) noexcept
Allocates and optionally copies from par.
StormByte::Multimedia::FFmpeg::AVCodecParameters::AVBSF
friend class AVBSF
Definition
AVCodecParameters.hxx:60
StormByte::Multimedia::FFmpeg::AVCodecParameters::AVFormatContext
friend class AVFormatContext
Definition
AVCodecParameters.hxx:63
StormByte::Multimedia::FFmpeg::AVCodecParameters::ColorPrimaries
int ColorPrimaries() const noexcept
Color primaries.
StormByte::Multimedia::FFmpeg::AVCodecParameters::ColorTransfer
int ColorTransfer() const noexcept
Transfer characteristics.
StormByte::Multimedia::FFmpeg::AVCodecParameters::Export
bool Export(::AVCodecParameters *dest) const noexcept
Copies this into dest (avcodec_parameters_copy).
StormByte::Multimedia::FFmpeg::AVCodecParameters::WriteHdr10
void WriteHdr10(const StormByte::Multimedia::Property::HDR10 &hdr10) noexcept
Writes mastering display and content light onto coded side data.
StormByte::Multimedia::FFmpeg::AVCodecParameters::Channels
int Channels() const noexcept
Audio channel count.
StormByte::Multimedia::FFmpeg::AVCodecParameters::~AVCodecParameters
~AVCodecParameters() noexcept override
Destructor.
StormByte::Multimedia::FFmpeg::AVCodecParameters::Format
int Format() const noexcept
Pixel or sample format.
StormByte::Multimedia::FFmpeg::AVCodecParameters::DefaultChannelLayout
void DefaultChannelLayout(int channels) noexcept
Replaces the layout with FFmpeg's default for channels.
StormByte::Multimedia::FFmpeg::AVCodecParameters::Profile
int Profile() const noexcept
Codec profile id.
StormByte::Multimedia::FFmpeg::AVCodecParameters::AVEncoder
friend class AVEncoder
Definition
AVCodecParameters.hxx:62
StormByte::Multimedia::FFmpeg::AVCodecParameters::CopyChannelLayout
bool CopyChannelLayout(const AVChannelLayout &layout) noexcept
Replaces the channel layout.
StormByte::Multimedia::FFmpeg::AVCodecParameters::AVCodecParameters
AVCodecParameters(AVCodecParameters &&other) noexcept=default
Move constructor.
StormByte::Multimedia::FFmpeg::AVCodecParameters::Height
int Height() const noexcept
Frame height in pixels.
StormByte::Multimedia::FFmpeg::AVCodecParameters::AVDecoder
friend class AVDecoder
Definition
AVCodecParameters.hxx:61
StormByte::Multimedia::FFmpeg::AVCodecParameters::Width
int Width() const noexcept
Frame width in pixels.
StormByte::Multimedia::FFmpeg::AVCodecParameters::SampleRate
int SampleRate() const noexcept
Audio sample rate in Hz.
StormByte::Multimedia::FFmpeg::AVCodecParameters::ColorRange
int ColorRange() const noexcept
Color range.
StormByte::Multimedia::FFmpeg::AVCodecParameters::ChannelLayout
AVChannelLayout ChannelLayout() const noexcept
Channel layout owned by this wrapper.
StormByte::Multimedia::FFmpeg::AVCodecParameters::BitRate
std::int64_t BitRate() const noexcept
Stream bitrate in bits per second.
StormByte::Multimedia::FFmpeg::AVCodecParameters::ColorSpace
int ColorSpace() const noexcept
Matrix coefficients.
StormByte::Multimedia::FFmpeg::AVCodecParameters::CodecType
int CodecType() const noexcept
Media type.
StormByte::Multimedia::FFmpeg::AVPointer<::AVCodecParameters >::Get
constexpr const std::decay_t< ::AVCodecParameters > * Get() const noexcept
Definition
AVPointer.hxx:118
StormByte::Multimedia::FFmpeg::AVPointer<::AVCodecParameters >::AVPointer
constexpr AVPointer() noexcept=delete
StormByte::Multimedia::Property::AVRational
Pair {num, den} matching libavutil AVRational.
Definition
av_rational.hxx:62
fwd.hxx
Incomplete FFmpeg types for RAII headers.
hdr10.hxx
StormByte::Multimedia::FFmpeg
Private RAII wrappers over libav*.
StormByte::Multimedia::Property
Media property value types.
StormByte::Multimedia
Public multimedia types: codecs, containers, streams and files.
StormByte
visibility.h
STORMBYTE_MULTIMEDIA_PUBLIC
#define STORMBYTE_MULTIMEDIA_PUBLIC
Imported symbol.
Definition
visibility.h:47
lib
public
StormByte
multimedia
ffmpeg
AVCodecParameters.hxx
Generated by
1.15.0