[vlc-devel] [PATCH 1/3] splitter: force splitters to sw chroma
Victorien Le Couviour--Tuffet
victorien.lecouviour.tuffet at gmail.com
Wed Aug 2 16:37:12 CEST 2017
Fixes #18537.
---
src/misc/filter.c | 4 ++++
src/video_output/display.c | 14 ++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/src/misc/filter.c b/src/misc/filter.c
index 071e374ba4..7596f8734f 100644
--- a/src/misc/filter.c
+++ b/src/misc/filter.c
@@ -190,6 +190,10 @@ video_splitter_t *video_splitter_New( vlc_object_t *p_this,
return NULL;
video_format_Copy( &p_splitter->fmt, p_fmt );
+ vlc_chroma_description_t const *p_chroma =
+ vlc_fourcc_GetChromaDescription(p_splitter->fmt.i_chroma);
+ if (!p_chroma || !p_chroma->plane_count)
+ p_splitter->fmt.i_chroma = VLC_CODEC_I420;
/* */
p_splitter->p_module = module_need( p_splitter, "video splitter", psz_name, true );
diff --git a/src/video_output/display.c b/src/video_output/display.c
index 220ae3866b..39da0ed105 100644
--- a/src/video_output/display.c
+++ b/src/video_output/display.c
@@ -1544,6 +1544,20 @@ vout_display_t *vout_NewSplitter(vout_thread_t *vout,
video_splitter_Delete(splitter);
return NULL;
}
+
+ vlc_chroma_description_t const *p_chroma =
+ vlc_fourcc_GetChromaDescription(wrapper->fmt.i_chroma);
+ if (!p_chroma || !p_chroma->plane_count)
+ {
+ wrapper->fmt.i_chroma = VLC_CODEC_I420;
+ if (VoutDisplayResetRender(wrapper))
+ {
+ free(wrapper->owner.sys);
+ vout_display_Delete(wrapper);
+ return NULL;
+ }
+ }
+
vout_display_sys_t *sys = malloc(sizeof(*sys));
if (!sys)
abort();
--
2.13.1
More information about the vlc-devel
mailing list