1. 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
  2. 05 Jul, 2019 20 commits
  3. 06 Jun, 2019 1 commit
  4. 29 May, 2019 1 commit
  5. 13 May, 2019 1 commit
  6. 19 Apr, 2019 1 commit
  7. 15 Mar, 2019 3 commits
    • Thibault Saunier's avatar
      Some copyright fixing · 7261f714
      Thibault Saunier authored
      7261f714
    • Thibault Saunier's avatar
      f255ae72
    • Thibault Saunier's avatar
      nlesource: Protect seeks from tear down · dabcc3b4
      Thibault Saunier authored
      Otherwise there is a race where we trigger the seek at the exact
      same time the composition is being teared down potentially leading
      to basesrc restarting its srcpad task which ends up being leaked.
      
      Fixes ges.playback.scrub_backward_seeking.test_title.audio_video.vorbis_theora_ogg
      and probably all its friends timeouting with the following stack trace:
      
           (gdb) t a a bt
      
           Thread 4 (Thread 0x7f5962acd700 (LWP 19997)):
           #0  0x00007f5976713efd in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
           #1  0x00007f5976a9d3f3 in g_cond_wait (cond=cond@entry=0x7f5938125410, mutex=mutex@entry=0x7f59381253c8) at gthread-posix.c:1402
           #2  0x00007f5976c9e26b in gst_task_func (task=0x7f59381253b0 [GstTask]) at ../subprojects/gstreamer/gst/gsttask.c:313
           #3  0x00007f5976a7ecb3 in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
           #4  0x00007f5976a7e2aa in g_thread_proxy (data=0x7f5954071d40) at gthread.c:784
           #5  0x00007f59767ea58e in start_thread (arg=<optimized out>) at pthread_create.c:486
           #6  0x00007f59767196a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      
           Thread 3 (Thread 0x7f5963fff700 (LWP 19995)):
           #0  0x00007f597670e421 in __GI___poll (fds=0xe32da0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
           #1  0x00007f5976a553a6 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0xe32da0, timeout=<optimized out>, context=0xe31ff0) at gmain.c:4221
           #2  0x00007f5976a553a6 in g_main_context_iterate (context=0xe31ff0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3915
           #3  0x00007f5976a55762 in g_main_loop_run (loop=0xe32130) at gmain.c:4116
           #4  0x00007f59768db10a in gdbus_shared_thread_func (user_data=0xe31fc0) at gdbusprivate.c:275
           #5  0x00007f5976a7e2aa in g_thread_proxy (data=0xe1b8a0) at gthread.c:784
           #6  0x00007f59767ea58e in start_thread (arg=<optimized out>) at pthread_create.c:486
           #7  0x00007f59767196a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      
           Thread 2 (Thread 0x7f5968dcc700 (LWP 19994)):
           #0  0x00007f597670e421 in __GI___poll (fds=0xe1bcc0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
           #1  0x00007f5976a553a6 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0xe1bcc0, timeout=<optimized out>, context=0xe1b350) at gmain.c:4221
           #2  0x00007f5976a553a6 in g_main_context_iterate (context=context@entry=0xe1b350, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3915
           #3  0x00007f5976a554d0 in g_main_context_iteration (context=0xe1b350, may_block=may_block@entry=1) at gmain.c:3981
           #4  0x00007f5976a55521 in glib_worker_main (data=<optimized out>) at gmain.c:5861
           #5  0x00007f5976a7e2aa in g_thread_proxy (data=0xe1b800) at gthread.c:784
           #6  0x00007f59767ea58e in start_thread (arg=<optimized out>) at pthread_create.c:486
           #7  0x00007f59767196a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      
           Thread 1 (Thread 0x7f5975df4fc0 (LWP 19993)):
           #0  0x00007f5976713efd in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
           #1  0x00007f5976a9d3f3 in g_cond_wait (cond=cond@entry=0xe34020, mutex=0xe39b80) at gthread-posix.c:1402
           #2  0x00007f5976a7f41c in g_thread_pool_free (pool=0xe34000, immediate=0, wait_=<optimized out>) at gthreadpool.c:776
           #3  0x00007f5976c9f1ca in default_cleanup (pool=0xe256b0 [GstTaskPool]) at ../subprojects/gstreamer/gst/gsttaskpool.c:89
           #4  0x00007f5976c9e32d in init_klass_pool (klass=<optimized out>) at ../subprojects/gstreamer/gst/gsttask.c:161
           #5  0x00007f5976c9e502 in gst_task_cleanup_all () at ../subprojects/gstreamer/gst/gsttask.c:381
           #6  0x00007f5976c214f4 in gst_deinit () at ../subprojects/gstreamer/gst/gst.c:1095
           #7  0x000000000040394f in main (argc=6, argv=<optimized out>) at ../subprojects/gst-editing-services/tools/ges-launch.c:94
      dabcc3b4
  8. 06 Mar, 2019 3 commits
  9. 04 Mar, 2019 1 commit
  10. 28 Feb, 2019 1 commit
    • Sebastian Dröge's avatar
      ges: Link ges plugin to libgstpbutils · f6efb87a
      Sebastian Dröge authored
      /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'
      f6efb87a
  11. 26 Feb, 2019 1 commit
  12. 05 Feb, 2019 1 commit
  13. 29 Jan, 2019 1 commit