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);
73 explicit Packet(
const std::vector<uint8_t> &data);
75 Packet(
const uint8_t *data,
size_t size,
bool doAllign =
true);
80 #if AVCPP_CXX_STANDARD >= 20
81 explicit Packet(std::span<const uint8_t> data,
bool doAllign =
true);
90 bool setData(
const uint8_t *newData,
size_t size,
OptionalErrorCode ec =
throws());
92 const uint8_t* data()
const;
95 #if AVCPP_CXX_STANDARD >= 20
97 std::span<const uint8_t> span()
const;
98 std::span<uint8_t> span();
113 attribute_deprecated
void setPts(int64_t pts,
const Rational &tsTimeBase =
Rational(0, 0));
114 attribute_deprecated
void setDts(int64_t dts,
const Rational &tsTimeBase =
Rational(0, 0));
119 int streamIndex()
const;
120 bool isKeyPacket()
const;
121 int duration()
const;
122 bool isComplete()
const;
125 void setStreamIndex(
int idx);
126 void setKeyPacket(
bool keyPacket);
127 void setDuration(
int duration,
const Rational &durationTimeBase =
Rational(0, 0));
128 void setComplete(
bool complete);
132 void setFlags(
int flags);
133 void addFlags(
int flags);
134 void clearFlags(
int flags);
136 #if AVCPP_HAS_AVFORMAT
137 void dump(
const Stream & st,
bool dumpPayload =
false)
const;
141 void setTimeBase(
const Rational &value);
143 #if AVCPP_HAS_PKT_SIDE_DATA
150 std::span<const uint8_t> sideData(AVPacketSideDataType type)
const;
151 std::span<uint8_t> sideData(AVPacketSideDataType type);
157 std::size_t sideDataCount() const noexcept;
164 PacketSideData sideDataIndex(
std::
size_t index) noexcept;
173 ArrayView<AVPacketSideData, PacketSideData,
std::
size_t> sideData() noexcept;
174 ArrayView<const AVPacketSideData, PacketSideData,
std::
size_t> sideData() const noexcept;
176 void freeSideData() noexcept;
206 bool isReferenced()
const;
207 int refCount()
const;
209 #if AVCPP_API_AVCODEC_NEW_INIT_PACKET
220 #if AVCPP_API_AVCODEC_NEW_INIT_PACKET
221 Packet &operator=(
const AVPacket *rhs);
223 Packet &operator=(
const AVPacket &rhs);
228 operator bool()
const {
return isComplete(); }
const Rational & timeBase() const
Definition: packet.h:140
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: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