<html><head></head><body><div class="gmail_quote">Le 20 juillet 2017 17:04:26 GMT+08:00, Steve Lhomme <robux4@videolabs.io> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">---<br /> modules/video_filter/deinterlace/common.c | 6 ++++--<br /> modules/video_filter/deinterlace/common.h | 5 +++++<br /> 2 files changed, 9 insertions(+), 2 deletions(-)<br /><br />diff --git a/modules/video_filter/deinterlace/common.c b/modules/video_filter/deinterlace/common.c<br />index ea9c6af464..b1f7e39db3 100644<br />--- a/modules/video_filter/deinterlace/common.c<br />+++ b/modules/video_filter/deinterlace/common.c<br />@@ -50,6 +50,8 @@ void InitDeinterlacingContext( struct deinterlace_ctx *p_context )<br />                                   cannot have offset) */<br />     for( int i = 0; i < HISTORY_SIZE; i++ )<br />         p_context->pp_history[i] = NULL;<br />+<br />+    p_context->pf_new_output_picture = filter_NewPicture;<br /> }<br /> <br /> void FlushDeinterlacing(struct deinterlace_ctx *p_context)<br />@@ -139,7 +141,7 @@ picture_t *DoDeinterlacing( filter_t *p_filter,<br />     bool b_top_field_first;<br /> <br />     /* Request output picture */<br />-    p_dst[0] = filter_NewPicture( p_filter );<br />+    p_dst[0] = p_context->pf_new_output_picture( p_filter );<br />     if( p_dst[0] == NULL )<br />     {<br />         picture_Release( p_pic );<br />@@ -235,7 +237,7 @@ picture_t *DoDeinterlacing( filter_t *p_filter,<br />         for( int i = 1; i < i_double_rate_alloc_end ; ++i )<br />         {<br />             p_dst[i-1]->p_next =<br />-            p_dst[i]           = filter_NewPicture( p_filter );<br />+            p_dst[i]           = p_context->pf_new_output_picture( p_filter );<br />             if( p_dst[i] )<br />             {<br />                 picture_CopyProperties( p_dst[i], p_pic );<br />diff --git a/modules/video_filter/deinterlace/common.h b/modules/video_filter/deinterlace/common.h<br />index 940a87e2a9..4f46eb293e 100644<br />--- a/modules/video_filter/deinterlace/common.h<br />+++ b/modules/video_filter/deinterlace/common.h<br />@@ -89,6 +89,11 @@ struct deinterlace_ctx<br />                                  int order, int i_field);<br />         int (*pf_render_single_pic)(filter_t *, picture_t *p_dst, picture_t *p_pic);<br />     };<br />+<br />+    /**<br />+     * Callback to override calls to filter_NewPicture()<br />+     */<br />+    picture_t *(*pf_new_output_picture)(filter_t *);<br /> };<br /> <br /> #define DEINTERLACE_DST_SIZE 3</pre></blockquote></div><br clear="all">That does not make sense. Filter_newPicture is already a callback.<br>
-- <br>
Rémi Denis-Courmont<br>
Typed on an inconvenient virtual keyboard</body></html>