00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __GST_SH_VIDEO_MIXER_PAD_H__
00024 #define __GST_SH_VIDEO_MIXER_PAD_H__
00025
00026 #include <gst/gst.h>
00027 #include <gst/base/gstcollectpads.h>
00028
00029 G_BEGIN_DECLS
00030
00031 #define GST_TYPE_SH_VIDEO_MIXER_PAD (gst_sh_videomixer_pad_get_type())
00032 #define GST_SH_VIDEO_MIXER_PAD(obj) \
00033 (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SH_VIDEO_MIXER_PAD, GstSHVideoMixerPad))
00034 #define GST_SH_VIDEO_MIXER_PAD_CLASS(klass) \
00035 (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SH_VIDEO_MIXER_PAD, GstSHVideoMixerPadiClass))
00036 #define GST_IS_VIDEO_MIXER_PAD(obj) \
00037 (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SH_VIDEO_MIXER_PAD))
00038 #define GST_IS_VIDEO_MIXER_PAD_CLASS(klass) \
00039 (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SH_VIDEO_MIXER_PAD))
00040
00041 typedef struct _GstSHVideoMixerPad GstSHVideoMixerPad;
00042 typedef struct _GstSHVideoMixerPadClass GstSHVideoMixerPadClass;
00043 typedef struct _GstSHVideoMixerCollect GstSHVideoMixerCollect;
00044
00045 struct _GstSHVideoMixerCollect
00046 {
00047 GstCollectData collect;
00048
00049 GstBuffer *buffer;
00050
00051 GstSHVideoMixerPad *mixpad;
00052 };
00053
00054
00055 struct _GstSHVideoMixerPad
00056 {
00057 GstPad parent;
00058
00059 gint64 queued;
00060
00061 guint in_width, in_height;
00062 gint fps_n;
00063 gint fps_d;
00064
00065 gint xpos, ypos;
00066 guint zorder;
00067 gint blend_mode;
00068 gdouble alpha;
00069
00070 GstSHVideoMixerCollect *mixcol;
00071 };
00072
00073 struct _GstSHVideoMixerPadClass
00074 {
00075 GstPadClass parent_class;
00076 };
00077
00078 G_END_DECLS
00079 #endif