]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/librsvgdec.c
avcodec/apedec: fix decoding 24bit insane files with recent versions
[ffmpeg] / libavcodec / librsvgdec.c
index e57070f8e44ec36b9c6c175eb1075337b2d712ef..e9a181d092c70edfeb67fdf8e3823782e4f6f79c 100644 (file)
@@ -82,8 +82,10 @@ static int librsvg_decode_frame(AVCodecContext *avctx, void *data, int *got_fram
 
     crender = cairo_create(image);
 
-    cairo_set_source_rgba(crender, 0.0, 0.0, 0.0, 1.0f);
-    cairo_paint_with_alpha(crender, 0.0f);
+    cairo_save(crender);
+    cairo_set_operator(crender, CAIRO_OPERATOR_CLEAR);
+    cairo_paint(crender);
+    cairo_restore(crender);
 
     cairo_scale(crender, dimensions.width / (double)unscaled_dimensions.width,
                 dimensions.height / (double)unscaled_dimensions.height);
@@ -123,6 +125,6 @@ AVCodec ff_librsvg_decoder = {
     .id             = AV_CODEC_ID_SVG,
     .decode         = librsvg_decode_frame,
     .priv_data_size = sizeof(LibRSVGContext),
-    .capabilities   = AV_CODEC_CAP_LOSSLESS | AV_CODEC_CAP_DR1,
+    .capabilities   = AV_CODEC_CAP_DR1,
     .wrapper_name    = "librsvg",
 };