mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 17:50:36 +00:00
remove old dir remove it from cvsroot later on
Original commit message from CVS: remove old dir remove it from cvsroot later on
This commit is contained in:
parent
b86c702816
commit
57755079fb
11 changed files with 0 additions and 8483 deletions
11
gstreamer/.gitignore
vendored
11
gstreamer/.gitignore
vendored
|
@ -1,11 +0,0 @@
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
*.o
|
|
||||||
*.lo
|
|
||||||
*.la
|
|
||||||
*.so
|
|
||||||
*.py[co]
|
|
||||||
.libs
|
|
||||||
.deps
|
|
||||||
gst.c
|
|
||||||
gst.defs
|
|
|
@ -1,38 +0,0 @@
|
||||||
INCLUDES = $(PYTHON_INCLUDES) $(PYGTK_CFLAGS)
|
|
||||||
PYGTK_DEFSDIR = @PYGTK_DEFSDIR@
|
|
||||||
|
|
||||||
pkgpythondir = $(pythondir)/gst
|
|
||||||
pkgpyexecdir = $(pyexecdir)/gst
|
|
||||||
|
|
||||||
pygstdir = $(pkgpythondir)
|
|
||||||
pygst_PYTHON = __init__.py
|
|
||||||
|
|
||||||
# Backwards comptibility
|
|
||||||
pygstreamerdir = $(pythondir)
|
|
||||||
pygstreamer_PYTHON = gstreamer.py
|
|
||||||
|
|
||||||
pygstexecdir = $(pkgpyexecdir)
|
|
||||||
|
|
||||||
GST_OVERRIDES = gst.override gstpad-handlers.override
|
|
||||||
|
|
||||||
pygstexec_LTLIBRARIES = _gstmodule.la
|
|
||||||
_gstmodule_la_SOURCES = gstmodule.c gst-types.c
|
|
||||||
|
|
||||||
_gstmodule_la_CFLAGS = $(GST_CFLAGS) -fno-strict-aliasing
|
|
||||||
_gstmodule_la_LIBADD = $(GST_LIBS)
|
|
||||||
_gstmodule_la_LDFLAGS = -module -avoid-version -export-symbols-regex init_gst
|
|
||||||
nodist__gstmodule_la_SOURCES = gst.c
|
|
||||||
|
|
||||||
CLEANFILES = gst.c
|
|
||||||
EXTRA_DIST = gst.defs $(GST_OVERRIDES) arg-types.py
|
|
||||||
|
|
||||||
gst.c: $(srcdir)/gst.defs $(srcdir)/arg-types.py $(GST_OVERRIDES)
|
|
||||||
$(PYGTK_CODEGEN) \
|
|
||||||
--load-types $(srcdir)/arg-types.py \
|
|
||||||
--register $(srcdir)/gst-types.defs \
|
|
||||||
--override $(srcdir)/gst.override \
|
|
||||||
--prefix pygst gst.defs > gen-gst.c \
|
|
||||||
&& rm -fr gtreamer.c \
|
|
||||||
&& echo '/* GENERATED FILE - DO NOT EDIT */' >> gst.c \
|
|
||||||
&& cat gen-gst.c >> gst.c \
|
|
||||||
&& rm -f gen-gst.c
|
|
|
@ -1,43 +0,0 @@
|
||||||
#
|
|
||||||
# gst-python
|
|
||||||
# Copyright (C) 2002 David I. Lehn
|
|
||||||
#
|
|
||||||
# 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., 59 Temple Place - Suite 330,
|
|
||||||
# Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# Author: David I. Lehn <dlehn@users.sourceforge.net>
|
|
||||||
#
|
|
||||||
|
|
||||||
import pygtk
|
|
||||||
pygtk.require('2.0')
|
|
||||||
import sys
|
|
||||||
import os
|
|
||||||
import dl
|
|
||||||
|
|
||||||
"libtool lib location"
|
|
||||||
devloc = os.path.join(__path__[0],'.libs')
|
|
||||||
|
|
||||||
if os.path.exists(devloc):
|
|
||||||
sys.path.append(devloc)
|
|
||||||
|
|
||||||
sys.setdlopenflags(dl.RTLD_LAZY | dl.RTLD_GLOBAL)
|
|
||||||
del devloc, sys, os
|
|
||||||
|
|
||||||
from _gst import *
|
|
||||||
del _gst
|
|
||||||
|
|
||||||
def threads_init():
|
|
||||||
import gtk
|
|
||||||
gtk.threads_init()
|
|
|
@ -1,58 +0,0 @@
|
||||||
#
|
|
||||||
# gst-python
|
|
||||||
# Copyright (C) 2002 David I. Lehn
|
|
||||||
# 2004 Johan Dahlin
|
|
||||||
#
|
|
||||||
# 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., 59 Temple Place - Suite 330,
|
|
||||||
# Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# Author: David I. Lehn <dlehn@users.sourceforge.net>
|
|
||||||
#
|
|
||||||
|
|
||||||
from argtypes import UInt64Arg, Int64Arg, PointerArg, ArgMatcher, ArgType, matcher
|
|
||||||
|
|
||||||
class GstDataPtrArg(ArgType):
|
|
||||||
normal = (' if (!pygst_data_from_pyobject(py_%(name)s, &%(name)s))\n'
|
|
||||||
' return NULL;\n')
|
|
||||||
null = (' if (py_%(name)s == Py_None)\n'
|
|
||||||
' %(name)s = NULL;\n'
|
|
||||||
' else if (pyst_data_from_pyobject(py_%(name)s, %(name)s_rect))\n'
|
|
||||||
' %(name)s = &%(name)s_rect;\n'
|
|
||||||
' else\n'
|
|
||||||
' return NULL;\n')
|
|
||||||
def write_param(self, ptype, pname, pdflt, pnull, info):
|
|
||||||
if pnull:
|
|
||||||
info.varlist.add('GstData', pname + '_data')
|
|
||||||
info.varlist.add('GstData', '*' + pname)
|
|
||||||
info.varlist.add('PyObject', '*py_' + pname + ' = Py_None')
|
|
||||||
info.add_parselist('O', ['&py_' + pname], [pname])
|
|
||||||
info.arglist.append(pname)
|
|
||||||
info.codebefore.append(self.null % {'name': pname})
|
|
||||||
else:
|
|
||||||
info.varlist.add('GstData*', pname)
|
|
||||||
info.varlist.add('PyObject', '*py_' + pname)
|
|
||||||
info.add_parselist('O', ['&py_' + pname], [pname])
|
|
||||||
info.arglist.append(pname)
|
|
||||||
info.codebefore.append(self.normal % {'name': pname})
|
|
||||||
|
|
||||||
arg = GstDataPtrArg()
|
|
||||||
matcher.register('GstData*', arg)
|
|
||||||
matcher.register('GstClockTime', UInt64Arg())
|
|
||||||
matcher.register('GstClockTimeDiff', Int64Arg())
|
|
||||||
|
|
||||||
arg = PointerArg('gpointer', 'G_TYPE_POINTER')
|
|
||||||
matcher.register('GstClockID', arg)
|
|
||||||
|
|
||||||
del arg
|
|
|
@ -1,72 +0,0 @@
|
||||||
/* gst-python
|
|
||||||
* Copyright (C) 2004 Johan Dahlin
|
|
||||||
*
|
|
||||||
* 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., 59 Temple Place - Suite 330,
|
|
||||||
* Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* Author: Johan Dahlin <johan@gnome.org>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <gst/gst.h>
|
|
||||||
#include <pygobject.h>
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
pygst_data_from_pyobject(PyObject *object, GstData **data)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail(*data != NULL, FALSE);
|
|
||||||
|
|
||||||
if (pyg_boxed_check(object, GST_TYPE_DATA)) {
|
|
||||||
*data = pyg_boxed_get(object, GstData);
|
|
||||||
return TRUE;
|
|
||||||
} else if (pyg_boxed_check(object, GST_TYPE_BUFFER)) {
|
|
||||||
*data = GST_DATA (pyg_boxed_get(object, GstBuffer));
|
|
||||||
return TRUE;
|
|
||||||
} else if (pyg_boxed_check(object, GST_TYPE_EVENT)) {
|
|
||||||
*data = GST_DATA (pyg_boxed_get(object, GstEvent));
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
PyErr_Clear();
|
|
||||||
PyErr_SetString(PyExc_TypeError, "could not convert to GstData");
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
PyGstData_from_value(const GValue *value)
|
|
||||||
{
|
|
||||||
GstData *data = (GstData *)g_value_get_boxed(value);
|
|
||||||
|
|
||||||
return pyg_boxed_new(GST_TYPE_DATA, data, TRUE, TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
PyGstData_to_value(GValue *value, PyObject *object)
|
|
||||||
{
|
|
||||||
GstData* data;
|
|
||||||
|
|
||||||
if (!pygst_data_from_pyobject(object, &data))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
g_value_set_boxed(value, data);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_pygst_register_boxed_types(PyObject *moddict)
|
|
||||||
{
|
|
||||||
pyg_register_boxed_custom(GST_TYPE_DATA,
|
|
||||||
PyGstData_from_value,
|
|
||||||
PyGstData_to_value);
|
|
||||||
}
|
|
|
@ -1,848 +0,0 @@
|
||||||
;; -*- scheme -*-
|
|
||||||
|
|
||||||
; object definitions ...
|
|
||||||
(define-object Object
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GObject")
|
|
||||||
(c-name "GstObject")
|
|
||||||
(gtype-id "GST_TYPE_OBJECT")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object Index
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstObject")
|
|
||||||
(c-name "GstIndex")
|
|
||||||
(gtype-id "GST_TYPE_INDEX")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object Element
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstObject")
|
|
||||||
(c-name "GstElement")
|
|
||||||
(gtype-id "GST_TYPE_ELEMENT")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object Bin
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstElement")
|
|
||||||
(c-name "GstBin")
|
|
||||||
(gtype-id "GST_TYPE_BIN")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object Clock
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstObject")
|
|
||||||
(c-name "GstClock")
|
|
||||||
(gtype-id "GST_TYPE_CLOCK")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object Pad
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstObject")
|
|
||||||
(c-name "GstPad")
|
|
||||||
(gtype-id "GST_TYPE_PAD")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object GhostPad
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstPad")
|
|
||||||
(c-name "GstGhostPad")
|
|
||||||
(gtype-id "GST_TYPE_GHOST_PAD")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object PadTemplate
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstObject")
|
|
||||||
(c-name "GstPadTemplate")
|
|
||||||
(gtype-id "GST_TYPE_PAD_TEMPLATE")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object Pipeline
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstBin")
|
|
||||||
(c-name "GstPipeline")
|
|
||||||
(gtype-id "GST_TYPE_PIPELINE")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object PluginFeature
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GObject")
|
|
||||||
(c-name "GstPluginFeature")
|
|
||||||
(gtype-id "GST_TYPE_PLUGIN_FEATURE")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object IndexFactory
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstPluginFeature")
|
|
||||||
(c-name "GstIndexFactory")
|
|
||||||
(gtype-id "GST_TYPE_INDEX_FACTORY")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object ElementFactory
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstPluginFeature")
|
|
||||||
(c-name "GstElementFactory")
|
|
||||||
(gtype-id "GST_TYPE_ELEMENT_FACTORY")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object Queue
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstElement")
|
|
||||||
(c-name "GstQueue")
|
|
||||||
(gtype-id "GST_TYPE_QUEUE")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object RealPad
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstPad")
|
|
||||||
(c-name "GstRealPad")
|
|
||||||
(gtype-id "GST_TYPE_REAL_PAD")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object Registry
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GObject")
|
|
||||||
(c-name "GstRegistry")
|
|
||||||
(gtype-id "GST_TYPE_REGISTRY")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object Scheduler
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstObject")
|
|
||||||
(c-name "GstScheduler")
|
|
||||||
(gtype-id "GST_TYPE_SCHEDULER")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object SchedulerFactory
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstPluginFeature")
|
|
||||||
(c-name "GstSchedulerFactory")
|
|
||||||
(gtype-id "GST_TYPE_SCHEDULER_FACTORY")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object SystemClock
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstClock")
|
|
||||||
(c-name "GstSystemClock")
|
|
||||||
(gtype-id "GST_TYPE_SYSTEM_CLOCK")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object Thread
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstBin")
|
|
||||||
(c-name "GstThread")
|
|
||||||
(gtype-id "GST_TYPE_THREAD")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object TypeFindFactory
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstPluginFeature")
|
|
||||||
(c-name "GstTypeFindFactory")
|
|
||||||
(gtype-id "GST_TYPE_TYPE_FIND_FACTORY")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-object XML
|
|
||||||
(in-module "Gst")
|
|
||||||
(parent "GstObject")
|
|
||||||
(c-name "GstXML")
|
|
||||||
(gtype-id "GST_TYPE_XML")
|
|
||||||
)
|
|
||||||
|
|
||||||
;;
|
|
||||||
;; Boxed types
|
|
||||||
;;
|
|
||||||
|
|
||||||
(define-boxed Buffer
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstBuffer")
|
|
||||||
(gtype-id "GST_TYPE_BUFFER")
|
|
||||||
(copy-func "gst_data_copy")
|
|
||||||
(release-func "gst_data_unref")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-boxed Caps
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstCaps")
|
|
||||||
(gtype-id "GST_TYPE_CAPS")
|
|
||||||
)
|
|
||||||
|
|
||||||
;(define-boxed Data
|
|
||||||
; (in-module "Gst")
|
|
||||||
; (c-name "GstData")
|
|
||||||
; (gtype-id "GST_TYPE_DATA")
|
|
||||||
; (copy-func "gst_data_copy")
|
|
||||||
; (release-func "gst_data_free")
|
|
||||||
;)
|
|
||||||
|
|
||||||
(define-boxed Event
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstEvent")
|
|
||||||
(gtype-id "GST_TYPE_EVENT")
|
|
||||||
(copy-func "gst_event_copy")
|
|
||||||
(release-func "gst_data_unref")
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
;;
|
|
||||||
;; 0.7 Boxed types
|
|
||||||
;;
|
|
||||||
|
|
||||||
(define-boxed Structure
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstStructure")
|
|
||||||
(gtype-id "GST_TYPE_STRUCTURE")
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-boxed TagList
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstTagList")
|
|
||||||
(gtype-id "GST_TYPE_TAG_LIST")
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
;; Enumerations and flags ...
|
|
||||||
|
|
||||||
(define-enum BinFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstBinFlags")
|
|
||||||
(gtype-id "GST_TYPE_BIN_FLAGS")
|
|
||||||
(values
|
|
||||||
'("flag-manager" "GST_BIN_FLAG_MANAGER")
|
|
||||||
'("self-schedulable" "GST_BIN_SELF_SCHEDULABLE")
|
|
||||||
'("flag-prefer-cothreads" "GST_BIN_FLAG_PREFER_COTHREADS")
|
|
||||||
'("flag-fixed-clock" "GST_BIN_FLAG_FIXED_CLOCK")
|
|
||||||
'("flag-last" "GST_BIN_FLAG_LAST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum BufferFlag
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstBufferFlag")
|
|
||||||
(gtype-id "GST_TYPE_BUFFER_FLAG")
|
|
||||||
(values
|
|
||||||
'("readonly" "GST_BUFFER_READONLY")
|
|
||||||
'("subbuffer" "GST_BUFFER_SUBBUFFER")
|
|
||||||
'("original" "GST_BUFFER_ORIGINAL")
|
|
||||||
'("dontfree" "GST_BUFFER_DONTFREE")
|
|
||||||
'("key-unit" "GST_BUFFER_KEY_UNIT")
|
|
||||||
'("dontkeep" "GST_BUFFER_DONTKEEP")
|
|
||||||
'("flag-last" "GST_BUFFER_FLAG_LAST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum ClockEntryStatus
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstClockEntryStatus")
|
|
||||||
(gtype-id "GST_TYPE_CLOCK_ENTRY_STATUS")
|
|
||||||
(values
|
|
||||||
'("ok" "GST_CLOCK_ENTRY_OK")
|
|
||||||
'("early" "GST_CLOCK_ENTRY_EARLY")
|
|
||||||
'("restart" "GST_CLOCK_ENTRY_RESTART")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum ClockEntryType
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstClockEntryType")
|
|
||||||
(gtype-id "GST_TYPE_CLOCK_ENTRY_TYPE")
|
|
||||||
(values
|
|
||||||
'("single" "GST_CLOCK_ENTRY_SINGLE")
|
|
||||||
'("periodic" "GST_CLOCK_ENTRY_PERIODIC")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum ClockReturn
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstClockReturn")
|
|
||||||
(gtype-id "GST_TYPE_CLOCK_RETURN")
|
|
||||||
(values
|
|
||||||
'("stopped" "GST_CLOCK_STOPPED")
|
|
||||||
'("timeout" "GST_CLOCK_TIMEOUT")
|
|
||||||
'("early" "GST_CLOCK_EARLY")
|
|
||||||
'("error" "GST_CLOCK_ERROR")
|
|
||||||
'("unsupported" "GST_CLOCK_UNSUPPORTED")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-flags ClockFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstClockFlags")
|
|
||||||
(gtype-id "GST_TYPE_CLOCK_FLAGS")
|
|
||||||
(values
|
|
||||||
'("do-single-sync" "GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC")
|
|
||||||
'("do-single-async" "GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC")
|
|
||||||
'("do-periodic-sync" "GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC")
|
|
||||||
'("do-periodic-async" "GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC")
|
|
||||||
'("set-resolution" "GST_CLOCK_FLAG_CAN_SET_RESOLUTION")
|
|
||||||
'("set-speed" "GST_CLOCK_FLAG_CAN_SET_SPEED")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-flags CPUFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstCPUFlags")
|
|
||||||
(gtype-id "GST_TYPE_CPU_FLAGS")
|
|
||||||
(values
|
|
||||||
'("mmx" "GST_CPU_FLAG_MMX")
|
|
||||||
'("sse" "GST_CPU_FLAG_SSE")
|
|
||||||
'("mmxext" "GST_CPU_FLAG_MMXEXT")
|
|
||||||
'("3dnow" "GST_CPU_FLAG_3DNOW")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum DataFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstDataFlags")
|
|
||||||
(gtype-id "GST_TYPE_DATA_FLAGS")
|
|
||||||
(values
|
|
||||||
'("readonly" "GST_DATA_READONLY")
|
|
||||||
'("flag-last" "GST_DATA_FLAG_LAST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum ElementFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstElementFlags")
|
|
||||||
(gtype-id "GST_TYPE_ELEMENT_FLAGS")
|
|
||||||
(values
|
|
||||||
'("complex" "GST_ELEMENT_COMPLEX")
|
|
||||||
'("decoupled" "GST_ELEMENT_DECOUPLED")
|
|
||||||
'("thread-suggested" "GST_ELEMENT_THREAD_SUGGESTED")
|
|
||||||
'("infinite-loop" "GST_ELEMENT_INFINITE_LOOP")
|
|
||||||
'("new-loopfunc" "GST_ELEMENT_NEW_LOOPFUNC")
|
|
||||||
'("event-aware" "GST_ELEMENT_EVENT_AWARE")
|
|
||||||
'("use-threadsafe-properties" "GST_ELEMENT_USE_THREADSAFE_PROPERTIES")
|
|
||||||
'("scheduler-private1" "GST_ELEMENT_SCHEDULER_PRIVATE1")
|
|
||||||
'("scheduler-private2" "GST_ELEMENT_SCHEDULER_PRIVATE2")
|
|
||||||
'("locked-state" "GST_ELEMENT_LOCKED_STATE")
|
|
||||||
'("in-error" "GST_ELEMENT_IN_ERROR")
|
|
||||||
'("flag-last" "GST_ELEMENT_FLAG_LAST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum CoreError
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstCoreError")
|
|
||||||
(gtype-id "GST_TYPE_CORE_ERROR")
|
|
||||||
(values
|
|
||||||
'("failed" "GST_CORE_ERROR_FAILED")
|
|
||||||
'("too-lazy" "GST_CORE_ERROR_TOO_LAZY")
|
|
||||||
'("not-implemented" "GST_CORE_ERROR_NOT_IMPLEMENTED")
|
|
||||||
'("state-change" "GST_CORE_ERROR_STATE_CHANGE")
|
|
||||||
'("pad" "GST_CORE_ERROR_PAD")
|
|
||||||
'("thread" "GST_CORE_ERROR_THREAD")
|
|
||||||
'("scheduler" "GST_CORE_ERROR_SCHEDULER")
|
|
||||||
'("negotiation" "GST_CORE_ERROR_NEGOTIATION")
|
|
||||||
'("event" "GST_CORE_ERROR_EVENT")
|
|
||||||
'("seek" "GST_CORE_ERROR_SEEK")
|
|
||||||
'("caps" "GST_CORE_ERROR_CAPS")
|
|
||||||
'("tag" "GST_CORE_ERROR_TAG")
|
|
||||||
'("num-errors" "GST_CORE_ERROR_NUM_ERRORS")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum LibraryError
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstLibraryError")
|
|
||||||
(gtype-id "GST_TYPE_LIBRARY_ERROR")
|
|
||||||
(values
|
|
||||||
'("failed" "GST_LIBRARY_ERROR_FAILED")
|
|
||||||
'("too-lazy" "GST_LIBRARY_ERROR_TOO_LAZY")
|
|
||||||
'("init" "GST_LIBRARY_ERROR_INIT")
|
|
||||||
'("shutdown" "GST_LIBRARY_ERROR_SHUTDOWN")
|
|
||||||
'("settings" "GST_LIBRARY_ERROR_SETTINGS")
|
|
||||||
'("encode" "GST_LIBRARY_ERROR_ENCODE")
|
|
||||||
'("num-errors" "GST_LIBRARY_ERROR_NUM_ERRORS")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum ResourceError
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstResourceError")
|
|
||||||
(gtype-id "GST_TYPE_RESOURCE_ERROR")
|
|
||||||
(values
|
|
||||||
'("failed" "GST_RESOURCE_ERROR_FAILED")
|
|
||||||
'("too-lazy" "GST_RESOURCE_ERROR_TOO_LAZY")
|
|
||||||
'("not-found" "GST_RESOURCE_ERROR_NOT_FOUND")
|
|
||||||
'("busy" "GST_RESOURCE_ERROR_BUSY")
|
|
||||||
'("open-read" "GST_RESOURCE_ERROR_OPEN_READ")
|
|
||||||
'("open-write" "GST_RESOURCE_ERROR_OPEN_WRITE")
|
|
||||||
'("open-read-write" "GST_RESOURCE_ERROR_OPEN_READ_WRITE")
|
|
||||||
'("close" "GST_RESOURCE_ERROR_CLOSE")
|
|
||||||
'("read" "GST_RESOURCE_ERROR_READ")
|
|
||||||
'("write" "GST_RESOURCE_ERROR_WRITE")
|
|
||||||
'("seek" "GST_RESOURCE_ERROR_SEEK")
|
|
||||||
'("sync" "GST_RESOURCE_ERROR_SYNC")
|
|
||||||
'("settings" "GST_RESOURCE_ERROR_SETTINGS")
|
|
||||||
'("num-errors" "GST_RESOURCE_ERROR_NUM_ERRORS")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum StreamError
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstStreamError")
|
|
||||||
(gtype-id "GST_TYPE_STREAM_ERROR")
|
|
||||||
(values
|
|
||||||
'("failed" "GST_STREAM_ERROR_FAILED")
|
|
||||||
'("too-lazy" "GST_STREAM_ERROR_TOO_LAZY")
|
|
||||||
'("not-implemented" "GST_STREAM_ERROR_NOT_IMPLEMENTED")
|
|
||||||
'("type-not-found" "GST_STREAM_ERROR_TYPE_NOT_FOUND")
|
|
||||||
'("wrong-type" "GST_STREAM_ERROR_WRONG_TYPE")
|
|
||||||
'("codec-not-found" "GST_STREAM_ERROR_CODEC_NOT_FOUND")
|
|
||||||
'("decode" "GST_STREAM_ERROR_DECODE")
|
|
||||||
'("encode" "GST_STREAM_ERROR_ENCODE")
|
|
||||||
'("demux" "GST_STREAM_ERROR_DEMUX")
|
|
||||||
'("mux" "GST_STREAM_ERROR_MUX")
|
|
||||||
'("format" "GST_STREAM_ERROR_FORMAT")
|
|
||||||
'("num-errors" "GST_STREAM_ERROR_NUM_ERRORS")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum EventType
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstEventType")
|
|
||||||
(gtype-id "GST_TYPE_EVENT_TYPE")
|
|
||||||
(values
|
|
||||||
'("unknown" "GST_EVENT_UNKNOWN")
|
|
||||||
'("eos" "GST_EVENT_EOS")
|
|
||||||
'("flush" "GST_EVENT_FLUSH")
|
|
||||||
'("empty" "GST_EVENT_EMPTY")
|
|
||||||
'("discontinuous" "GST_EVENT_DISCONTINUOUS")
|
|
||||||
'("qos" "GST_EVENT_QOS")
|
|
||||||
'("seek" "GST_EVENT_SEEK")
|
|
||||||
'("seek-segment" "GST_EVENT_SEEK_SEGMENT")
|
|
||||||
'("segment-done" "GST_EVENT_SEGMENT_DONE")
|
|
||||||
'("size" "GST_EVENT_SIZE")
|
|
||||||
'("rate" "GST_EVENT_RATE")
|
|
||||||
'("filler" "GST_EVENT_FILLER")
|
|
||||||
'("ts-offset" "GST_EVENT_TS_OFFSET")
|
|
||||||
'("interrupt" "GST_EVENT_INTERRUPT")
|
|
||||||
'("navigation" "GST_EVENT_NAVIGATION")
|
|
||||||
'("tag" "GST_EVENT_TAG")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-flags EventFlag
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstEventFlag")
|
|
||||||
(gtype-id "GST_TYPE_EVENT_FLAG")
|
|
||||||
(values
|
|
||||||
'("event-flag-none" "GST_EVENT_FLAG_NONE")
|
|
||||||
'("rate-flag-negative" "GST_RATE_FLAG_NEGATIVE")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-flags SeekType
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstSeekType")
|
|
||||||
(gtype-id "GST_TYPE_SEEK_TYPE")
|
|
||||||
(values
|
|
||||||
'("method-cur" "GST_SEEK_METHOD_CUR")
|
|
||||||
'("method-set" "GST_SEEK_METHOD_SET")
|
|
||||||
'("method-end" "GST_SEEK_METHOD_END")
|
|
||||||
'("flag-flush" "GST_SEEK_FLAG_FLUSH")
|
|
||||||
'("flag-accurate" "GST_SEEK_FLAG_ACCURATE")
|
|
||||||
'("flag-key-unit" "GST_SEEK_FLAG_KEY_UNIT")
|
|
||||||
'("flag-segment-loop" "GST_SEEK_FLAG_SEGMENT_LOOP")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum SeekAccuracy
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstSeekAccuracy")
|
|
||||||
(gtype-id "GST_TYPE_SEEK_ACCURACY")
|
|
||||||
(values
|
|
||||||
'("certain" "GST_SEEK_CERTAIN")
|
|
||||||
'("fuzzy" "GST_SEEK_FUZZY")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum Format
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstFormat")
|
|
||||||
(gtype-id "GST_TYPE_FORMAT")
|
|
||||||
(values
|
|
||||||
'("undefined" "GST_FORMAT_UNDEFINED")
|
|
||||||
'("default" "GST_FORMAT_DEFAULT")
|
|
||||||
'("bytes" "GST_FORMAT_BYTES")
|
|
||||||
'("time" "GST_FORMAT_TIME")
|
|
||||||
'("buffers" "GST_FORMAT_BUFFERS")
|
|
||||||
'("percent" "GST_FORMAT_PERCENT")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum IndexCertainty
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstIndexCertainty")
|
|
||||||
(gtype-id "GST_TYPE_INDEX_CERTAINTY")
|
|
||||||
(values
|
|
||||||
'("unknown" "GST_INDEX_UNKNOWN")
|
|
||||||
'("certain" "GST_INDEX_CERTAIN")
|
|
||||||
'("fuzzy" "GST_INDEX_FUZZY")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum IndexEntryType
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstIndexEntryType")
|
|
||||||
(gtype-id "GST_TYPE_INDEX_ENTRY_TYPE")
|
|
||||||
(values
|
|
||||||
'("id" "GST_INDEX_ENTRY_ID")
|
|
||||||
'("association" "GST_INDEX_ENTRY_ASSOCIATION")
|
|
||||||
'("object" "GST_INDEX_ENTRY_OBJECT")
|
|
||||||
'("format" "GST_INDEX_ENTRY_FORMAT")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum IndexLookupMethod
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstIndexLookupMethod")
|
|
||||||
(gtype-id "GST_TYPE_INDEX_LOOKUP_METHOD")
|
|
||||||
(values
|
|
||||||
'("exact" "GST_INDEX_LOOKUP_EXACT")
|
|
||||||
'("before" "GST_INDEX_LOOKUP_BEFORE")
|
|
||||||
'("after" "GST_INDEX_LOOKUP_AFTER")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-flags AssocFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstAssocFlags")
|
|
||||||
(gtype-id "GST_TYPE_ASSOC_FLAGS")
|
|
||||||
(values
|
|
||||||
'("none" "GST_ASSOCIATION_FLAG_NONE")
|
|
||||||
'("key-unit" "GST_ASSOCIATION_FLAG_KEY_UNIT")
|
|
||||||
'("last" "GST_ASSOCIATION_FLAG_LAST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum IndexResolverMethod
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstIndexResolverMethod")
|
|
||||||
(gtype-id "GST_TYPE_INDEX_RESOLVER_METHOD")
|
|
||||||
(values
|
|
||||||
'("custom" "GST_INDEX_RESOLVER_CUSTOM")
|
|
||||||
'("gtype" "GST_INDEX_RESOLVER_GTYPE")
|
|
||||||
'("path" "GST_INDEX_RESOLVER_PATH")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum IndexFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstIndexFlags")
|
|
||||||
(gtype-id "GST_TYPE_INDEX_FLAGS")
|
|
||||||
(values
|
|
||||||
'("writable" "GST_INDEX_WRITABLE")
|
|
||||||
'("readable" "GST_INDEX_READABLE")
|
|
||||||
'("flag-last" "GST_INDEX_FLAG_LAST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum DebugLevel
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstDebugLevel")
|
|
||||||
(gtype-id "GST_TYPE_DEBUG_LEVEL")
|
|
||||||
(values
|
|
||||||
'("none" "GST_LEVEL_NONE")
|
|
||||||
'("error" "GST_LEVEL_ERROR")
|
|
||||||
'("warning" "GST_LEVEL_WARNING")
|
|
||||||
'("info" "GST_LEVEL_INFO")
|
|
||||||
'("debug" "GST_LEVEL_DEBUG")
|
|
||||||
'("log" "GST_LEVEL_LOG")
|
|
||||||
'("count" "GST_LEVEL_COUNT")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum DebugColorFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstDebugColorFlags")
|
|
||||||
(gtype-id "GST_TYPE_DEBUG_COLOR_FLAGS")
|
|
||||||
(values
|
|
||||||
'("fg-black" "GST_DEBUG_FG_BLACK")
|
|
||||||
'("fg-red" "GST_DEBUG_FG_RED")
|
|
||||||
'("fg-green" "GST_DEBUG_FG_GREEN")
|
|
||||||
'("fg-yellow" "GST_DEBUG_FG_YELLOW")
|
|
||||||
'("fg-blue" "GST_DEBUG_FG_BLUE")
|
|
||||||
'("fg-magenta" "GST_DEBUG_FG_MAGENTA")
|
|
||||||
'("fg-cyan" "GST_DEBUG_FG_CYAN")
|
|
||||||
'("fg-white" "GST_DEBUG_FG_WHITE")
|
|
||||||
'("bg-black" "GST_DEBUG_BG_BLACK")
|
|
||||||
'("bg-red" "GST_DEBUG_BG_RED")
|
|
||||||
'("bg-green" "GST_DEBUG_BG_GREEN")
|
|
||||||
'("bg-yellow" "GST_DEBUG_BG_YELLOW")
|
|
||||||
'("bg-blue" "GST_DEBUG_BG_BLUE")
|
|
||||||
'("bg-magenta" "GST_DEBUG_BG_MAGENTA")
|
|
||||||
'("bg-cyan" "GST_DEBUG_BG_CYAN")
|
|
||||||
'("bg-white" "GST_DEBUG_BG_WHITE")
|
|
||||||
'("bold" "GST_DEBUG_BOLD")
|
|
||||||
'("underline" "GST_DEBUG_UNDERLINE")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum ObjectFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstObjectFlags")
|
|
||||||
(gtype-id "GST_TYPE_OBJECT_FLAGS")
|
|
||||||
(values
|
|
||||||
'("destroyed" "GST_DESTROYED")
|
|
||||||
'("floating" "GST_FLOATING")
|
|
||||||
'("object-flag-last" "GST_OBJECT_FLAG_LAST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum PadLinkReturn
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstPadLinkReturn")
|
|
||||||
(gtype-id "GST_TYPE_PAD_LINK_RETURN")
|
|
||||||
(values
|
|
||||||
'("refused" "GST_PAD_LINK_REFUSED")
|
|
||||||
'("delayed" "GST_PAD_LINK_DELAYED")
|
|
||||||
'("ok" "GST_PAD_LINK_OK")
|
|
||||||
'("done" "GST_PAD_LINK_DONE")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum PadDirection
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstPadDirection")
|
|
||||||
(gtype-id "GST_TYPE_PAD_DIRECTION")
|
|
||||||
(values
|
|
||||||
'("unknown" "GST_PAD_UNKNOWN")
|
|
||||||
'("src" "GST_PAD_SRC")
|
|
||||||
'("sink" "GST_PAD_SINK")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum PadFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstPadFlags")
|
|
||||||
(gtype-id "GST_TYPE_PAD_FLAGS")
|
|
||||||
(values
|
|
||||||
'("disabled" "GST_PAD_DISABLED")
|
|
||||||
'("negotiating" "GST_PAD_NEGOTIATING")
|
|
||||||
'("flag-last" "GST_PAD_FLAG_LAST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum PadPresence
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstPadPresence")
|
|
||||||
(gtype-id "GST_TYPE_PAD_PRESENCE")
|
|
||||||
(values
|
|
||||||
'("always" "GST_PAD_ALWAYS")
|
|
||||||
'("sometimes" "GST_PAD_SOMETIMES")
|
|
||||||
'("request" "GST_PAD_REQUEST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum PadTemplateFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstPadTemplateFlags")
|
|
||||||
(gtype-id "GST_TYPE_PAD_TEMPLATE_FLAGS")
|
|
||||||
(values
|
|
||||||
'("ixed" "GST_PAD_TEMPLATE_FIXED")
|
|
||||||
'("lag-last" "GST_PAD_TEMPLATE_FLAG_LAST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum ParseError
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstParseError")
|
|
||||||
(gtype-id "GST_TYPE_PARSE_ERROR")
|
|
||||||
(values
|
|
||||||
'("syntax" "GST_PARSE_ERROR_SYNTAX")
|
|
||||||
'("no-such-element" "GST_PARSE_ERROR_NO_SUCH_ELEMENT")
|
|
||||||
'("no-such-property" "GST_PARSE_ERROR_NO_SUCH_PROPERTY")
|
|
||||||
'("link" "GST_PARSE_ERROR_LINK")
|
|
||||||
'("could-not-set-property" "GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY")
|
|
||||||
'("empty-bin" "GST_PARSE_ERROR_EMPTY_BIN")
|
|
||||||
'("empty" "GST_PARSE_ERROR_EMPTY")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum PluginError
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstPluginError")
|
|
||||||
(gtype-id "GST_TYPE_PLUGIN_ERROR")
|
|
||||||
(values
|
|
||||||
'("module" "GST_PLUGIN_ERROR_MODULE")
|
|
||||||
'("dependencies" "GST_PLUGIN_ERROR_DEPENDENCIES")
|
|
||||||
'("name-mismatch" "GST_PLUGIN_ERROR_NAME_MISMATCH")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum QueryType
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstQueryType")
|
|
||||||
(gtype-id "GST_TYPE_QUERY_TYPE")
|
|
||||||
(values
|
|
||||||
'("none" "GST_QUERY_NONE")
|
|
||||||
'("total" "GST_QUERY_TOTAL")
|
|
||||||
'("position" "GST_QUERY_POSITION")
|
|
||||||
'("latency" "GST_QUERY_LATENCY")
|
|
||||||
'("jitter" "GST_QUERY_JITTER")
|
|
||||||
'("start" "GST_QUERY_START")
|
|
||||||
'("segment-end" "GST_QUERY_SEGMENT_END")
|
|
||||||
'("rate" "GST_QUERY_RATE")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-flags RegistryReturn
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstRegistryReturn")
|
|
||||||
(gtype-id "GST_TYPE_REGISTRY_RETURN")
|
|
||||||
(values
|
|
||||||
'("ok" "GST_REGISTRY_OK")
|
|
||||||
'("load-error" "GST_REGISTRY_LOAD_ERROR")
|
|
||||||
'("save-error" "GST_REGISTRY_SAVE_ERROR")
|
|
||||||
'("plugin-load-error" "GST_REGISTRY_PLUGIN_LOAD_ERROR")
|
|
||||||
'("plugin-signature-error" "GST_REGISTRY_PLUGIN_SIGNATURE_ERROR")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-flags RegistryFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstRegistryFlags")
|
|
||||||
(gtype-id "GST_TYPE_REGISTRY_FLAGS")
|
|
||||||
(values
|
|
||||||
'("readable" "GST_REGISTRY_READABLE")
|
|
||||||
'("writable" "GST_REGISTRY_WRITABLE")
|
|
||||||
'("exists" "GST_REGISTRY_EXISTS")
|
|
||||||
'("remote" "GST_REGISTRY_REMOTE")
|
|
||||||
'("delayed-loading" "GST_REGISTRY_DELAYED_LOADING")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum SchedulerFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstSchedulerFlags")
|
|
||||||
(gtype-id "GST_TYPE_SCHEDULER_FLAGS")
|
|
||||||
(values
|
|
||||||
'("fixed-clock" "GST_SCHEDULER_FLAG_FIXED_CLOCK")
|
|
||||||
'("last" "GST_SCHEDULER_FLAG_LAST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum SchedulerState
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstSchedulerState")
|
|
||||||
(gtype-id "GST_TYPE_SCHEDULER_STATE")
|
|
||||||
(values
|
|
||||||
'("none" "GST_SCHEDULER_STATE_NONE")
|
|
||||||
'("running" "GST_SCHEDULER_STATE_RUNNING")
|
|
||||||
'("stopped" "GST_SCHEDULER_STATE_STOPPED")
|
|
||||||
'("error" "GST_SCHEDULER_STATE_ERROR")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum TagMergeMode
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstTagMergeMode")
|
|
||||||
(gtype-id "GST_TYPE_TAG_MERGE_MODE")
|
|
||||||
(values
|
|
||||||
'("undefined" "GST_TAG_MERGE_UNDEFINED")
|
|
||||||
'("replace-all" "GST_TAG_MERGE_REPLACE_ALL")
|
|
||||||
'("replace" "GST_TAG_MERGE_REPLACE")
|
|
||||||
'("append" "GST_TAG_MERGE_APPEND")
|
|
||||||
'("prepend" "GST_TAG_MERGE_PREPEND")
|
|
||||||
'("keep" "GST_TAG_MERGE_KEEP")
|
|
||||||
'("keep-all" "GST_TAG_MERGE_KEEP_ALL")
|
|
||||||
'("count" "GST_TAG_MERGE_COUNT")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum TagFlag
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstTagFlag")
|
|
||||||
(gtype-id "GST_TYPE_TAG_FLAG")
|
|
||||||
(values
|
|
||||||
'("undefined" "GST_TAG_FLAG_UNDEFINED")
|
|
||||||
'("meta" "GST_TAG_FLAG_META")
|
|
||||||
'("encoded" "GST_TAG_FLAG_ENCODED")
|
|
||||||
'("decoded" "GST_TAG_FLAG_DECODED")
|
|
||||||
'("count" "GST_TAG_FLAG_COUNT")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum ThreadState
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstThreadState")
|
|
||||||
(gtype-id "GST_TYPE_THREAD_STATE")
|
|
||||||
(values
|
|
||||||
'("state-spinning" "GST_THREAD_STATE_SPINNING")
|
|
||||||
'("state-reaping" "GST_THREAD_STATE_REAPING")
|
|
||||||
'("mutex-locked" "GST_THREAD_MUTEX_LOCKED")
|
|
||||||
'("flag-last" "GST_THREAD_FLAG_LAST")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-flags AllocTraceFlags
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstAllocTraceFlags")
|
|
||||||
(gtype-id "GST_TYPE_ALLOC_TRACE_FLAGS")
|
|
||||||
(values
|
|
||||||
'("live" "GST_ALLOC_TRACE_LIVE")
|
|
||||||
'("mem-live" "GST_ALLOC_TRACE_MEM_LIVE")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum TypeFindProbability
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstTypeFindProbability")
|
|
||||||
(gtype-id "GST_TYPE_TYPE_FIND_PROBABILITY")
|
|
||||||
(values
|
|
||||||
'("minimum" "GST_TYPE_FIND_MINIMUM")
|
|
||||||
'("possible" "GST_TYPE_FIND_POSSIBLE")
|
|
||||||
'("likely" "GST_TYPE_FIND_LIKELY")
|
|
||||||
'("nearly-certain" "GST_TYPE_FIND_NEARLY_CERTAIN")
|
|
||||||
'("maximum" "GST_TYPE_FIND_MAXIMUM")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-flags ElementState
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstElementState")
|
|
||||||
(gtype-id "GST_TYPE_ELEMENT_STATE")
|
|
||||||
(values
|
|
||||||
'("void-pending" "GST_STATE_VOID_PENDING")
|
|
||||||
'("null" "GST_STATE_NULL")
|
|
||||||
'("ready" "GST_STATE_READY")
|
|
||||||
'("paused" "GST_STATE_PAUSED")
|
|
||||||
'("playing" "GST_STATE_PLAYING")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum ElementStateReturn
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstElementStateReturn")
|
|
||||||
(gtype-id "GST_TYPE_ELEMENT_STATE_RETURN")
|
|
||||||
(values
|
|
||||||
'("failure" "GST_STATE_FAILURE")
|
|
||||||
'("success" "GST_STATE_SUCCESS")
|
|
||||||
'("async" "GST_STATE_ASYNC")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum Result
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstResult")
|
|
||||||
(gtype-id "GST_TYPE_RESULT")
|
|
||||||
(values
|
|
||||||
'("ok" "GST_RESULT_OK")
|
|
||||||
'("nok" "GST_RESULT_NOK")
|
|
||||||
'("not-impl" "GST_RESULT_NOT_IMPL")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(define-enum URIType
|
|
||||||
(in-module "Gst")
|
|
||||||
(c-name "GstURIType")
|
|
||||||
(gtype-id "GST_TYPE_URI_TYPE")
|
|
||||||
(values
|
|
||||||
'("unknown" "GST_URI_UNKNOWN")
|
|
||||||
'("sink" "GST_URI_SINK")
|
|
||||||
'("src" "GST_URI_SRC")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
6155
gstreamer/gst.defs
6155
gstreamer/gst.defs
File diff suppressed because it is too large
Load diff
|
@ -1,898 +0,0 @@
|
||||||
/* -*- Mode: C; c-basic-offset: 4 -*- */
|
|
||||||
/* gst-python
|
|
||||||
* Copyright (C) 2002 David I. Lehn
|
|
||||||
* Copyright (C) 2004 Johan Dahlin
|
|
||||||
*
|
|
||||||
* 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., 59 Temple Place - Suite 330,
|
|
||||||
* Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* Author: David I. Lehn <dlehn@users.sourceforge.net>
|
|
||||||
*/
|
|
||||||
%%
|
|
||||||
headers
|
|
||||||
#include <Python.h>
|
|
||||||
|
|
||||||
#include "pygobject.h"
|
|
||||||
#include <gst/gst.h>
|
|
||||||
#include <gst/gstqueue.h>
|
|
||||||
#include <gst/gsttypefind.h>
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
PyGObject *pad;
|
|
||||||
PyObject *link_function;
|
|
||||||
PyObject *event_function;
|
|
||||||
PyObject *chain_function;
|
|
||||||
PyObject *get_function;
|
|
||||||
} PyGstPadPrivate;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
PyObject *func, *data;
|
|
||||||
} PyGstCustomNotify;
|
|
||||||
|
|
||||||
void iterate_bin_all(GstBin *bin);
|
|
||||||
guint add_iterate_bin(GstBin *bin);
|
|
||||||
void remove_iterate_bin(guint id);
|
|
||||||
|
|
||||||
extern gboolean
|
|
||||||
pygst_data_from_pyobject(PyObject *object, GstData **data);
|
|
||||||
|
|
||||||
%%
|
|
||||||
include
|
|
||||||
gstpad-handlers.override
|
|
||||||
%%
|
|
||||||
modulename gst
|
|
||||||
%%
|
|
||||||
import gobject.GObject as PyGObject_Type
|
|
||||||
%%
|
|
||||||
ignore-glob
|
|
||||||
_*
|
|
||||||
gstreamer_*init
|
|
||||||
*_get_type
|
|
||||||
*_copy
|
|
||||||
*_free
|
|
||||||
*_valist
|
|
||||||
*_private
|
|
||||||
gst_registry_*
|
|
||||||
gst_value_*
|
|
||||||
%%
|
|
||||||
override gst_buffer_get_data
|
|
||||||
|
|
||||||
static PyObject*
|
|
||||||
_wrap_gst_buffer_get_data(PyObject *self)
|
|
||||||
{
|
|
||||||
GstBuffer *buf;
|
|
||||||
|
|
||||||
buf = pyg_boxed_get(self, GstBuffer);
|
|
||||||
|
|
||||||
return PyString_FromStringAndSize(
|
|
||||||
GST_BUFFER_DATA(buf),
|
|
||||||
GST_BUFFER_SIZE(buf));
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_buffer_set_data kwargs
|
|
||||||
|
|
||||||
static PyObject*
|
|
||||||
_wrap_gst_buffer_set_data(PyObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = {"data", NULL};
|
|
||||||
PyObject *data;
|
|
||||||
GstBuffer *buf;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GstBuffer:set_data", kwlist, &data)) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
if (!PyString_Check(data)) {
|
|
||||||
PyErr_SetString(PyExc_TypeError, "data should be a string");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
buf = pyg_boxed_get(self, GstBuffer);
|
|
||||||
if (GST_BUFFER_FLAGS(buf) & GST_BUFFER_READONLY) {
|
|
||||||
PyErr_SetString(PyExc_TypeError, "set_data can't use a READONLY buffer");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
GST_BUFFER_SIZE(buf) = PyString_Size(data);
|
|
||||||
GST_BUFFER_DATA(buf) = g_new0(char, GST_BUFFER_SIZE(buf));
|
|
||||||
|
|
||||||
memcpy(GST_BUFFER_DATA(buf),
|
|
||||||
PyString_AsString(data),
|
|
||||||
PyString_Size(data));
|
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
|
||||||
return Py_None;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_bin_iterate
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_bin_iterate(PyGObject *self)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
pyg_unblock_threads();
|
|
||||||
ret = gst_bin_iterate(GST_BIN(self->obj));
|
|
||||||
pyg_block_threads();
|
|
||||||
return PyInt_FromLong(ret);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_element_set_state kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_element_set_state(PyGObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "state", NULL };
|
|
||||||
PyObject *py_state = NULL;
|
|
||||||
GstElementState state;
|
|
||||||
gint ret;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GstElement.set_state", kwlist, &py_state))
|
|
||||||
return NULL;
|
|
||||||
if (pyg_flags_get_value(GST_TYPE_ELEMENT_STATE, py_state, (gint *)&state))
|
|
||||||
return NULL;
|
|
||||||
pyg_unblock_threads();
|
|
||||||
ret = gst_element_set_state(GST_ELEMENT(self->obj), state);
|
|
||||||
pyg_block_threads();
|
|
||||||
return PyInt_FromLong(ret);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_pad_query kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_pad_query(PyGObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "type", "format", NULL };
|
|
||||||
GstQueryType type;
|
|
||||||
GstFormat format;
|
|
||||||
gint64 value;
|
|
||||||
gboolean ret;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:GstPad.query", kwlist, &type, &format))
|
|
||||||
return NULL;
|
|
||||||
value = 0;
|
|
||||||
ret = gst_pad_query(GST_PAD(self->obj), type, &format, &value);
|
|
||||||
return Py_BuildValue("(bL)", ret, value);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_element_query kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_element_query(PyGObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "type", "format", NULL };
|
|
||||||
GstQueryType type;
|
|
||||||
GstFormat format;
|
|
||||||
gint64 value;
|
|
||||||
gboolean ret;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:GstElement.query", kwlist, &type, &format))
|
|
||||||
return NULL;
|
|
||||||
value = 0;
|
|
||||||
ret = gst_element_query(GST_ELEMENT(self->obj), type, &format, &value);
|
|
||||||
return Py_BuildValue("(bL)", ret, value);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_pad_convert kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_pad_convert(PyGObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "src_format", "src_value", "dest_format", NULL };
|
|
||||||
GstFormat src_format, dest_format;
|
|
||||||
PyObject *src_value_obj;
|
|
||||||
gint64 src_value, dest_value;
|
|
||||||
gboolean ret;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iOi:GstPad.convert", kwlist, &src_format, &src_value_obj, &dest_format))
|
|
||||||
return NULL;
|
|
||||||
src_value = PyLong_AsLongLong(src_value_obj);
|
|
||||||
dest_value = 0;
|
|
||||||
ret = gst_pad_convert(GST_PAD(self->obj), src_format, src_value, &dest_format, &dest_value);
|
|
||||||
return Py_BuildValue("(bL)", ret, dest_value);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_element_convert kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_element_convert(PyGObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "src_format", "src_value", "dest_format", NULL };
|
|
||||||
GstFormat src_format, dest_format;
|
|
||||||
PyObject *src_value_obj;
|
|
||||||
gint64 src_value, dest_value;
|
|
||||||
gboolean ret;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iOi:GstElement.convert", kwlist, &src_format, &src_value_obj, &dest_format))
|
|
||||||
return NULL;
|
|
||||||
src_value = PyLong_AsLongLong(src_value_obj);
|
|
||||||
dest_value = 0;
|
|
||||||
ret = gst_element_convert(GST_ELEMENT(self->obj), src_format, src_value, &dest_format, &dest_value);
|
|
||||||
return Py_BuildValue("(bL)", ret, dest_value);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_version noargs
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_version(void)
|
|
||||||
{
|
|
||||||
guint major, minor, micro;
|
|
||||||
|
|
||||||
gst_version(&major, &minor, µ);
|
|
||||||
|
|
||||||
return Py_BuildValue("(iii)", major, minor, micro);
|
|
||||||
}
|
|
||||||
|
|
||||||
%%
|
|
||||||
override gst_bin_add_many args
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_bin_add_many(PyGObject *self, PyObject *args)
|
|
||||||
{
|
|
||||||
PyGObject *element;
|
|
||||||
int i;
|
|
||||||
int len;
|
|
||||||
|
|
||||||
len = PyTuple_Size(args);
|
|
||||||
if (len == 0)
|
|
||||||
{
|
|
||||||
PyErr_SetString(PyExc_TypeError, "GstBin.add requires at least one argument");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
for (i = 0; i < len; i++)
|
|
||||||
{
|
|
||||||
element = (PyGObject*)PyTuple_GetItem(args, i);
|
|
||||||
if (!pygobject_check(element, &PyGstElement_Type))
|
|
||||||
{
|
|
||||||
PyErr_SetString(PyExc_TypeError, "argument must be a GstElement");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < len; i++)
|
|
||||||
{
|
|
||||||
element = (PyGObject*)PyTuple_GetItem(args, i);
|
|
||||||
gst_bin_add(GST_BIN(self->obj), GST_ELEMENT(element->obj));
|
|
||||||
}
|
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
|
||||||
return Py_None;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_element_link_many args
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_element_link_many(PyObject *self, PyObject *args)
|
|
||||||
{
|
|
||||||
PyGObject *element, *element2;
|
|
||||||
int i, len;
|
|
||||||
|
|
||||||
len = PyTuple_Size(args);
|
|
||||||
if (len < 2)
|
|
||||||
{
|
|
||||||
PyErr_SetString(PyExc_TypeError, "gst.link_many requires at least two argument");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
for (i = 0; i < len; i++)
|
|
||||||
{
|
|
||||||
element = (PyGObject*)PyTuple_GetItem(args, i);
|
|
||||||
if (!pygobject_check(element, &PyGstElement_Type))
|
|
||||||
{
|
|
||||||
PyErr_SetString(PyExc_TypeError, "argument must be a GstElement");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Mimic the real gst_element_link_many */
|
|
||||||
element = (PyGObject*)PyTuple_GetItem(args, 0);
|
|
||||||
element2 = (PyGObject*)PyTuple_GetItem(args, 1);
|
|
||||||
|
|
||||||
i = 2;
|
|
||||||
while (1) {
|
|
||||||
|
|
||||||
if (!gst_element_link(GST_ELEMENT(element->obj), GST_ELEMENT(element2->obj)))
|
|
||||||
return PyInt_FromLong(0);
|
|
||||||
|
|
||||||
if (i >= len)
|
|
||||||
break;
|
|
||||||
|
|
||||||
element = element2;
|
|
||||||
element2 = (PyGObject*)PyTuple_GetItem(args, i);
|
|
||||||
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return PyInt_FromLong(1);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override-slot GstBuffer.tp_getattr
|
|
||||||
PyObject *
|
|
||||||
_wrap_gst_buffer_tp_getattr(PyGObject *self, char *attr)
|
|
||||||
{
|
|
||||||
if (!strcmp(attr, "type"))
|
|
||||||
return pyg_type_wrapper_new(GST_DATA_TYPE(self->obj));
|
|
||||||
else if (!strcmp(attr, "flags"))
|
|
||||||
return PyInt_FromLong(GST_DATA_FLAGS(self->obj));
|
|
||||||
|
|
||||||
return Py_FindMethod(_PyGstBuffer_methods, (PyObject*)self, attr);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override GstPad.get_negotiated_caps
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_pad_get_negotiated_caps(PyGObject *self)
|
|
||||||
{
|
|
||||||
const GstCaps *ret;
|
|
||||||
|
|
||||||
ret = gst_pad_get_negotiated_caps(GST_PAD(self->obj));
|
|
||||||
/* pyg_boxed_new handles NULL checking */
|
|
||||||
return pyg_boxed_new(GST_TYPE_CAPS, ret, TRUE, TRUE);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_buffer_new kwargs
|
|
||||||
static int
|
|
||||||
_wrap_gst_buffer_new(PyGBoxed *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "data", NULL };
|
|
||||||
char *data = NULL;
|
|
||||||
int size;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|z#:GstBuffer.__init__", kwlist, &data, &size))
|
|
||||||
return -1;
|
|
||||||
self->gtype = GST_TYPE_BUFFER;
|
|
||||||
self->free_on_dealloc = FALSE;
|
|
||||||
self->boxed = gst_buffer_new_and_alloc(size);
|
|
||||||
|
|
||||||
if (!self->boxed) {
|
|
||||||
PyErr_SetString(PyExc_RuntimeError, "could not create GstBuffer object");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data)
|
|
||||||
gst_buffer_set_data (self->boxed, data, size);
|
|
||||||
// memcpy (GST_BUFFER_DATA (self->boxed), data, size);
|
|
||||||
|
|
||||||
gst_buffer_ref (GST_BUFFER (self->boxed));
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override pygst_tag_list_keys noargs
|
|
||||||
void
|
|
||||||
tag_foreach_func_dict (const GstTagList *list,
|
|
||||||
const gchar *tag,
|
|
||||||
PyObject *dict)
|
|
||||||
{
|
|
||||||
int count;
|
|
||||||
guint i;
|
|
||||||
const GValue *gvalue;
|
|
||||||
PyObject *value;
|
|
||||||
gchar *key;
|
|
||||||
|
|
||||||
count = gst_tag_list_get_tag_size(GST_TAG_LIST(list), tag);
|
|
||||||
|
|
||||||
for (i = 0; i < count; i++) {
|
|
||||||
gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(list), tag, i);
|
|
||||||
value = pyg_value_as_pyobject(gvalue, TRUE);
|
|
||||||
key = g_strdup (tag);
|
|
||||||
PyDict_SetItemString(dict, key, value);
|
|
||||||
g_free (key);
|
|
||||||
Py_DECREF(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void
|
|
||||||
tag_foreach_func_list (const GstTagList *list,
|
|
||||||
const gchar *tag,
|
|
||||||
PyObject *py_list)
|
|
||||||
{
|
|
||||||
int count;
|
|
||||||
|
|
||||||
count = gst_tag_list_get_tag_size(GST_TAG_LIST(list), tag);
|
|
||||||
if (count == 0)
|
|
||||||
PyErr_SetString(PyExc_KeyError, tag);
|
|
||||||
else if (count == 1)
|
|
||||||
PyList_Append(py_list, PyString_FromString(tag));
|
|
||||||
else if (count > 1)
|
|
||||||
PyErr_SetString(PyExc_TypeError, "lists are currently unspported");
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject*
|
|
||||||
_wrap_pygst_tag_list_keys(PyGObject *self)
|
|
||||||
{
|
|
||||||
PyObject *dict;
|
|
||||||
|
|
||||||
dict = PyList_New(0);
|
|
||||||
|
|
||||||
gst_tag_list_foreach(GST_TAG_LIST(self->obj),
|
|
||||||
(GstTagForeachFunc)tag_foreach_func_list,
|
|
||||||
(gpointer)dict);
|
|
||||||
|
|
||||||
return dict;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override-slot GstTagList.tp_as_mapping
|
|
||||||
static int
|
|
||||||
tag_list_length(PyGObject *self)
|
|
||||||
{
|
|
||||||
return gst_structure_n_fields((GstStructure*)self->obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
tag_list_subscript(PyGObject *self, register PyObject *py_key)
|
|
||||||
{
|
|
||||||
PyObject *v = NULL;
|
|
||||||
char *key = PyString_AsString(py_key);
|
|
||||||
|
|
||||||
int count = gst_tag_list_get_tag_size(GST_TAG_LIST(self->obj), key);
|
|
||||||
if (count == 0) {
|
|
||||||
PyErr_SetObject(PyExc_KeyError, py_key);
|
|
||||||
} else if (count == 1) {
|
|
||||||
const GValue *gvalue;
|
|
||||||
gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(self->obj), key, 0);
|
|
||||||
v = pyg_value_as_pyobject(gvalue, TRUE);
|
|
||||||
} else {
|
|
||||||
PyErr_SetString(PyExc_TypeError, "lists are currently unspported");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (v != NULL)
|
|
||||||
Py_INCREF(v);
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PySequenceMethods _wrap_gst_tag_list_tp_as_mapping = {
|
|
||||||
(inquiry)tag_list_length, /*mp_length*/
|
|
||||||
(binaryfunc)tag_list_subscript, /*mp_subscript*/
|
|
||||||
(objobjargproc)NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
%%
|
|
||||||
override pygst_tag_list_has_key args
|
|
||||||
static PyObject*
|
|
||||||
_wrap_pygst_tag_list_has_key(PyGObject *self, PyObject *args)
|
|
||||||
{
|
|
||||||
gchar *key;
|
|
||||||
const GValue *gvalue;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(args, "s:GstTagList.keys", &key))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(self->obj), key, 0);
|
|
||||||
|
|
||||||
return PyInt_FromLong(gvalue != NULL);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override pygst_tag_list_get args
|
|
||||||
static PyObject *
|
|
||||||
_wrap_pygst_tag_list_get(PyGObject *self, PyObject *args)
|
|
||||||
{
|
|
||||||
char *key;
|
|
||||||
PyObject *failobj = Py_None;
|
|
||||||
PyObject *val = NULL;
|
|
||||||
const GValue *gvalue;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(args, "s|O:GstTagList.get", &key, &failobj))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(self->obj), key, 0);
|
|
||||||
if (gvalue != NULL) {
|
|
||||||
int count = gst_tag_list_get_tag_size(GST_TAG_LIST(self->obj), key);
|
|
||||||
if (count == 0) {
|
|
||||||
PyErr_SetString(PyExc_KeyError, key);
|
|
||||||
} else if (count == 1) {
|
|
||||||
gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(self->obj), key, 0);
|
|
||||||
val = pyg_value_as_pyobject(gvalue, TRUE);
|
|
||||||
} else {
|
|
||||||
PyErr_SetString(PyExc_TypeError, "lists are currently unspported");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (val == NULL)
|
|
||||||
val = failobj;
|
|
||||||
Py_INCREF(val);
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyGstPadPrivate*
|
|
||||||
pad_private(GstPad *pad)
|
|
||||||
{
|
|
||||||
return (PyGstPadPrivate*)gst_pad_get_element_private(pad);
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyGstPadPrivate*
|
|
||||||
py_pad_private(PyGObject *pad)
|
|
||||||
{
|
|
||||||
PyGstPadPrivate *private;
|
|
||||||
GstPad *gpad;
|
|
||||||
|
|
||||||
gpad = (GstPad*)pygobject_get(pad);
|
|
||||||
private = (PyGstPadPrivate*)gst_pad_get_element_private(gpad);
|
|
||||||
if (private == NULL) {
|
|
||||||
/* FIXME need to free this somewhere */
|
|
||||||
private = g_new0(PyGstPadPrivate, 1);
|
|
||||||
Py_INCREF(pad);
|
|
||||||
private->pad = pad;
|
|
||||||
gst_pad_set_element_private(gpad, private);
|
|
||||||
}
|
|
||||||
return private;
|
|
||||||
}
|
|
||||||
|
|
||||||
%%
|
|
||||||
override gst_bin_iterate
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_bin_iterate(PyGObject *self)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
pyg_unblock_threads();
|
|
||||||
ret = gst_bin_iterate(GST_BIN(self->obj));
|
|
||||||
pyg_block_threads();
|
|
||||||
return PyInt_FromLong(ret);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_element_set_state kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_element_set_state(PyGObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "state", NULL };
|
|
||||||
PyObject *py_state = NULL;
|
|
||||||
GstElementState state;
|
|
||||||
gint ret;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GstElement.set_state", kwlist, &py_state))
|
|
||||||
return NULL;
|
|
||||||
if (pyg_flags_get_value(GST_TYPE_ELEMENT_STATE, py_state, (gint *)&state))
|
|
||||||
return NULL;
|
|
||||||
pyg_unblock_threads();
|
|
||||||
ret = gst_element_set_state(GST_ELEMENT(self->obj), state);
|
|
||||||
pyg_block_threads();
|
|
||||||
return PyInt_FromLong(ret);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_pad_query kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_pad_query(PyGObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "type", "format", NULL };
|
|
||||||
GstQueryType type;
|
|
||||||
GstFormat format;
|
|
||||||
gint64 value;
|
|
||||||
gboolean ret;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:GstPad.query", kwlist, &type, &format))
|
|
||||||
return NULL;
|
|
||||||
value = 0;
|
|
||||||
ret = gst_pad_query(GST_PAD(self->obj), type, &format, &value);
|
|
||||||
return Py_BuildValue("(bL)", ret, value);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_element_query kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_element_query(PyGObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "type", "format", NULL };
|
|
||||||
GstQueryType type;
|
|
||||||
GstFormat format;
|
|
||||||
gint64 value;
|
|
||||||
gboolean ret;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:GstElement.query", kwlist, &type, &format))
|
|
||||||
return NULL;
|
|
||||||
value = 0;
|
|
||||||
ret = gst_element_query(GST_ELEMENT(self->obj), type, &format, &value);
|
|
||||||
return Py_BuildValue("(bL)", ret, value);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_pad_convert kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_pad_convert(PyGObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "src_format", "src_value", "dest_format", NULL };
|
|
||||||
GstFormat src_format, dest_format;
|
|
||||||
PyObject *src_value_obj;
|
|
||||||
gint64 src_value, dest_value;
|
|
||||||
gboolean ret;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iOi:GstPad.convert", kwlist, &src_format, &src_value_obj, &dest_format))
|
|
||||||
return NULL;
|
|
||||||
src_value = PyLong_AsLongLong(src_value_obj);
|
|
||||||
dest_value = 0;
|
|
||||||
ret = gst_pad_convert(GST_PAD(self->obj), src_format, src_value, &dest_format, &dest_value);
|
|
||||||
return Py_BuildValue("(bL)", ret, dest_value);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_element_convert kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_element_convert(PyGObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "src_format", "src_value", "dest_format", NULL };
|
|
||||||
GstFormat src_format, dest_format;
|
|
||||||
PyObject *src_value_obj;
|
|
||||||
gint64 src_value, dest_value;
|
|
||||||
gboolean ret;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iOi:GstElement.convert", kwlist, &src_format, &src_value_obj, &dest_format))
|
|
||||||
return NULL;
|
|
||||||
src_value = PyLong_AsLongLong(src_value_obj);
|
|
||||||
dest_value = 0;
|
|
||||||
ret = gst_element_convert(GST_ELEMENT(self->obj), src_format, src_value, &dest_format, &dest_value);
|
|
||||||
return Py_BuildValue("(bL)", ret, dest_value);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_version noargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_version(void)
|
|
||||||
{
|
|
||||||
guint major, minor, micro;
|
|
||||||
|
|
||||||
gst_version(&major, &minor, µ);
|
|
||||||
|
|
||||||
return Py_BuildValue("(iii)", major, minor, micro);
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_bin_add_many args
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_bin_add_many(PyGObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
PyGObject *element;
|
|
||||||
int i;
|
|
||||||
int len;
|
|
||||||
|
|
||||||
len = PyList_Size(args);
|
|
||||||
if (len == 0)
|
|
||||||
{
|
|
||||||
PyErr_SetString(PyExc_TypeError, "GstBin.add requires at least one argument");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
for (i = 0; i < len; i++)
|
|
||||||
{
|
|
||||||
element = (PyGObject*)PyList_GetItem(args, i);
|
|
||||||
if (!pygobject_check(element, &PyGstElement_Type))
|
|
||||||
{
|
|
||||||
PyErr_SetString(PyExc_TypeError, "argument must be a GstElement");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < len; i++)
|
|
||||||
{
|
|
||||||
element = (PyGObject*)PyList_GetItem(args, i);
|
|
||||||
gst_bin_add(GST_BIN(self->obj), GST_ELEMENT(element->obj));
|
|
||||||
}
|
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
|
||||||
return Py_None;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_structure_new kwargs
|
|
||||||
|
|
||||||
static int
|
|
||||||
_wrap_gst_structure_new(PyGBoxed *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "name", NULL };
|
|
||||||
char *name;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s:GstStructure.__init__", kwlist, &name))
|
|
||||||
return -1;
|
|
||||||
self->gtype = GST_TYPE_STRUCTURE;
|
|
||||||
self->free_on_dealloc = FALSE;
|
|
||||||
self->boxed = gst_structure_new(name, NULL);
|
|
||||||
|
|
||||||
if (!self->boxed) {
|
|
||||||
PyErr_SetString(PyExc_RuntimeError, "could not create GstStructure object");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
self->free_on_dealloc = TRUE;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_structure_set_value kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_structure_set_value(PyObject *self, PyObject *args, PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "field", "value", NULL };
|
|
||||||
char *field;
|
|
||||||
PyObject *py_value = NULL;
|
|
||||||
GValue value = { 0 };
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "sO:GstStructure.set_value", kwlist, &field, &py_value))
|
|
||||||
return NULL;
|
|
||||||
g_value_init(&value, G_TYPE_STRING);
|
|
||||||
if (pyg_value_from_pyobject(&value, py_value) != 0) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
gst_structure_set_value(pyg_boxed_get(self, GstStructure), field, &value);
|
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
|
||||||
return Py_None;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_structure_foreach kwargs
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
pygst_structure_foreach_marshal(GQuark field_id,
|
|
||||||
GValue *value,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
PyGstCustomNotify *cunote = user_data;
|
|
||||||
PyObject *py_field, *py_value, *retobj;
|
|
||||||
gboolean retval = TRUE;
|
|
||||||
|
|
||||||
g_assert(cunote->func);
|
|
||||||
|
|
||||||
pyg_block_threads();
|
|
||||||
|
|
||||||
//py_model = pygobject_new((GObject *)model);
|
|
||||||
//py_path = pygtk_tree_path_to_pyobject(path);
|
|
||||||
//py_iter = pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE);
|
|
||||||
py_field = Py_BuildValue("s", g_quark_to_string(field_id));
|
|
||||||
py_value = pyg_value_as_pyobject(value, FALSE);
|
|
||||||
if (cunote->data)
|
|
||||||
retobj = PyEval_CallFunction(cunote->func, "(NNO)",
|
|
||||||
py_field, py_value,
|
|
||||||
cunote->data);
|
|
||||||
else
|
|
||||||
retobj = PyEval_CallFunction(cunote->func, "(NN)",
|
|
||||||
py_field, py_value);
|
|
||||||
|
|
||||||
if (PyErr_Occurred () || (retobj == NULL) || (retobj == Py_None)) {
|
|
||||||
PyErr_Print ();
|
|
||||||
retval = FALSE;
|
|
||||||
} else if (retobj != Py_None) {
|
|
||||||
retval = PyInt_AsLong(retobj);
|
|
||||||
}
|
|
||||||
|
|
||||||
Py_XDECREF(retobj);
|
|
||||||
|
|
||||||
pyg_unblock_threads();
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_structure_foreach (PyGObject *self,
|
|
||||||
PyObject *args,
|
|
||||||
PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "foreach_function", "args", NULL };
|
|
||||||
PyObject *pyfunc, *pyarg = NULL;
|
|
||||||
PyGstCustomNotify cunote;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
|
|
||||||
"O|O:GstStructure.foreach",
|
|
||||||
kwlist,
|
|
||||||
&pyfunc, &pyarg)) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!PyCallable_Check(pyfunc)) {
|
|
||||||
PyErr_SetString(PyExc_TypeError, "foreach_function not callable");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
cunote.func = pyfunc;
|
|
||||||
cunote.data = pyarg;
|
|
||||||
gst_structure_foreach(pyg_boxed_get(self, GstStructure),
|
|
||||||
pygst_structure_foreach_marshal,
|
|
||||||
&cunote);
|
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
|
||||||
return Py_None;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_tag_list_foreach kwargs
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
pygst_tag_list_foreach_marshal(GstTagList *list,
|
|
||||||
const gchar *tag,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
PyGstCustomNotify *cunote = user_data;
|
|
||||||
PyObject *py_list;
|
|
||||||
PyObject *py_key, *retobj;
|
|
||||||
gboolean retval = TRUE;
|
|
||||||
|
|
||||||
g_assert(cunote->func);
|
|
||||||
|
|
||||||
pyg_block_threads();
|
|
||||||
|
|
||||||
py_list = pyg_boxed_new(GST_TYPE_TAG_LIST, list, TRUE, TRUE);
|
|
||||||
py_key = Py_BuildValue("s", tag);
|
|
||||||
if (cunote->data)
|
|
||||||
retobj = PyEval_CallFunction(cunote->func, "(NNO)",
|
|
||||||
py_list,
|
|
||||||
py_key,
|
|
||||||
cunote->data);
|
|
||||||
else
|
|
||||||
retobj = PyEval_CallFunction(cunote->func, "(NN)",
|
|
||||||
py_list,
|
|
||||||
py_key);
|
|
||||||
|
|
||||||
if (PyErr_Occurred () || (retobj == NULL) || (retobj == Py_None)) {
|
|
||||||
PyErr_Print ();
|
|
||||||
retval = FALSE;
|
|
||||||
} else if (retobj != Py_None) {
|
|
||||||
retval = PyInt_AsLong(retobj);
|
|
||||||
}
|
|
||||||
|
|
||||||
Py_XDECREF(retobj);
|
|
||||||
|
|
||||||
pyg_unblock_threads();
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_tag_list_foreach (PyGObject *self,
|
|
||||||
PyObject *args,
|
|
||||||
PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "foreach_function", "args", NULL };
|
|
||||||
PyObject *pyfunc, *pyarg = NULL;
|
|
||||||
PyGstCustomNotify cunote;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
|
|
||||||
"O|O:GstTagList.foreach",
|
|
||||||
kwlist,
|
|
||||||
&pyfunc, &pyarg)) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!PyCallable_Check(pyfunc)) {
|
|
||||||
PyErr_SetString(PyExc_TypeError, "foreach_function not callable");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
cunote.func = pyfunc;
|
|
||||||
cunote.data = pyarg;
|
|
||||||
gst_tag_list_foreach(pyg_boxed_get(self, GstTagList),
|
|
||||||
(GstTagForeachFunc)pygst_tag_list_foreach_marshal,
|
|
||||||
&cunote);
|
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
|
||||||
return Py_None;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_tag_list_get_value_index kwargs
|
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
_wrap_gst_tag_list_get_value_index (PyGObject *self,
|
|
||||||
PyObject *args,
|
|
||||||
PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "tag", "index", NULL };
|
|
||||||
char *tag;
|
|
||||||
int index;
|
|
||||||
const GValue *gvalue;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
|
|
||||||
"si:GstTagList.get_value_index",
|
|
||||||
kwlist,
|
|
||||||
&tag, &index)) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
gvalue = gst_tag_list_get_value_index(pyg_boxed_get(self, GstTagList),
|
|
||||||
tag,
|
|
||||||
index);
|
|
||||||
|
|
||||||
return pyg_value_as_pyobject(gvalue, FALSE);
|
|
||||||
}
|
|
|
@ -1,82 +0,0 @@
|
||||||
/* -*- Mode: C; c-basic-offset: 4 -*- */
|
|
||||||
/* gst-python
|
|
||||||
* Copyright (C) 2002 David I. Lehn
|
|
||||||
*
|
|
||||||
* 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., 59 Temple Place - Suite 330,
|
|
||||||
* Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* Author: David I. Lehn <dlehn@users.sourceforge.net>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* include this first, before NO_IMPORT_PYGOBJECT is defined */
|
|
||||||
#include <pygobject.h>
|
|
||||||
#include <gst/gst.h>
|
|
||||||
|
|
||||||
void pygst_register_classes (PyObject *d);
|
|
||||||
void pygst_add_constants(PyObject *module, const gchar *strip_prefix);
|
|
||||||
|
|
||||||
extern PyMethodDef pygst_functions[];
|
|
||||||
|
|
||||||
DL_EXPORT(void)
|
|
||||||
init_gst (void)
|
|
||||||
{
|
|
||||||
PyObject *m, *d;
|
|
||||||
PyObject *av;
|
|
||||||
int argc, i;
|
|
||||||
char **argv;
|
|
||||||
|
|
||||||
init_pygobject ();
|
|
||||||
|
|
||||||
/* pull in arguments */
|
|
||||||
av = PySys_GetObject ("argv");
|
|
||||||
if (av != NULL) {
|
|
||||||
argc = PyList_Size (av);
|
|
||||||
argv = g_new (char *, argc);
|
|
||||||
for (i = 0; i < argc; i++)
|
|
||||||
argv[i] = g_strdup (PyString_AsString (PyList_GetItem (av, i)));
|
|
||||||
} else {
|
|
||||||
argc = 0;
|
|
||||||
argv = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!gst_init_check (&argc, &argv)) {
|
|
||||||
if (argv != NULL) {
|
|
||||||
for (i = 0; i < argc; i++)
|
|
||||||
g_free (argv[i]);
|
|
||||||
g_free (argv);
|
|
||||||
}
|
|
||||||
PyErr_SetString (PyExc_RuntimeError, "can't initialize module gst");
|
|
||||||
}
|
|
||||||
if (argv != NULL) {
|
|
||||||
PySys_SetArgv (argc, argv);
|
|
||||||
for (i = 0; i < argc; i++)
|
|
||||||
g_free (argv[i]);
|
|
||||||
g_free (argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
m = Py_InitModule ("gst._gst", pygst_functions);
|
|
||||||
d = PyModule_GetDict (m);
|
|
||||||
|
|
||||||
pygst_register_classes (d);
|
|
||||||
pygst_add_constants (m, "GST_");
|
|
||||||
|
|
||||||
if (PyErr_Occurred ()) {
|
|
||||||
Py_FatalError ("can't initialize module gst");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,258 +0,0 @@
|
||||||
/* -*- Mode: C; c-basic-offset: 4 -*- */
|
|
||||||
/* gst-python
|
|
||||||
* Copyright (C) 2004 Johan Dahlin
|
|
||||||
*
|
|
||||||
* 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., 59 Temple Place - Suite 330,
|
|
||||||
* Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* Author: Johan Dahlin <johan@gnome.org
|
|
||||||
*/
|
|
||||||
|
|
||||||
%%
|
|
||||||
override gst_pad_set_link_function kwargs
|
|
||||||
|
|
||||||
static GstPadLinkReturn
|
|
||||||
call_link_function (GstPad *pad, GstCaps *caps)
|
|
||||||
{
|
|
||||||
PyObject *function;
|
|
||||||
PyObject *retval;
|
|
||||||
GstPadLinkReturn ret;
|
|
||||||
|
|
||||||
function = pad_private(pad)->link_function;
|
|
||||||
|
|
||||||
pyg_block_threads();
|
|
||||||
|
|
||||||
retval = (PyObject*)PyObject_CallFunction (function,
|
|
||||||
"OO",
|
|
||||||
pad_private(pad)->pad,
|
|
||||||
pyg_boxed_new(GST_TYPE_CAPS, caps, TRUE, TRUE));
|
|
||||||
|
|
||||||
if (PyErr_Occurred ()) {
|
|
||||||
PyErr_Print ();
|
|
||||||
pyg_unblock_threads();
|
|
||||||
return GST_PAD_LINK_REFUSED;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = PyInt_AsLong(retval);
|
|
||||||
|
|
||||||
pyg_unblock_threads();
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject*
|
|
||||||
_wrap_gst_pad_set_link_function (PyGObject *self,
|
|
||||||
PyObject *args,
|
|
||||||
PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "link_function", NULL };
|
|
||||||
PyObject *link_function;
|
|
||||||
GstPad *pad;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
|
|
||||||
"O:GstPad.set_link_funcion",
|
|
||||||
kwlist,
|
|
||||||
&link_function)) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!PyCallable_Check(link_function)) {
|
|
||||||
PyErr_SetString(PyExc_TypeError, "link_function not callable");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Py_INCREF(link_function);
|
|
||||||
py_pad_private(self)->link_function = link_function;
|
|
||||||
pad = (GstPad*)pygobject_get(self);
|
|
||||||
gst_pad_set_link_function(pad, (GstPadLinkFunction)call_link_function);
|
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
|
||||||
return Py_None;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_pad_set_chain_function kwargs
|
|
||||||
|
|
||||||
static void
|
|
||||||
call_chain_function(GstPad *pad, GstBuffer *buf)
|
|
||||||
{
|
|
||||||
PyObject *function;
|
|
||||||
|
|
||||||
function = pad_private(pad)->chain_function;
|
|
||||||
|
|
||||||
pyg_block_threads();
|
|
||||||
|
|
||||||
PyObject_CallFunction (function,
|
|
||||||
"OO",
|
|
||||||
pad_private(pad)->pad,
|
|
||||||
pyg_boxed_new(GST_TYPE_BUFFER, buf, TRUE, TRUE));
|
|
||||||
|
|
||||||
if (PyErr_Occurred ()) {
|
|
||||||
PyErr_Print ();
|
|
||||||
pyg_unblock_threads();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
pyg_unblock_threads();
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject*
|
|
||||||
_wrap_gst_pad_set_chain_function(PyGObject *self,
|
|
||||||
PyObject *args,
|
|
||||||
PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "chain_function", NULL };
|
|
||||||
PyObject *chain_function;
|
|
||||||
GstPad *pad;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
|
|
||||||
"O:GstPad.set_chain_funcion",
|
|
||||||
kwlist,
|
|
||||||
&chain_function)) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!PyCallable_Check(chain_function)) {
|
|
||||||
PyErr_SetString(PyExc_TypeError, "chain_function not callable");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Py_INCREF(chain_function);
|
|
||||||
py_pad_private(self)->chain_function = chain_function;
|
|
||||||
pad = (GstPad*)pygobject_get(self);
|
|
||||||
gst_pad_set_chain_function(pad, (GstPadChainFunction)call_chain_function);
|
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
|
||||||
return Py_None;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_pad_set_event_function kwargs
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
call_event_function (GstPad *pad, GstEvent *event)
|
|
||||||
{
|
|
||||||
PyObject *function;
|
|
||||||
PyObject *retval;
|
|
||||||
gboolean ret;
|
|
||||||
|
|
||||||
function = pad_private(pad)->event_function;
|
|
||||||
|
|
||||||
pyg_block_threads();
|
|
||||||
|
|
||||||
retval = PyObject_CallFunction (function,
|
|
||||||
"OO",
|
|
||||||
pad_private(pad)->pad,
|
|
||||||
pyg_boxed_new(GST_TYPE_EVENT, event, TRUE, TRUE));
|
|
||||||
|
|
||||||
if (PyErr_Occurred ()) {
|
|
||||||
PyErr_Print ();
|
|
||||||
pyg_unblock_threads();
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = PyInt_AsLong(retval);
|
|
||||||
|
|
||||||
pyg_unblock_threads();
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject*
|
|
||||||
_wrap_gst_pad_set_event_function (PyGObject *self,
|
|
||||||
PyObject *args,
|
|
||||||
PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "event_function", NULL };
|
|
||||||
PyObject *event_function;
|
|
||||||
GstPad *pad;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
|
|
||||||
"O:GstPad.set_event_funcion",
|
|
||||||
kwlist,
|
|
||||||
&event_function)) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!PyCallable_Check(event_function)) {
|
|
||||||
PyErr_SetString(PyExc_TypeError, "event_function not callable");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Py_INCREF(event_function);
|
|
||||||
py_pad_private(self)->event_function = event_function;
|
|
||||||
pad = (GstPad*)pygobject_get(self);
|
|
||||||
gst_pad_set_event_function(pad, (GstPadEventFunction)call_event_function);
|
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
|
||||||
return Py_None;
|
|
||||||
}
|
|
||||||
%%
|
|
||||||
override gst_pad_set_get_function kwargs
|
|
||||||
|
|
||||||
static GstData*
|
|
||||||
call_get_function (GstPad *pad)
|
|
||||||
{
|
|
||||||
PyObject *function;
|
|
||||||
PyObject *retval;
|
|
||||||
GstData *data = NULL;
|
|
||||||
|
|
||||||
function = pad_private(pad)->get_function;
|
|
||||||
|
|
||||||
pyg_block_threads();
|
|
||||||
|
|
||||||
retval = PyObject_CallFunction(function, "O", pad_private(pad)->pad);
|
|
||||||
|
|
||||||
if (PyErr_Occurred()) {
|
|
||||||
PyErr_Print();
|
|
||||||
goto bail;
|
|
||||||
} else if (retval == Py_None) {
|
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
|
|
||||||
pygst_data_from_pyobject(retval, &data);
|
|
||||||
|
|
||||||
bail:
|
|
||||||
pyg_unblock_threads();
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject*
|
|
||||||
_wrap_gst_pad_set_get_function (PyGObject *self,
|
|
||||||
PyObject *args,
|
|
||||||
PyObject *kwargs)
|
|
||||||
{
|
|
||||||
static char *kwlist[] = { "get_function", NULL };
|
|
||||||
PyObject *get_function;
|
|
||||||
GstPad *pad;
|
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
|
|
||||||
"O:GstPad.set_get_funcion",
|
|
||||||
kwlist,
|
|
||||||
&get_function)) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!PyCallable_Check(get_function)) {
|
|
||||||
PyErr_SetString(PyExc_TypeError, "get_function not callable");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Py_INCREF(get_function);
|
|
||||||
py_pad_private(self)->get_function = get_function;
|
|
||||||
pad = (GstPad*)pygobject_get(self);
|
|
||||||
gst_pad_set_get_function(pad, (GstPadGetFunction)call_get_function);
|
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
|
||||||
return Py_None;
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
#
|
|
||||||
# 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., 59 Temple Place - Suite 330,
|
|
||||||
# Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# Author: David I. Lehn <dlehn@users.sourceforge.net>
|
|
||||||
#
|
|
||||||
|
|
||||||
from gst import *
|
|
Loading…
Reference in a new issue