Thibault Saunier
ff2180b284
ges: Use #pragma once everywhere
2020-03-19 21:09:18 +00:00
Thibault Saunier
f30b7f05b5
plugins:ges: Fix pushing tags after e8c782d119
...
Basically the tags we send before STREAM_START are now ignored, meaning
that we could not detect nested timelines anymore, this commits makes
sure that we send our tag event after getting pushing STREAM_START.
2020-02-12 17:50:37 -03:00
Tim-Philipp Müller
0c96b9dd10
Remove autotools build system
...
Todo:
- hook up data/completions/ges-launch-1.0 in Meson (#77 )
2019-10-13 13:54:19 +01:00
Sebastian Dröge
eabfd98e6d
gesdemux: Initialize debug category before first using it
...
Prevents critical warnings during class_init()
2019-10-01 18:01:21 +03:00
Matthew Waters
c2bba9e0e5
build: also suppress unused-function warnings about g_autoptr
...
../plugins/ges/gesdemux.c:50:1: error: unused function 'glib_autoptr_cleanup_GESDemux' [-Werror,-Wunused-function]
G_DECLARE_FINAL_TYPE (GESDemux, ges_demux, GES, DEMUX, GESBaseBin);
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/gobject/gtype.h:1401:3: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
_GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName) \
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/glib/gmacros.h:451:22: note: expanded from macro '_GLIB_DEFINE_AUTOPTR_CHAINUP'
static inline void _GLIB_AUTOPTR_FUNC_NAME(ModuleObjName) (ModuleObjName **_ptr) { \
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/glib/gmacros.h:441:43: note: expanded from macro '_GLIB_AUTOPTR_FUNC_NAME'
#define _GLIB_AUTOPTR_FUNC_NAME(TypeName) glib_autoptr_cleanup_##TypeName
^
<scratch space>:81:1: note: expanded from here
glib_autoptr_cleanup_GESDemux
^
../plugins/ges/gessrc.c:56:1: error: unused function 'glib_autoptr_cleanup_GESSrc' [-Werror,-Wunused-function]
G_DECLARE_FINAL_TYPE (GESSrc, ges_src, GES, SRC, GESBaseBin);
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/gobject/gtype.h:1401:3: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
_GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName) \
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/glib/gmacros.h:451:22: note: expanded from macro '_GLIB_DEFINE_AUTOPTR_CHAINUP'
static inline void _GLIB_AUTOPTR_FUNC_NAME(ModuleObjName) (ModuleObjName **_ptr) { \
^
/home/matt/Projects/cerbero/build/dist/android_universal/x86_64/include/glib-2.0/glib/gmacros.h:441:43: note: expanded from macro '_GLIB_AUTOPTR_FUNC_NAME'
#define _GLIB_AUTOPTR_FUNC_NAME(TypeName) glib_autoptr_cleanup_##TypeName
^
<scratch space>:158:1: note: expanded from here
glib_autoptr_cleanup_GESSrc
^
2019-08-28 18:46:36 +10:00
Thibault Saunier
82a970f415
ges: fix G_DECLARE_FINAL_TYPE -Werror with clang
...
Also fix wrong casing the `G_DECLARE` for GESDemux.
../subprojects/gst-editing-services/plugins/ges/gessrc.c:56:1: warning: unused function 'GES_SRC' [-Wunused-function]
G_DECLARE_FINAL_TYPE (GESSrc, ges_src, GES, SRC, GESBaseBin);
^
/usr/include/glib-2.0/gobject/gtype.h:1405:33: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) { \
^
<scratch space>:39:1: note: expanded from here
GES_SRC
^
../subprojects/gst-editing-services/plugins/ges/gessrc.c:56:1: warning: unused function 'GES_IS_SRC' [-Wunused-function]
/usr/include/glib-2.0/gobject/gtype.h:1407:26: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) { \
^
<scratch space>:42:1: note: expanded from here
GES_IS_SRC
^
../subprojects/gst-editing-services/plugins/ges/gesdemux.c:50:1: warning: unused function 'GES_Demux' [-Wunused-function]
G_DECLARE_FINAL_TYPE (GESDemux, ges_demux, GES, Demux, GESBaseBin);
^
/usr/include/glib-2.0/gobject/gtype.h:1405:33: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) { \
^
<scratch space>:72:1: note: expanded from here
GES_Demux
^
../subprojects/gst-editing-services/plugins/ges/gesdemux.c:50:1: warning: unused function 'GES_IS_Demux' [-Wunused-function]
/usr/include/glib-2.0/gobject/gtype.h:1407:26: note: expanded from macro 'G_DECLARE_FINAL_TYPE'
static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) { \
^
<scratch space>:75:1: note: expanded from here
GES_IS_Demux
^
2019-08-27 10:43:11 -04:00
Thibault Saunier
19426863e9
gesdemux: Fix querying if we need stack reloading
...
We are probing upstream queries, not downstream ones
This was clearly a small test that slipt into previous commit
2019-08-20 15:29:57 -04:00
Thibault Saunier
91dd3e44a7
doc: Add some missing Since:
2019-08-12 10:10:22 -04:00
Thibault Saunier
f51f2f70de
gesdemux: Compute sinkpad caps based on formatter mimetypes
...
Implement lazy loading asset cache so gesdemux use the formatters
assets while GES hasn't been initialized.
And set extensions to temporary files as some formatters require
the information (otio)
2019-07-26 13:48:51 -04:00
Thibault Saunier
abb4f005e3
Mark nested timeline assets as such
...
Adding a property to let the application know
Also make sure that the duration of nested timeline assets is reported
as CLOCK_TIME_NONE as those are extended as necessary.
And make a difference between asset duration and their max duration
As nested timelines can be extended 'infinitely' those max duration
is GST_CLOCK_TIME_NONE, but their duration is the real duration of
the timeline.
2019-07-26 13:48:51 -04:00
Thibault Saunier
6f9e6d3586
formatter: Enhance error reporting
...
And add a "loading-error" signal in GESProject so we can report
issue when loading async elements for the timeline.
2019-07-26 13:48:51 -04:00
Thibault Saunier
18eedb3c28
gesdemux: Add a testsrc to timelines if parent nleobject duration is too long
2019-07-26 13:48:51 -04:00
Thibault Saunier
a55296314c
nle: Handle nested timelines update when file changes
...
When we have nested timelines, we need to make sure the underlying
formatted file is reloaded when commiting the main composition to
take into account the new timeline.
In other to make the implementation as simple as possible we make
sure that whenever the toplevel composition is commited, the decodebin
holding the gesdemux is torn down so that a new demuxer is created
with the new content of the timeline.
To do that a we do a NleCompositionQueryNeedsTearDown query to which
gesdemux answers leading to a full nlecomposition stack
deactivation/activation cycle.
2019-07-26 13:48:51 -04:00
Thibault Saunier
902b8ad98e
gesdemux: Detect recursively loading the same project file
...
And error out when it is the case.
2019-07-05 18:30:41 -04:00
Thibault Saunier
e9e24a23ba
gesdemux: Create proper stream-ids
2019-07-05 18:30:41 -04:00
Thibault Saunier
6d895ea111
demux: Create timeline from the streaming thread
...
First marshilling it to the main thread is dangerous as it is a blocking
operation and it should never happen there.
The asset cache is MT safe now so it is possible to load the timeline
from that thread directly
2019-07-05 17:57:04 -04:00
Thibault Saunier
61c952c714
uri-asset: Implement multi threading support
...
Making sure to have 1 GstDiscoverer per thread.
Use that new feature in gesdemux by loading the timeline directly from
the streaming thread. Modifying the timeline is not supported allowed
anyway.
2019-07-05 17:56:03 -04:00
Thibault Saunier
cb96d0287e
Use the new GstDiscoverer caching feature
2019-07-05 17:54:29 -04:00
Thibault Saunier
5ea4667be6
Implement and use the GstStream API
2019-07-05 17:53:15 -04:00
Thibault Saunier
63a49edf1f
docs: Generate ges plugin doc
2019-07-05 17:52:50 -04:00
Thibault Saunier
aca18a29b5
plugins:ges: Factor out a GESBaseBin class
...
And use it in both gesdemux and gessrc
2019-07-05 17:50:57 -04:00
Thibault Saunier
db97b2c921
gesdemux: Emit no-more-pad as required
2019-07-05 17:50:52 -04:00
Thibault Saunier
93289ac406
gesdemux: Properly combine flows
2019-07-05 17:49:07 -04:00
Thibault Saunier
cf43d9b6d4
plugin: Make use of G_DECLARE
...
And remove useless .h files
2019-07-05 17:48:23 -04:00
Thibault Saunier
d0b4b87b1e
docs: Add gstges plugin
2019-06-06 09:48:39 -04:00
Nirbheek Chauhan
63ee426207
meson: Generate a pkgconfig file for the GES plugin
...
This was missing due to a typo.
2019-04-20 01:36:10 +05:30
Thibault Saunier
7261f714fc
Some copyright fixing
2019-03-15 23:51:55 +00:00
Tim-Philipp Müller
9c8357b0f8
gesdemux: don't use deprecated gst_uri_construct()
...
Fixes #64
2019-03-04 11:07:51 +00:00
Sebastian Dröge
f6efb87a78
ges: Link ges plugin to libgstpbutils
...
/usr/bin/ld: .libs/libgstges_la-gesdemux.o: in function `ges_timeline_new_from_uri_from_main_thread':
./plugins/ges/gesdemux.c:279: undefined reference to `gst_discoverer_new'
/usr/bin/ld: ./plugins/ges/gesdemux.c:288: undefined reference to `gst_discoverer_start'
2019-02-28 13:09:38 +02:00
Tim-Philipp Müller
87f99d34bc
plugins: add autotools build for new ges plugin
2019-02-26 14:00:33 +00:00
Nirbheek Chauhan
50d58678e0
misc: Fix warnings on Cerbero's ancient MinGW
...
gesdemux.c:297:3: error: value computed is not used [-Werror=unused-value]
2019-02-06 00:31:44 +05:30
Thibault Saunier
62dba13ccf
plugins: Add an a gesdemux element to 'demux' serialized timelines
2019-01-29 00:06:32 +00:00
Thibault Saunier
4b324da3f4
plugins: implement a gessrc element useable from playbin
...
This is a new simple GstBin that can handle the ges:// uris
and will directly expose the srcppads of the tracks present in the
timeline.
2019-01-29 00:06:32 +00:00