1. 10 Apr, 2020 2 commits
  2. 19 Mar, 2020 1 commit
  3. 11 Mar, 2020 1 commit
    • Thibault Saunier's avatar
      nle: Delay marking object as not in composition · 41be342b
      Thibault Saunier authored
      Instead of doing it at the time of resetting `object->in_composition`
      when user calls `gst_bin_remove` do it after we actually removed
      it from the object thread, and do it in the `nle_object_reset`
      method where it belongs
      
      Fixes #96
      41be342b
  4. 19 Feb, 2020 1 commit
    • Thibault Saunier's avatar
      nlesource: When standalone consider object.duration==0 as not set · b7c4171f
      Thibault Saunier authored
      nleobject.duration defaults to 0, but this is pretty unintuitive for
      end user in the case nlesource is use standalone, just consider
      duration=0 equivalent to duration=GST_CLOCK_TIME_NONE as it makes
      the element much simpler to use, we could actually forbid 0 as a value
      in the future.
      
      Also take into account potential CLOCK_TIME_NONE
      b7c4171f
  5. 12 Feb, 2020 4 commits
    • Thibault Saunier's avatar
      plugins:ges: Fix pushing tags after e8c782d119eccf364fa24812cdc90c40f60d65d6 · f30b7f05
      Thibault Saunier authored
      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.
      f30b7f05
    • Thibault Saunier's avatar
      nlecomposition: Optimize prerolling when using nested compositions · 3c317651
      Thibault Saunier authored
      When a composition is nested into anotherone, we *know* that the
      toplevel composition is going to send a stack initializing seek,
      we can thus avoid sending it on the subcomposition itself when
      prerolling. This avoid seeking roundtrips and we now have one and
      only one seek travelling in the overall pipeline (after it has
      prerolled).
      3c317651
    • Thibault Saunier's avatar
      nlesource: Fix seeks when used standalone · 32de7d85
      Thibault Saunier authored
      The 'start' of nleobject is in the 'composition' scale, inpoint is in
      the media scale, when outside a composition, a nleobject->start value
      doesn't mean anything.
      32de7d85
    • Thibault Saunier's avatar
      nle: Seek the whole stack on initialization · c63586e0
      Thibault Saunier authored
      Instead of seeking each nleobject separately to setup new stack, wait
      for the whole stack to preroll and then seek that newly setup stack,
      leading to the same code path and seek 'tweaking' as when processing
      a seek on the composition (without stack changes).
      
      This is mandatory to properly handle filter that tweak segments to handle
      time remapping for example.
      c63586e0
  6. 11 Feb, 2020 1 commit
  7. 24 Oct, 2019 1 commit
    • Niels De Graef's avatar
      Don't pass default GLib marshallers for signals · 35d140ad
      Niels De Graef authored
      By passing NULL to `g_signal_new` instead of a marshaller, GLib will
      actually internally optimize the signal (if the marshaller is available
      in GLib itself) by also setting the valist marshaller. This makes the
      signal emission a bit more performant than the regular marshalling,
      which still needs to box into `GValue` and call libffi in case of a
      generic marshaller.
      
      Note that for custom marshallers, one would use
      `g_signal_set_va_marshaller()` with the valist marshaller instead.
      35d140ad
  8. 22 Oct, 2019 1 commit
  9. 13 Oct, 2019 1 commit
  10. 01 Oct, 2019 1 commit
  11. 28 Aug, 2019 1 commit
    • Matthew Waters's avatar
      build: also suppress unused-function warnings about g_autoptr · c2bba9e0
      Matthew Waters authored
      ../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
      ^
      c2bba9e0
  12. 27 Aug, 2019 1 commit
    • Thibault Saunier's avatar
      ges: fix G_DECLARE_FINAL_TYPE -Werror with clang · 82a970f4
      Thibault Saunier authored
      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
      ^
      82a970f4
  13. 20 Aug, 2019 1 commit
  14. 12 Aug, 2019 1 commit
  15. 26 Jul, 2019 5 commits
    • Thibault Saunier's avatar
      gesdemux: Compute sinkpad caps based on formatter mimetypes · f51f2f70
      Thibault Saunier authored
      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)
      f51f2f70
    • Thibault Saunier's avatar
      Mark nested timeline assets as such · abb4f005
      Thibault Saunier authored
      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.
      abb4f005
    • Thibault Saunier's avatar
      formatter: Enhance error reporting · 6f9e6d35
      Thibault Saunier authored
      And add a "loading-error" signal in GESProject so we can report
      issue when loading async elements for the timeline.
      6f9e6d35
    • Thibault Saunier's avatar
    • Thibault Saunier's avatar
      nle: Handle nested timelines update when file changes · a5529631
      Thibault Saunier authored
      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.
      a5529631
  16. 05 Jul, 2019 17 commits