9 #if AVCPP_CXX_STANDARD >= 20
21 #include <libavutil/attributes.h>
26 #if AVCPP_HAS_PKT_SIDE_DATA
30 class PacketSideData :
public FFWrapperRef<AVPacketSideData>
35 std::string_view name() const noexcept;
36 AVPacketSideDataType type() const noexcept;
37 std::span<const uint8_t> data() const noexcept;
38 std::span<uint8_t> data() noexcept;
40 static
std::string_view name(AVPacketSideDataType type);
42 bool empty() const noexcept;
43 operator
bool() const noexcept;
48 #if AVCPP_API_AVCODEC_NEW_INIT_PACKET
56 void initFromAVPacket(
const AVPacket *avpacket,
bool deepCopy,
OptionalErrorCode ec);
74 explicit Packet(
const std::vector<uint8_t> &data);
76 Packet(
const uint8_t *data,
size_t size,
bool doAllign =
true);
81 #if AVCPP_CXX_STANDARD >= 20
82 explicit Packet(std::span<const uint8_t> data,
bool doAllign =
true);
91 bool setData(
const uint8_t *newData,
size_t size,
OptionalErrorCode ec =
throws());
93 const uint8_t* data()
const;
96 #if AVCPP_CXX_STANDARD >= 20
98 std::span<const uint8_t> span()
const;
99 std::span<uint8_t> span();
114 attribute_deprecated
void setPts(int64_t pts,
const Rational &tsTimeBase =
Rational(0, 0));
115 attribute_deprecated
void setDts(int64_t dts,
const Rational &tsTimeBase =
Rational(0, 0));
120 int streamIndex()
const;
121 bool isKeyPacket()
const;
122 int duration()
const;
123 bool isComplete()
const;
126 void setStreamIndex(
int idx);
127 void setKeyPacket(
bool keyPacket);
128 void setDuration(
int duration,
const Rational &durationTimeBase =
Rational(0, 0));
129 void setComplete(
bool complete);
133 void setFlags(
int flags);
134 void addFlags(
int flags);
135 void clearFlags(
int flags);
137 #if AVCPP_HAS_AVFORMAT
138 void dump(
const Stream & st,
bool dumpPayload =
false)
const;
142 void setTimeBase(
const Rational &value);
144 #if AVCPP_HAS_PKT_SIDE_DATA
151 std::span<const uint8_t> sideData(AVPacketSideDataType type)
const;
152 std::span<uint8_t> sideData(AVPacketSideDataType type);
158 std::size_t sideDataElements() const noexcept;
165 PacketSideData sideData(
std::
size_t index) noexcept;
174 ArrayView<AVPacketSideData, PacketSideData,
std::
size_t> sideData() noexcept;
175 ArrayView<const AVPacketSideData, PacketSideData,
std::
size_t> sideData() const noexcept;
205 bool isReferenced()
const;
206 int refCount()
const;
208 #if AVCPP_API_AVCODEC_NEW_INIT_PACKET
219 #if AVCPP_API_AVCODEC_NEW_INIT_PACKET
220 Packet &operator=(
const AVPacket *rhs);
222 Packet &operator=(
const AVPacket &rhs);
227 operator bool()
const {
return isComplete(); }
const Rational & timeBase() const
Definition: packet.h:141
bool setData(const std::vector< uint8_t > &newData, OptionalErrorCode ec=throws())
Packet(const std::vector< uint8_t > &data)
Definition: rational.h:26
The Timestamp class represents timestamp value and it timebase.
Definition: timestamp.h:14
Definition: audioresampler.cpp:8
OptionalErrorCode throws()
Helper to construct null OptionalErrorCode object.
Definition: averror.h:179
Definition: averror.h:228
Wrap static data, do not owning and free.
Definition: packet.h:67
Wrap data and take owning.
Definition: packet.h:62