8 #if AVCPP_CXX_STANDARD >= 20
20 #include <libavutil/attributes.h>
25 #if AVCPP_HAS_PKT_SIDE_DATA
29 class PacketSideData :
public FFWrapperRef<AVPacketSideData>
34 std::string_view name() const noexcept;
35 AVPacketSideDataType type() const noexcept;
36 std::span<const uint8_t> span() const noexcept;
37 std::span<uint8_t> span() noexcept;
39 static
std::string_view name(AVPacketSideDataType type);
41 bool empty() const noexcept;
42 operator
bool() const noexcept;
47 #if AVCPP_API_AVCODEC_NEW_INIT_PACKET
55 void initFromAVPacket(
const AVPacket *avpacket,
bool deepCopy,
OptionalErrorCode ec);
68 #if AVCPP_API_AVCODEC_NEW_INIT_PACKET
69 explicit Packet(std::nullptr_t);
77 explicit Packet(
const std::vector<uint8_t> &data);
79 Packet(
const uint8_t *data,
size_t size,
bool doAllign =
true);
84 #if AVCPP_CXX_STANDARD >= 20
85 explicit Packet(std::span<const uint8_t> data,
bool doAllign =
true);
94 bool setData(
const uint8_t *newData,
size_t size,
OptionalErrorCode ec =
throws());
96 const uint8_t* data()
const;
99 #if AVCPP_CXX_STANDARD >= 20
101 std::span<const uint8_t> span()
const;
102 std::span<uint8_t> span();
117 attribute_deprecated
void setPts(int64_t pts,
const Rational &tsTimeBase =
Rational(0, 0));
118 attribute_deprecated
void setDts(int64_t dts,
const Rational &tsTimeBase =
Rational(0, 0));
123 int streamIndex()
const;
124 bool isKeyPacket()
const;
125 int duration()
const;
126 bool isComplete()
const;
129 void setStreamIndex(
int idx);
130 void setKeyPacket(
bool keyPacket);
131 void setDuration(
int duration,
const Rational &durationTimeBase =
Rational(0, 0));
132 void setComplete(
bool complete);
136 void setFlags(
int flags);
137 void addFlags(
int flags);
138 void clearFlags(
int flags);
140 #if AVCPP_HAS_AVFORMAT
141 void dump(
const Stream & st,
bool dumpPayload =
false)
const;
145 void setTimeBase(
const Rational &value);
147 #if AVCPP_HAS_PKT_SIDE_DATA
154 std::span<const uint8_t> sideData(AVPacketSideDataType type)
const;
155 std::span<uint8_t> sideData(AVPacketSideDataType type);
161 std::size_t sideDataCount() const noexcept;
168 PacketSideData sideDataIndex(
std::
size_t index) noexcept;
177 ArrayView<AVPacketSideData, PacketSideData,
std::
size_t> sideData() noexcept;
178 ArrayView<const AVPacketSideData, PacketSideData,
std::
size_t> sideData() const noexcept;
180 void freeSideData() noexcept;
210 bool isReferenced()
const;
211 int refCount()
const;
213 #if AVCPP_API_AVCODEC_NEW_INIT_PACKET
224 #if AVCPP_API_AVCODEC_NEW_INIT_PACKET
225 Packet &operator=(
const AVPacket *rhs);
227 Packet &operator=(
const AVPacket &rhs);
232 operator bool()
const {
return isComplete(); }
const Rational & timeBase() const
Definition: packet.h:144
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:18
Definition: audioresampler.cpp:8
OptionalErrorCode throws()
Helper to construct null OptionalErrorCode object.
Definition: averror.h:181
Definition: averror.h:230
Wrap static data, do not owning and free.
Definition: packet.h:66
Wrap data and take owning.
Definition: packet.h:61