Home | History | Annotate | Download | only in gstreamer
      1 /*
      2  *  Copyright (C) 2007 OpenedHand
      3  *  Copyright (C) 2007 Alp Toker <alp (at) atoker.com>
      4  *
      5  *  This library is free software; you can redistribute it and/or
      6  *  modify it under the terms of the GNU Lesser General Public
      7  *  License as published by the Free Software Foundation; either
      8  *  version 2 of the License, or (at your option) any later version.
      9  *
     10  *  This library is distributed in the hope that it will be useful,
     11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13  *  Lesser General Public License for more details.
     14  *
     15  *  You should have received a copy of the GNU Lesser General Public
     16  *  License along with this library; if not, write to the Free Software
     17  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
     18  */
     19 
     20 #ifndef VideoSinkGStreamer_h
     21 #define VideoSinkGStreamer_h
     22 
     23 #if USE(GSTREAMER)
     24 
     25 #include <glib-object.h>
     26 #include <gst/video/gstvideosink.h>
     27 
     28 G_BEGIN_DECLS
     29 
     30 #define WEBKIT_TYPE_VIDEO_SINK webkit_video_sink_get_type()
     31 
     32 #define WEBKIT_VIDEO_SINK(obj) \
     33     (G_TYPE_CHECK_INSTANCE_CAST((obj), \
     34     WEBKIT_TYPE_VIDEO_SINK, WebKitVideoSink))
     35 
     36 #define WEBKIT_VIDEO_SINK_CLASS(klass) \
     37     (G_TYPE_CHECK_CLASS_CAST((klass), \
     38     WEBKIT_TYPE_VIDEO_SINK, WebKitVideoSinkClass))
     39 
     40 #define WEBKIT_IS_VIDEO_SINK(obj) \
     41     (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
     42     WEBKIT_TYPE_VIDEO_SINK))
     43 
     44 #define WEBKIT_IS_VIDEO_SINK_CLASS(klass) \
     45     (G_TYPE_CHECK_CLASS_TYPE((klass), \
     46     WEBKIT_TYPE_VIDEO_SINK))
     47 
     48 #define WEBKIT_VIDEO_SINK_GET_CLASS(obj) \
     49     (G_TYPE_INSTANCE_GET_CLASS((obj), \
     50     WEBKIT_TYPE_VIDEO_SINK, WebKitVideoSinkClass))
     51 
     52 typedef struct _WebKitVideoSink        WebKitVideoSink;
     53 typedef struct _WebKitVideoSinkClass   WebKitVideoSinkClass;
     54 typedef struct _WebKitVideoSinkPrivate WebKitVideoSinkPrivate;
     55 
     56 struct _WebKitVideoSink {
     57     /*< private >*/
     58     GstVideoSink parent;
     59     WebKitVideoSinkPrivate *priv;
     60 };
     61 
     62 struct _WebKitVideoSinkClass {
     63     /*< private >*/
     64     GstVideoSinkClass parent_class;
     65 
     66     /* Future padding */
     67     void (* _webkit_reserved1)(void);
     68     void (* _webkit_reserved2)(void);
     69     void (* _webkit_reserved3)(void);
     70     void (* _webkit_reserved4)(void);
     71     void (* _webkit_reserved5)(void);
     72     void (* _webkit_reserved6)(void);
     73 };
     74 
     75 GType       webkit_video_sink_get_type(void) G_GNUC_CONST;
     76 GstElement *webkit_video_sink_new(void);
     77 
     78 G_END_DECLS
     79 
     80 #endif // USE(GSTREAMER)
     81 #endif
     82