Commit c47e7e82 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

picture_BlendSubpicture: return the number of blent regions

parent 8708b1d8
...@@ -245,8 +245,9 @@ VLC_API int picture_Setup( picture_t *, vlc_fourcc_t i_chroma, int i_width, int ...@@ -245,8 +245,9 @@ VLC_API int picture_Setup( picture_t *, vlc_fourcc_t i_chroma, int i_width, int
* - not be ephemere. * - not be ephemere.
* - not have the fade flag. * - not have the fade flag.
* - contains only picture (no text rendering). * - contains only picture (no text rendering).
* \return the number of region(s) succesfully blent
*/ */
VLC_API void picture_BlendSubpicture( picture_t *, filter_t *p_blend, subpicture_t * ); VLC_API unsigned picture_BlendSubpicture( picture_t *, filter_t *p_blend, subpicture_t * );
/***************************************************************************** /*****************************************************************************
......
...@@ -435,21 +435,24 @@ int picture_Export( vlc_object_t *p_obj, ...@@ -435,21 +435,24 @@ int picture_Export( vlc_object_t *p_obj,
return VLC_SUCCESS; return VLC_SUCCESS;
} }
void picture_BlendSubpicture(picture_t *dst, unsigned picture_BlendSubpicture(picture_t *dst,
filter_t *blend, subpicture_t *src) filter_t *blend, subpicture_t *src)
{ {
unsigned done = 0;
assert(src && !src->b_fade && src->b_absolute); assert(src && !src->b_fade && src->b_absolute);
for (subpicture_region_t *r = src->p_region; r != NULL; r = r->p_next) { for (subpicture_region_t *r = src->p_region; r != NULL; r = r->p_next) {
assert(r->p_picture && r->i_align == 0); assert(r->p_picture && r->i_align == 0);
if (filter_ConfigureBlend(blend, dst->format.i_width, dst->format.i_height, if (filter_ConfigureBlend(blend, dst->format.i_width,
&r->fmt) || dst->format.i_height, &r->fmt)
filter_Blend(blend, dst, || filter_Blend(blend, dst, r->i_x, r->i_y, r->p_picture,
r->i_x, r->i_y, r->p_picture, src->i_alpha * r->i_alpha / 255))
src->i_alpha * r->i_alpha / 255)) {
msg_Err(blend, "blending %4.4s to %4.4s failed", msg_Err(blend, "blending %4.4s to %4.4s failed",
(char *)&blend->fmt_in.video.i_chroma, (char *)&blend->fmt_in.video.i_chroma,
(char *)&blend->fmt_out.video.i_chroma ); (char *)&blend->fmt_out.video.i_chroma );
else
done++;
} }
} return done;
} }
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