[vlc-commits] filters: document when the picture allocator is used

Steve Lhomme git at videolan.org
Thu Jul 25 12:15:12 CEST 2019


vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Thu Jul 25 08:52:17 2019 +0200| [8fad8aae7c6c1648c2eb40cbdd92f19aff9b9d66] | committer: Steve Lhomme

filters: document when the picture allocator is used

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8fad8aae7c6c1648c2eb40cbdd92f19aff9b9d66
---

 modules/video_chroma/chain.c         | 11 ++++++-----
 modules/video_filter/canvas.c        |  9 ++++++---
 modules/video_filter/edgedetection.c |  7 +++++--
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/modules/video_chroma/chain.c b/modules/video_chroma/chain.c
index 964c51b8ae..4be4bc8e1e 100644
--- a/modules/video_chroma/chain.c
+++ b/modules/video_chroma/chain.c
@@ -130,18 +130,19 @@ static int RestartFilterCallback( vlc_object_t *obj, char const *psz_name,
 /*****************************************************************************
  * Buffer management
  *****************************************************************************/
-static picture_t *BufferNew( filter_t *p_filter )
+static picture_t *BufferChainNew( filter_t *p_filter )
 {
-    filter_t *p_parent = p_filter->owner.sys;
-
-    return filter_NewPicture( p_parent );
+    filter_t *p_chain_parent = p_filter->owner.sys;
+    // the last filter of the internal chain gets its pictures from the original
+    // filter source
+    return filter_NewPicture( p_chain_parent );
 }
 
 #define CHAIN_LEVEL_MAX 2
 
 static const struct filter_video_callbacks filter_video_chain_cbs =
 {
-    .buffer_new = BufferNew,
+    BufferChainNew,
 };
 
 /*****************************************************************************
diff --git a/modules/video_filter/canvas.c b/modules/video_filter/canvas.c
index b8e15eaef1..3e834c017c 100644
--- a/modules/video_filter/canvas.c
+++ b/modules/video_filter/canvas.c
@@ -131,14 +131,17 @@ typedef struct
     filter_chain_t *p_chain;
 } filter_sys_t;
 
-static picture_t *video_new( filter_t *p_filter )
+static picture_t *video_chain_new( filter_t *p_filter )
 {
-    return filter_NewPicture( p_filter->owner.sys );
+    filter_t *p_chain_parent = p_filter->owner.sys;
+    // the last filter of the internal chain gets its pictures from the original
+    // filter source
+    return filter_NewPicture( p_chain_parent );
 }
 
 static const struct filter_video_callbacks canvas_cbs =
 {
-    .buffer_new = video_new,
+    video_chain_new,
 };
 
 /*****************************************************************************
diff --git a/modules/video_filter/edgedetection.c b/modules/video_filter/edgedetection.c
index fdeb003684..f35dc5c2f1 100644
--- a/modules/video_filter/edgedetection.c
+++ b/modules/video_filter/edgedetection.c
@@ -140,9 +140,12 @@ static void Close( vlc_object_t *p_this )
 /* *****************************************************************************
  * Allocates a new buffer for the filter chain.
  ******************************************************************************/
-static picture_t *new_frame( filter_t *p_filter)
+static picture_t *new_frame( filter_t *p_filter )
 {
-    return filter_NewPicture( p_filter->owner.sys );
+    filter_t *p_this = p_filter->owner.sys;
+    // the last filter of the internal chain gets its pictures from the original
+    // filter source
+    return filter_NewPicture( p_this );
 }
 
 /******************************************************************************



More information about the vlc-commits mailing list