Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2016-03-08 20:44:34 +0300
committerMichael Niedermayer <michael@niedermayer.cc>2016-06-05 18:12:35 +0300
commit13aae86a2b652360256f52ff292fb2fb0804cbc6 (patch)
tree2df9bb74751bfa8997087e911d08b46c9eeee436 /libavutil
parent3bc060f36676a738604289fd446069d5e17f979a (diff)
avutil/frame: Assert that width/height/channels is 0 for the destination of av_frame*_ref()
This should detect caes where these functions are called in unclean destinations
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/frame.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavutil/frame.c b/libavutil/frame.c
index 5607206a09..d5c7c9f32f 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -375,6 +375,9 @@ int av_frame_ref(AVFrame *dst, const AVFrame *src)
{
int i, ret = 0;
+ av_assert1(dst->width == 0 && dst->height == 0);
+ av_assert1(dst->channels == 0);
+
dst->format = src->format;
dst->width = src->width;
dst->height = src->height;
@@ -504,6 +507,9 @@ void av_frame_unref(AVFrame *frame)
void av_frame_move_ref(AVFrame *dst, AVFrame *src)
{
+ av_assert1(dst->width == 0 && dst->height == 0);
+ av_assert1(dst->channels == 0);
+
*dst = *src;
if (src->extended_data == src->data)
dst->extended_data = dst->data;