Commit 8ac537a3 authored by Laurent Aimar's avatar Laurent Aimar Committed by Jean-Baptiste Kempf

Reimplemented the blend filter in C++ and completed the colorspaces supported.

It now supports all combinaisons of
Destinations:
 - YV9, YV12, I410, I411 (8 bits)
 - I420, I422, I444 (8, 9 and 10 bits, native endianness only)
 - YUYV and the various variants
 - NV12/NV21
 - RV15, RV16, RV24, RV32
Sources
 - YUVA
 - RGBA
 - YUVP

The quality of the blending is the same, and the speeds for I420 is the same
(not tested others combinaisons).

Support for blending I420 over another picture has been removed (I don't
see the use case and it simplify the code).

It closes #5477.

(cherry picked from commit fec8f97c)
(cherry picked from commit 4729c93f)

This commit is backported, because it is the only way to have proper
Hi10p playback on linux using Xv with subtitles. I do not think we want
to deal with the support of people asking why they don't see their subtitles,
and switching to the openGL output with great drivers is...
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent f459d157
......@@ -21,7 +21,7 @@ SOURCES_deinterlace = deinterlace/deinterlace.c deinterlace/deinterlace.h \
deinterlace/yadif.h deinterlace/yadif_template.h \
deinterlace/algo_phosphor.c deinterlace/algo_phosphor.h \
deinterlace/algo_ivtc.c deinterlace/algo_ivtc.h
SOURCES_blend = blend.c
SOURCES_blend = blend.cpp
SOURCES_scale = scale.c
SOURCES_marq = marq.c
SOURCES_rss = rss.c
......
This diff is collapsed.
This diff is collapsed.
......@@ -1070,7 +1070,7 @@ modules/video_filter/atmo/AtmoZoneDefinition.h
modules/video_filter/audiobargraph_v.c
modules/video_filter/ball.c
modules/video_filter/blendbench.c
modules/video_filter/blend.c
modules/video_filter/blend.cpp
modules/video_filter/bluescreen.c
modules/video_filter/canvas.c
modules/video_filter/chain.c
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment