mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-26 00:58:12 +00:00
plugin: Make use of G_DECLARE
And remove useless .h files
This commit is contained in:
parent
032200577a
commit
cf43d9b6d4
5 changed files with 37 additions and 122 deletions
|
@ -39,7 +39,9 @@
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
#include <glib/gstdio.h>
|
#include <glib/gstdio.h>
|
||||||
#include <gst/pbutils/pbutils.h>
|
#include <gst/pbutils/pbutils.h>
|
||||||
#include "gesdemux.h"
|
#include <gst/base/gstadapter.h>
|
||||||
|
#include <ges/ges.h>
|
||||||
|
#include <gst/base/gstflowcombiner.h>
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_STATIC (gesdemux);
|
GST_DEBUG_CATEGORY_STATIC (gesdemux);
|
||||||
#define GST_CAT_DEFAULT gesdemux
|
#define GST_CAT_DEFAULT gesdemux
|
||||||
|
@ -61,7 +63,20 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
|
||||||
GST_PAD_ALWAYS,
|
GST_PAD_ALWAYS,
|
||||||
GST_STATIC_CAPS ("application/xges"));
|
GST_STATIC_CAPS ("application/xges"));
|
||||||
|
|
||||||
|
G_DECLARE_FINAL_TYPE (GESDemux, ges_demux, GES, Demux, GstBin);
|
||||||
|
|
||||||
|
struct _GESDemux
|
||||||
|
{
|
||||||
|
GstBin parent;
|
||||||
|
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GstPad *sinkpad;
|
||||||
|
|
||||||
|
GstAdapter *input_adapter;
|
||||||
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (GESDemux, ges_demux, GST_TYPE_BIN);
|
G_DEFINE_TYPE (GESDemux, ges_demux, GST_TYPE_BIN);
|
||||||
|
#define GES_DEMUX(obj) ((GESDemux*)obj)
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
/* GStreamer GES plugin
|
|
||||||
*
|
|
||||||
* Copyright (C) 2019 Thibault Saunier <tsaunier@igalia.com>
|
|
||||||
*
|
|
||||||
* gesdemux.h
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Library General Public
|
|
||||||
* License as published by the Free Software Foundation; either
|
|
||||||
* version 2 of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* Library General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Library General Public
|
|
||||||
* License along with this library; if not, write to the
|
|
||||||
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
||||||
* Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GES_DEMUX_H__
|
|
||||||
#define __GES_DEMUX_H__
|
|
||||||
|
|
||||||
#include <gst/gst.h>
|
|
||||||
#include <gst/base/gstadapter.h>
|
|
||||||
#include <ges/ges.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
GType ges_demux_get_type (void);
|
|
||||||
|
|
||||||
#define GES_DEMUX_TYPE (ges_demux_get_type ())
|
|
||||||
#define GES_DEMUX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_DEMUX_TYPE, GESDemux))
|
|
||||||
#define GES_DEMUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GES_DEMUX_TYPE, GESDemuxClass))
|
|
||||||
#define GES_IS_DEMUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_DEMUX_TYPE))
|
|
||||||
#define GES_IS_DEMUX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_DEMUX_TYPE))
|
|
||||||
#define GES_DEMUX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_DEMUX_TYPE, GESDemuxClass))
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
GstBin parent;
|
|
||||||
|
|
||||||
GESTimeline *timeline;
|
|
||||||
GstPad *sinkpad;
|
|
||||||
|
|
||||||
GstAdapter *input_adapter;
|
|
||||||
} GESDemux;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
GstBinClass parent;
|
|
||||||
|
|
||||||
} GESDemuxClass;
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
#endif /* __GES_DEMUX_H__ */
|
|
||||||
|
|
|
@ -27,18 +27,20 @@
|
||||||
|
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
|
|
||||||
#include "gessrc.h"
|
extern GType ges_demux_get_type ();
|
||||||
#include "gesdemux.h"
|
extern GType ges_src_get_type ();
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
plugin_init (GstPlugin * plugin)
|
plugin_init (GstPlugin * plugin)
|
||||||
{
|
{
|
||||||
gboolean res = 1;
|
gboolean res = 1;
|
||||||
|
|
||||||
res |= gst_element_register (plugin, "gessrc", GST_RANK_NONE, GES_SRC_TYPE);
|
res |=
|
||||||
|
gst_element_register (plugin, "gessrc", GST_RANK_NONE,
|
||||||
|
ges_src_get_type ());
|
||||||
|
|
||||||
res |= gst_element_register (plugin, "gesdemux", GST_RANK_PRIMARY,
|
res |= gst_element_register (plugin, "gesdemux", GST_RANK_PRIMARY,
|
||||||
GES_DEMUX_TYPE);
|
ges_demux_get_type ());
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,16 +28,16 @@
|
||||||
* The gessrc is a bin that will simply expose the track src pads
|
* The gessrc is a bin that will simply expose the track src pads
|
||||||
* and implements the GstUriHandler interface using a custom `ges://`
|
* and implements the GstUriHandler interface using a custom `ges://`
|
||||||
* uri scheme.
|
* uri scheme.
|
||||||
*
|
*
|
||||||
* NOTE: That to use it inside playbin and friends you **need** to
|
* NOTE: That to use it inside playbin and friends you **need** to
|
||||||
* set gessrc::timeline property yourself.
|
* set gessrc::timeline property yourself.
|
||||||
*
|
*
|
||||||
* Example with #playbin:
|
* Example with #playbin:
|
||||||
*
|
*
|
||||||
* {{../../examples/c/gessrc.c}}
|
* {{../../examples/c/gessrc.c}}
|
||||||
*
|
*
|
||||||
* Example with #GstPlayer:
|
* Example with #GstPlayer:
|
||||||
*
|
*
|
||||||
* {{../../examples/python/gst-player.py}}
|
* {{../../examples/python/gst-player.py}}
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
#include "gessrc.h"
|
#include <ges/ges.h>
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_STATIC (gessrc);
|
GST_DEBUG_CATEGORY_STATIC (gessrc);
|
||||||
#define GST_CAT_DEFAULT gessrc
|
#define GST_CAT_DEFAULT gessrc
|
||||||
|
@ -63,6 +63,15 @@ static GstStaticPadTemplate audio_src_template =
|
||||||
GST_PAD_SOMETIMES,
|
GST_PAD_SOMETIMES,
|
||||||
GST_STATIC_CAPS ("audio/x-raw(ANY);"));
|
GST_STATIC_CAPS ("audio/x-raw(ANY);"));
|
||||||
|
|
||||||
|
G_DECLARE_FINAL_TYPE (GESSrc, ges_src, GES, SRC, GstBin);
|
||||||
|
struct _GESSrc
|
||||||
|
{
|
||||||
|
GstBin parent;
|
||||||
|
|
||||||
|
GESTimeline *timeline;
|
||||||
|
};
|
||||||
|
#define GES_SRC(obj) ((GESSrc*) obj)
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
PROP_0,
|
PROP_0,
|
||||||
|
|
|
@ -1,53 +0,0 @@
|
||||||
/* GStreamer GES plugin
|
|
||||||
*
|
|
||||||
* Copyright (C) 2019 Thibault Saunier <tsaunier@igalia.com>
|
|
||||||
*
|
|
||||||
* gstges.c
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Library General Public
|
|
||||||
* License as published by the Free Software Foundation; either
|
|
||||||
* version 2 of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* Library General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Library General Public
|
|
||||||
* License along with this library; if not, write to the
|
|
||||||
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
||||||
* Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GES_SRC_H__
|
|
||||||
#define __GES_SRC_H__
|
|
||||||
|
|
||||||
#include <gst/gst.h>
|
|
||||||
#include <ges/ges.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
GType ges_src_get_type (void);
|
|
||||||
|
|
||||||
#define GES_SRC_TYPE (ges_src_get_type ())
|
|
||||||
#define GES_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_SRC_TYPE, GESSrc))
|
|
||||||
#define GES_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GES_SRC_TYPE, GESSrcClass))
|
|
||||||
#define GES_IS_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_SRC_TYPE))
|
|
||||||
#define GES_IS_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_SRC_TYPE))
|
|
||||||
#define GES_SRC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_SRC_TYPE, GESSrcClass))
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
GstBin parent;
|
|
||||||
|
|
||||||
GESTimeline *timeline;
|
|
||||||
} GESSrc;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
GstBinClass parent;
|
|
||||||
|
|
||||||
} GESSrcClass;
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
#endif /* __GES_SRC_H__ */
|
|
Loading…
Reference in a new issue