|
@@ -1151,15 +1151,19 @@ typedef struct AVPacketSideData {
|
|
|
* ABI. Thus it may be allocated on stack and no new fields can be added to it
|
|
|
* without libavcodec and libavformat major bump.
|
|
|
*
|
|
|
- * The semantics of data ownership depends on the buf or destruct (deprecated)
|
|
|
- * fields. If either is set, the packet data is dynamically allocated and is
|
|
|
- * valid indefinitely until av_free_packet() is called (which in turn calls
|
|
|
- * av_buffer_unref()/the destruct callback to free the data). If neither is set,
|
|
|
- * the packet data is typically backed by some static buffer somewhere and is
|
|
|
- * only valid for a limited time (e.g. until the next read call when demuxing).
|
|
|
+ * The semantics of data ownership depends on the buf field.
|
|
|
+ * If it is set, the packet data is dynamically allocated and is
|
|
|
+ * valid indefinitely until a call to av_packet_unref() reduces the
|
|
|
+ * reference count to 0.
|
|
|
*
|
|
|
- * The side data is always allocated with av_malloc() and is freed in
|
|
|
- * av_free_packet().
|
|
|
+ * If the buf field is not set av_packet_ref() would make a copy instead
|
|
|
+ * of increasing the reference count.
|
|
|
+ *
|
|
|
+ * The side data is always allocated with av_malloc(), copied by
|
|
|
+ * av_packet_ref() and freed by av_packet_unref().
|
|
|
+ *
|
|
|
+ * @see av_packet_ref
|
|
|
+ * @see av_packet_unref
|
|
|
*/
|
|
|
typedef struct AVPacket {
|
|
|
/**
|
|
@@ -3477,14 +3481,17 @@ int av_packet_from_data(AVPacket *pkt, uint8_t *data, int size);
|
|
|
* packet is allocated if it was not really allocated.
|
|
|
*/
|
|
|
int av_dup_packet(AVPacket *pkt);
|
|
|
-
|
|
|
+#if FF_API_AVPACKET_OLD_API
|
|
|
/**
|
|
|
* Free a packet.
|
|
|
*
|
|
|
+ * @deprecated Use av_packet_unref
|
|
|
+ *
|
|
|
* @param pkt packet to free
|
|
|
*/
|
|
|
+attribute_deprecated
|
|
|
void av_free_packet(AVPacket *pkt);
|
|
|
-
|
|
|
+#endif
|
|
|
/**
|
|
|
* Allocate new information of a packet.
|
|
|
*
|
|
@@ -4070,8 +4077,7 @@ AVCodec *avcodec_find_encoder_by_name(const char *name);
|
|
|
* output packet.
|
|
|
*
|
|
|
* If this function fails or produces no output, avpkt will be
|
|
|
- * freed using av_free_packet() (i.e. avpkt->destruct will be
|
|
|
- * called to free the user supplied buffer).
|
|
|
+ * freed using av_packet_unref().
|
|
|
* @param[in] frame AVFrame containing the raw audio data to be encoded.
|
|
|
* May be NULL when flushing an encoder that has the
|
|
|
* AV_CODEC_CAP_DELAY capability set.
|
|
@@ -4112,8 +4118,7 @@ int avcodec_encode_audio2(AVCodecContext *avctx, AVPacket *avpkt,
|
|
|
* caller, he is responsible for freeing it.
|
|
|
*
|
|
|
* If this function fails or produces no output, avpkt will be
|
|
|
- * freed using av_free_packet() (i.e. avpkt->destruct will be
|
|
|
- * called to free the user supplied buffer).
|
|
|
+ * freed using av_packet_unref().
|
|
|
* @param[in] frame AVFrame containing the raw video data to be encoded.
|
|
|
* May be NULL when flushing an encoder that has the
|
|
|
* AV_CODEC_CAP_DELAY capability set.
|