summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/APIchanges4
-rw-r--r--libavcodec/avcodec.h3
-rw-r--r--libavcodec/avpacket.c7
-rw-r--r--libavcodec/version.h2
4 files changed, 11 insertions, 5 deletions
diff --git a/doc/APIchanges b/doc/APIchanges
index 8eeaec2028..f2bb2d242b 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,10 @@ libavutil: 2017-10-21
API changes, most recent first:
+2020-03-27 - xxxxxxxxxx - lavc 58.77.100 - avcodec.h
+ av_packet_ref() now guarantees to return the destination packet
+ in a blank state on error.
+
2020-03-10 - xxxxxxxxxx - lavc 58.75.100 - avcodec.h
Add AV_PKT_DATA_ICC_PROFILE.
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index f918d20a61..8fc0ad92c9 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -4651,7 +4651,8 @@ void av_packet_free_side_data(AVPacket *pkt);
* @param dst Destination packet. Will be completely overwritten.
* @param src Source packet
*
- * @return 0 on success, a negative AVERROR on error.
+ * @return 0 on success, a negative AVERROR on error. On error, dst
+ * will be blank (as if returned by av_packet_alloc()).
*/
int av_packet_ref(AVPacket *dst, const AVPacket *src);
diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c
index 132567bc2d..c622718a45 100644
--- a/libavcodec/avpacket.c
+++ b/libavcodec/avpacket.c
@@ -610,12 +610,13 @@ int av_packet_ref(AVPacket *dst, const AVPacket *src)
{
int ret;
+ dst->buf = NULL;
+
ret = av_packet_copy_props(dst, src);
if (ret < 0)
- return ret;
+ goto fail;
if (!src->buf) {
- dst->buf = NULL;
ret = packet_alloc(&dst->buf, src->size);
if (ret < 0)
goto fail;
@@ -637,7 +638,7 @@ int av_packet_ref(AVPacket *dst, const AVPacket *src)
return 0;
fail:
- av_packet_free_side_data(dst);
+ av_packet_unref(dst);
return ret;
}
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 1f19b67adc..7e01d9526f 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -28,7 +28,7 @@
#include "libavutil/version.h"
#define LIBAVCODEC_VERSION_MAJOR 58
-#define LIBAVCODEC_VERSION_MINOR 76
+#define LIBAVCODEC_VERSION_MINOR 77
#define LIBAVCODEC_VERSION_MICRO 100
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \