[vlc-commits] filters: use macro to set the typed Open callback for video blending filters
Steve Lhomme
git at videolan.org
Tue Oct 13 11:07:12 CEST 2020
vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Fri Oct 9 11:46:51 2020 +0200| [95c4582681a994a5c2a9301b20015151eec7a101] | committer: Steve Lhomme
filters: use macro to set the typed Open callback for video blending filters
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=95c4582681a994a5c2a9301b20015151eec7a101
---
include/vlc_filter.h | 11 ++++++++++-
modules/video_filter/blend.cpp | 8 +++-----
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/include/vlc_filter.h b/include/vlc_filter.h
index d9eb54e72e..9d5e3541a4 100644
--- a/include/vlc_filter.h
+++ b/include/vlc_filter.h
@@ -90,7 +90,7 @@ struct vlc_filter_operations
/** Filter an audio block (audio filter) */
block_t * (*filter_audio)(filter_t *, block_t *);
- /** Blend a subpicture onto a picture (blend) */
+ /** Blend a subpicture onto a picture (video blending) */
void (*blend_video)(filter_t *, picture_t *, const picture_t *,
int, int, int);
@@ -146,6 +146,7 @@ typedef int (*vlc_video_filter_open)(filter_t *);
typedef int (*vlc_video_text_renderer_open)(filter_t *);
typedef int (*vlc_video_sub_filter_open)(filter_t *);
typedef int (*vlc_video_sub_source_open)(filter_t *);
+typedef int (*vlc_video_blending_open)(filter_t *);
#define set_deinterlace_callback( activate ) \
@@ -197,6 +198,14 @@ typedef int (*vlc_video_sub_source_open)(filter_t *);
} \
set_capability( "sub source", priority )
+#define set_callback_video_blending( activate, priority ) \
+ { \
+ vlc_video_blending_open open__ = activate; \
+ (void) open__; \
+ set_callback(activate) \
+ } \
+ set_capability( "video blending", priority )
+
/** Structure describing a filter
* @warning BIG FAT WARNING : the code relies on the first 4 members of
* filter_t and decoder_t to be the same, so if you have anything to add,
diff --git a/modules/video_filter/blend.cpp b/modules/video_filter/blend.cpp
index dd5860022b..c2fd6d21cf 100644
--- a/modules/video_filter/blend.cpp
+++ b/modules/video_filter/blend.cpp
@@ -36,13 +36,12 @@
/*****************************************************************************
* Module descriptor
*****************************************************************************/
-static int Open (vlc_object_t *);
+static int Open (filter_t *);
static void Close(filter_t *);
vlc_module_begin()
set_description(N_("Video pictures blending"))
- set_capability("video blending", 100)
- set_callback(Open)
+ set_callback_video_blending(Open, 100)
vlc_module_end()
static inline unsigned div255(unsigned v)
@@ -689,9 +688,8 @@ static const struct FilterOperationInitializer {
};
} filter_ops;
-static int Open(vlc_object_t *object)
+static int Open(filter_t *filter)
{
- filter_t *filter = (filter_t *)object;
const vlc_fourcc_t src = filter->fmt_in.video.i_chroma;
const vlc_fourcc_t dst = filter->fmt_out.video.i_chroma;
More information about the vlc-commits
mailing list