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:
Thomas Vander Stichele 2004-03-04 11:33:27 +00:00
parent b86c702816
commit 57755079fb
11 changed files with 0 additions and 8483 deletions

11
gstreamer/.gitignore vendored
View file

@ -1,11 +0,0 @@
Makefile
Makefile.in
*.o
*.lo
*.la
*.so
*.py[co]
.libs
.deps
gst.c
gst.defs

View file

@ -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

View file

@ -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()

View file

@ -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

View file

@ -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);
}

View file

@ -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")
)
)

File diff suppressed because it is too large Load diff

View file

@ -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, &micro);
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, &micro);
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);
}

View file

@ -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");
}
}

View file

@ -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;
}

View file

@ -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 *