]> git.sesse.net Git - ffmpeg/blobdiff - libswscale/utils.c
lavu/dict: don't accept AV_DICT_DONT_STRDUP_VAL for av_dict_set_int
[ffmpeg] / libswscale / utils.c
index fd0247d644b7cdc26a138c79d6e68623e3c18041..781071946cef26397ba2bbe3ebc36d098bd43f9b 100644 (file)
@@ -1608,17 +1608,13 @@ SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur,
         filter->chrV = sws_getIdentityVec();
     }
 
-    if (!filter->lumH || !filter->lumV || !filter->chrH || !filter->chrV) {
-        sws_freeVec(filter->lumH);
-        sws_freeVec(filter->lumV);
-        sws_freeVec(filter->chrH);
-        sws_freeVec(filter->chrV);
-        av_freep(&filter);
-        return NULL;
-    }
+    if (!filter->lumH || !filter->lumV || !filter->chrH || !filter->chrV)
+        goto fail;
 
     if (chromaSharpen != 0.0) {
         SwsVector *id = sws_getIdentityVec();
+        if (!id)
+            goto fail;
         sws_scaleVec(filter->chrH, -chromaSharpen);
         sws_scaleVec(filter->chrV, -chromaSharpen);
         sws_addVec(filter->chrH, id);
@@ -1628,6 +1624,8 @@ SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur,
 
     if (lumaSharpen != 0.0) {
         SwsVector *id = sws_getIdentityVec();
+        if (!id)
+            goto fail;
         sws_scaleVec(filter->lumH, -lumaSharpen);
         sws_scaleVec(filter->lumV, -lumaSharpen);
         sws_addVec(filter->lumH, id);
@@ -1652,6 +1650,14 @@ SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur,
         sws_printVec2(filter->lumH, NULL, AV_LOG_DEBUG);
 
     return filter;
+
+fail:
+    sws_freeVec(filter->lumH);
+    sws_freeVec(filter->lumV);
+    sws_freeVec(filter->chrH);
+    sws_freeVec(filter->chrV);
+    av_freep(&filter);
+    return NULL;
 }
 
 SwsVector *sws_allocVec(int length)