GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2021-09-24T12:20:46Zhttps://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/2PiTiVi core does not handle playing audio clips properly at non-native speeds.2021-09-24T12:20:46ZBugzilla Migration UserPiTiVi core does not handle playing audio clips properly at non-native speeds.## Submitted by Brandon Lewis
**[Link to original bug (#636235)](https://bugzilla.gnome.org/show_bug.cgi?id=636235)**
## Description
In theory the only thing required to cause a clip to play back at a speed greater than or less than...## Submitted by Brandon Lewis
**[Link to original bug (#636235)](https://bugzilla.gnome.org/show_bug.cgi?id=636235)**
## Description
In theory the only thing required to cause a clip to play back at a speed greater than or less than it's native rate is to set the media duration to something other than the duration.
To test this I created a pitivi project file (attached) with a single clip and then hand-edited the media duration of the clip such that it should play at 50% speed. While the video portion of the clip does seem to slow down, the audio continues to play back at its normal rate. There are plenty of other issues besides, but the playback issue mystifies me because a simple test script (also attached) is actually able to adjust playback speed using this method.
### Blocking
* [Bug 593828](https://bugzilla.gnome.org/show_bug.cgi?id=593828)https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/1Looping feature for gnlobject2021-09-24T12:20:46ZBugzilla Migration UserLooping feature for gnlobject## Submitted by Laszlo Pandy
**[Link to original bug (#370836)](https://bugzilla.gnome.org/show_bug.cgi?id=370836)**
## Description
Currently, making loops using gnonlin requires making many gnlsources and placing them one after ano...## Submitted by Laszlo Pandy
**[Link to original bug (#370836)](https://bugzilla.gnome.org/show_bug.cgi?id=370836)**
## Description
Currently, making loops using gnonlin requires making many gnlsources and placing them one after another in the timeline. This is not optimal because the creation of many gnlsources will use more resources than necessary, and to move or change the source would require updating all the gnlsources. Gnlobject should handle looping by itself like so:
1. Create a gnlfilesource and set media-start to 0, media-stop to 5.
2. Set start to 0 and duration to 15.
3. Now when playing, the section of the file frrm 0 to 5 seconds should be played 3 times.
In other words, when the gnlfilesource reaches media-stop (at 5 seconds), it should go back to media-start (0 seconds) and play the file again. This is repeated until duration is exceeded, at which point the gnlfilesource will be silent.https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/50Add a [--image1--[-transition]--image2--] test2021-09-24T12:17:18ZThibault Sauniertsaunier@igalia.comAdd a [--image1--[-transition]--image2--] testWe should have a test where we test transition between 2 image filesWe should have a test where we test transition between 2 image fileshttps://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/51Write up a description of GESExtractable2021-09-24T12:17:18ZThibault Sauniertsaunier@igalia.comWrite up a description of GESExtractableWe should have a test where we test transition between 2 image filesWe should have a test where we test transition between 2 image fileshttps://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/54Random timeout on `scrub_seek` after the `stop` action has been execute2021-09-24T12:17:17ZJordan PetridіsRandom timeout on `scrub_seek` after the `stop` action has been executeFails locally and on the CI, reproduced with the following:
```sh
#! /bin/bash
set -eu
export TEST_SUITE="ges.playback.scrub_backward_seeking.test_mixing.audio_video.vorbis_vp8_webm"
export MAIN_DIR="$PWD/validate-output"
export GST_VA...Fails locally and on the CI, reproduced with the following:
```sh
#! /bin/bash
set -eu
export TEST_SUITE="ges.playback.scrub_backward_seeking.test_mixing.audio_video.vorbis_vp8_webm"
export MAIN_DIR="$PWD/validate-output"
export GST_VALIDATE_CONFIG="core,action=set-rank,name=vaapi,rank=0"
./gst-uninstalled.py gst-validate-launcher $TEST_SUITE --n-runs=300 -F -fs --mute --no-display --dump-on-failure --meson-no-rebuild -M "$PWD/validate-output/"
```
And the output
```sh
ges.playback.scrub_backward_seeking.test_mixing.audio_video.vorbis_vp8_webm: Timeout 'Application timed out: 30.0 secs'
You can reproduce with: GST_VALIDATE_SCENARIOS_PATH='/home/alatiera/centricular/gst-build/prefix/share/gstreamer-1.0/validate/scenarios:/home/alatiera/centricular/gst-build/subprojects/gst-devtools/validate/data/scenarios' DISPLAY=':27' GST_GL_XINITTHREADS='1' GST_VALIDATE_SCENARIO='scrub_backward_seeking' ges-launch-1.0 --mute --ges-sample-path-recurse file:///home/alatiera/centricular/gst-build/validate-output/gst-integration-testsuites/medias/defaults -l file:///home/alatiera/centricular/gst-build/validate-output/gst-integration-testsuites/ges/ges-projects/vorbis_vp8_webm/test_mixing.audio_video.vorbis_vp8_webm.xges
Dumping log files on failure
Dumping contents of /home/alatiera/centricular/gst-build/validate-output/logs/ges/playback/scrub_backward_seeking/test_mixing/audio_video/vorbis_vp8_webm
=================
Test name: ges.playback.scrub_backward_seeking.test_mixing.audio_video.vorbis_vp8_webm
Command: 'ges-launch-1.0 --mute --ges-sample-path-recurse file:///home/alatiera/centricular/gst-build/validate-output/gst-integration-testsuites/medias/defaults -l file:///home/alatiera/centricular/gst-build/validate-output/gst-integration-testsuites/ges/ges-projects/vorbis_vp8_webm/test_mixing.audio_video.vorbis_vp8_webm.xges'
=================
0:00:00.060612934 14674 0x159a830 ERROR basesrc gstbasesrc.c:3848:gst_base_src_activate_pull:<source> Failed to start in pull mode
Loading project from : file:///home/alatiera/centricular/gst-build/validate-output/gst-integration-testsuites/ges/ges-projects/vorbis_vp8_webm/test_mixing.audio_video.vorbis_vp8_webm.xges
=========================================
Running scenario scrub_backward_seeking on pipeline gespipeline0
=========================================
Executing pause (
- playback-time=0
)
-> Action pause done (duration: 0:00:00.268782209)
Executing (subaction)seek (
- playback-time=0
- start=0:00:01.250000004
- flags=accurate+flush
)
<position: 0:00:01.250000004 duration: 0:00:01.750000001 speed: 1.000000 />
-> Action seek done (duration: 0:00:00.303759880)
Executing (subaction)seek (
- playback-time=0
- start=0:00:01.150000004
- repeat="min\(10\,\ \(duration\ -\ 0.6\)\)/0.1"
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.452442292)
Executing (subaction)seek (
- playback-time=0
- start=0:00:01.050000004
- repeat="min\(10\,\ \(duration\ -\ 0.6\)\)/0.1"
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.066751459)
Executing (subaction)seek (
- playback-time=0
- start=0:00:00.950000004
- repeat="min\(10\,\ \(duration\ -\ 0.6\)\)/0.1"
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.579075784)
Executing (subaction)seek (
- playback-time=0
- start=0:00:00.850000004
- repeat="min\(10\,\ \(duration\ -\ 0.6\)\)/0.1"
- flags=accurate+flush
)
<position: 0:00:00.950000004 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:00.950000004 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:00.850000004 duration: 0:00:01.750000001 speed: 1.000000 />
-> Action seek done (duration: 0:00:00.724583296)
Executing (subaction)seek (
- playback-time=0
- start=0:00:00.750000004
- repeat="min\(10\,\ \(duration\ -\ 0.6\)\)/0.1"
- flags=accurate+flush
)
<position: 0:00:00.750000004 duration: 0:00:01.750000001 speed: 1.000000 />
-> Action seek done (duration: 0:00:00.237088112)
Executing (subaction)seek (
- playback-time=0
- start=0:00:00.650000004
- repeat="min\(10\,\ \(duration\ -\ 0.6\)\)/0.1"
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.339718489)
Executing (subaction)seek (
- playback-time=0
- start=0:00:00.550000004
- repeat="min\(10\,\ \(duration\ -\ 0.6\)\)/0.1"
- flags=accurate+flush
)
<position: 0:00:00.650000004 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:00.550000004 duration: 0:00:01.750000001 speed: 1.000000 />
-> Action seek done (duration: 0:00:00.388388080)
Executing (subaction)seek (
- playback-time=0
- start=0:00:00.450000004
- repeat="min\(10\,\ \(duration\ -\ 0.6\)\)/0.1"
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.360033990)
Executing (subaction)seek (
- playback-time=0
- start=0:00:00.350000004
- repeat="min\(10\,\ \(duration\ -\ 0.6\)\)/0.1"
- flags=accurate+flush
)
<position: 0:00:00.450000004 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:00.450000004 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:00.350000004 duration: 0:00:01.750000001 speed: 1.000000 />
-> Action seek done (duration: 0:00:00.738027833)
Executing (subaction)seek (
- playback-time=0
- start=0:00:00.250000004
- repeat="min\(10\,\ \(duration\ -\ 0.6\)\)/0.1"
- flags=accurate+flush
)
<position: 0:00:00.350000004 duration: 0:00:01.750000001 speed: 1.000000 />
-> Action seek done (duration: 0:00:00.182726709)
Executing (subaction)seek (
- playback-time=0
- start=0:00:00.150000004
- repeat="min\(10\,\ \(duration\ -\ 0.6\)\)/0.1"
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.234517629)
Executing play (
- playback-time=0
)
<position: 0:00:00.250000000 duration: 0:00:01.750000001 speed: 1.000000 />
-> Action play done (duration: 0:00:00.172278204)
<position: 0:00:00.500000000 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:00.750000000 duration: 0:00:01.750000001 speed: 1.000000 />
Executing stop (
- playback-time=1
)
<position: 0:00:01.000000000 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.000000000 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.250000000 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.500000000 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000000 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
<position: 0:00:01.750000001 duration: 0:00:01.750000001 speed: 1.000000 />
== Stack trace: ==
[New LWP 14676]
[New LWP 14677]
[New LWP 14682]
[New LWP 14683]
[New LWP 14708]
[New LWP 14745]
[New LWP 14746]
[New LWP 14754]
[New LWP 14756]
[New LWP 14860]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
Missing separate debuginfo for /lib64/libstdc++.so.6
Try: dnf --enablerepo='*debug*' install /usr/lib/debug/.build-id/ee/395bf3ab03fcda587e7439f1b88f22cc32a815.debug
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
0x00007fff2616c94e in ?? ()
Thread 11 (Thread 0x7f5108ff9700 (LWP 14860)):
#0 0x00007f5162874efd in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5162bfa003 in g_cond_wait (cond=cond@entry=0x7f509c0350b0, mutex=mutex@entry=0x7f509c035068) at gthread-posix.c:1402
#2 0x00007f5162deae4b in gst_task_func (task=0x7f509c035050 [GstTask]) at ../subprojects/gstreamer/gst/gsttask.c:313
#3 0x00007f5162bdbe93 in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#4 0x00007f5162bdb48a in g_thread_proxy (data=0x7f50ec003ed0) at gthread.c:784
#5 0x00007f516294b58e in start_thread (arg=<optimized out>) at pthread_create.c:486
#6 0x00007f516287a6a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 10 (Thread 0x7f512effd700 (LWP 14756)):
#0 0x00007f5162874efd in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5162bfa003 in g_cond_wait (cond=cond@entry=0x7f50a0036530, mutex=mutex@entry=0x7f50a00364e8) at gthread-posix.c:1402
#2 0x00007f5162deae4b in gst_task_func (task=0x7f50a00364d0 [GstTask]) at ../subprojects/gstreamer/gst/gsttask.c:313
#3 0x00007f5162bdbe93 in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#4 0x00007f5162bdb48a in g_thread_proxy (data=0x7f512000c050) at gthread.c:784
#5 0x00007f516294b58e in start_thread (arg=<optimized out>) at pthread_create.c:486
#6 0x00007f516287a6a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 9 (Thread 0x7f512a99c700 (LWP 14754)):
#0 0x00007f5162874efd in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5162bfa003 in g_cond_wait (cond=cond@entry=0x7f50e4078ad0, mutex=mutex@entry=0x7f50e4078a88) at gthread-posix.c:1402
#2 0x00007f5162deae4b in gst_task_func (task=0x7f50e4078a70 [GstTask]) at ../subprojects/gstreamer/gst/gsttask.c:313
#3 0x00007f5162bdbe93 in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#4 0x00007f5162bdb48a in g_thread_proxy (data=0x7f510c00c8f0) at gthread.c:784
#5 0x00007f516294b58e in start_thread (arg=<optimized out>) at pthread_create.c:486
#6 0x00007f516287a6a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 8 (Thread 0x7f510bfff700 (LWP 14746)):
#0 0x00007f5162874efd in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5162bfa003 in g_cond_wait (cond=cond@entry=0x7f5144021ad0, mutex=mutex@entry=0x7f5144021a88) at gthread-posix.c:1402
#2 0x00007f5162deae4b in gst_task_func (task=0x7f5144021a70 [GstTask]) at ../subprojects/gstreamer/gst/gsttask.c:313
#3 0x00007f5162bdbe93 in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#4 0x00007f5162bdb48a in g_thread_proxy (data=0x7f510c00cf70) at gthread.c:784
#5 0x00007f516294b58e in start_thread (arg=<optimized out>) at pthread_create.c:486
#6 0x00007f516287a6a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 7 (Thread 0x7f512a19b700 (LWP 14745)):
#0 0x00007f5162874efd in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5162bfa003 in g_cond_wait (cond=cond@entry=0x7f51440219b0, mutex=mutex@entry=0x7f5144021968) at gthread-posix.c:1402
#2 0x00007f5162deae4b in gst_task_func (task=0x7f5144021950 [GstTask]) at ../subprojects/gstreamer/gst/gsttask.c:313
#3 0x00007f5162bdbe93 in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#4 0x00007f5162bdb48a in g_thread_proxy (data=0x7f510c00ce80) at gthread.c:784
#5 0x00007f516294b58e in start_thread (arg=<optimized out>) at pthread_create.c:486
#6 0x00007f516287a6a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 6 (Thread 0x7f512e7fc700 (LWP 14708)):
#0 0x00007f5162874efd in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5162bfa003 in g_cond_wait (cond=cond@entry=0x7f50a00360b0, mutex=mutex@entry=0x7f50a0036068) at gthread-posix.c:1402
#2 0x00007f5162deae4b in gst_task_func (task=0x7f50a0036050 [GstTask]) at ../subprojects/gstreamer/gst/gsttask.c:313
#3 0x00007f5162bdbe93 in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#4 0x00007f5162bdb48a in g_thread_proxy (data=0x180af70) at gthread.c:784
#5 0x00007f516294b58e in start_thread (arg=<optimized out>) at pthread_create.c:486
#6 0x00007f516287a6a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 5 (Thread 0x7f514cf1e700 (LWP 14683)):
#0 0x00007f5162874efd in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5162bfa003 in g_cond_wait (cond=0x18aa590, mutex=0x18aa588) at gthread-posix.c:1402
#2 0x00007f5154378114 in _execute_actions (comp=0x18aa600 [NleComposition]) at ../subprojects/gst-editing-services/plugins/nle/nlecomposition.c:379
#3 0x00007f5162deac71 in gst_task_func (task=0x7f5144021050 [GstTask]) at ../subprojects/gstreamer/gst/gsttask.c:328
#4 0x00007f5162bdbe93 in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#5 0x00007f5162bdb48a in g_thread_proxy (data=0x7f513c004cf0) at gthread.c:784
#6 0x00007f516294b58e in start_thread (arg=<optimized out>) at pthread_create.c:486
#7 0x00007f516287a6a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 4 (Thread 0x7f514d71f700 (LWP 14682)):
#0 0x00007f5162874efd in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f5162bfa003 in g_cond_wait (cond=0x18aa260, mutex=0x18aa258) at gthread-posix.c:1402
#2 0x00007f5154378114 in _execute_actions (comp=0x18aa2d0 [NleComposition]) at ../subprojects/gst-editing-services/plugins/nle/nlecomposition.c:379
#3 0x00007f5162deac71 in gst_task_func (task=0x183e710 [GstTask]) at ../subprojects/gstreamer/gst/gsttask.c:328
#4 0x00007f5162bdbe93 in g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:307
#5 0x00007f5162bdb48a in g_thread_proxy (data=0x7f513c004770) at gthread.c:784
#6 0x00007f516294b58e in start_thread (arg=<optimized out>) at pthread_create.c:486
#7 0x00007f516287a6a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 3 (Thread 0x7f514ffff700 (LWP 14677)):
#0 0x00007f516286f421 in __GI___poll (fds=0x15c8e40, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007f5162bb25a6 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x15c8e40, timeout=<optimized out>, context=0x15c7c30) at gmain.c:4221
#2 0x00007f5162bb25a6 in g_main_context_iterate (context=0x15c7c30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3915
#3 0x00007f5162bb2962 in g_main_loop_run (loop=0x15c7d70) at gmain.c:4116
#4 0x00007f5162a3979a in gdbus_shared_thread_func (user_data=0x15c7c00) at gdbusprivate.c:275
#5 0x00007f5162bdb48a in g_thread_proxy (data=0x15b18a0) at gthread.c:784
#6 0x00007f516294b58e in start_thread (arg=<optimized out>) at pthread_create.c:486
#7 0x00007f516287a6a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 2 (Thread 0x7f5154eb4700 (LWP 14676)):
#0 0x00007f516286f421 in __GI___poll (fds=0x15b1c00, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007f5162bb25a6 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x15b1c00, timeout=<optimized out>, context=0x15b13a0) at gmain.c:4221
#2 0x00007f5162bb25a6 in g_main_context_iterate (context=context@entry=0x15b13a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3915
#3 0x00007f5162bb26d0 in g_main_context_iteration (context=0x15b13a0, may_block=may_block@entry=1) at gmain.c:3981
#4 0x00007f5162bb2721 in glib_worker_main (data=<optimized out>) at gmain.c:5861
#5 0x00007f5162bdb48a in g_thread_proxy (data=0x15b1800) at gthread.c:784
#6 0x00007f516294b58e in start_thread (arg=<optimized out>) at pthread_create.c:486
#7 0x00007f516287a6a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 1 (Thread 0x7f5161edc880 (LWP 14674)):
#0 0x00007fff2616c94e in ()
#1 0x00007f5162888692 in __GI___clock_gettime (clock_id=clock_id@entry=1, tp=tp@entry=0x7fff2607d2e0) at ../sysdeps/unix/clock_gettime.c:115
#2 0x00007f5162df9ca1 in gst_util_get_timestamp () at ../subprojects/gstreamer/gst/gstutils.c:3479
#3 0x00007f5162dbc965 in gst_pad_query (pad=pad@entry=0x7f51180293b0 [GstProxyPad], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4050
#4 0x00007f5162dbcfbb in gst_pad_peer_query (pad=pad@entry=0x7f513c01f320 [GstPad], query=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4199
#5 0x00007f5162dbd59c in query_forward_func (pad=pad@entry=0x7f513c01f320 [GstPad], data=data@entry=0x7fff2607d500) at ../subprojects/gstreamer/gst/gstpad.c:3372
#6 0x00007f5162dbb43e in gst_pad_forward (pad=pad@entry=0x7f513c01f570 [GstPad], forward=forward@entry=0x7f5162dbd4e0 <query_forward_func>, user_data=user_data@entry=0x7fff2607d500) at ../subprojects/gstreamer/gst/gstpad.c:3004
#7 0x00007f5162dbb832 in gst_pad_query_default (pad=pad@entry=0x7f513c01f570 [GstPad], parent=parent@entry=0x7f513c02a910 [GstQueue], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:3443
#8 0x00007f51545f5091 in gst_queue_handle_src_query (pad=0x7f513c01f570 [GstPad], parent=0x7f513c02a910 [GstQueue], query=0x7f5140086f20) at ../subprojects/gstreamer/plugins/elements/gstqueue.c:1619
#9 0x00007f5162cc5be9 in gst_validate_pad_monitor_query_func (pad=0x7f513c01f570 [GstPad], parent=0x7f513c02a910 [GstQueue], query=0x7f5140086f20) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2376
#10 0x00007f5162dbc870 in gst_pad_query (pad=pad@entry=0x7f513c01f570 [GstPad], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4067
#11 0x00007f5162dbcfbb in gst_pad_peer_query (pad=pad@entry=0x7f510c00ae40 [GstGhostPad], query=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4199
#12 0x00007f5162dbd59c in query_forward_func (pad=pad@entry=0x7f510c00ae40 [GstGhostPad], data=data@entry=0x7fff2607d880) at ../subprojects/gstreamer/gst/gstpad.c:3372
#13 0x00007f5162dbb43e in gst_pad_forward (pad=pad@entry=0x7f5118028ef0 [GstProxyPad], forward=forward@entry=0x7f5162dbd4e0 <query_forward_func>, user_data=user_data@entry=0x7fff2607d880) at ../subprojects/gstreamer/gst/gstpad.c:3004
#14 0x00007f5162dbb832 in gst_pad_query_default (pad=0x7f5118028ef0 [GstProxyPad], parent=<optimized out>, query=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:3443
#15 0x00007f5162dbc870 in gst_pad_query (pad=pad@entry=0x7f5118028ef0 [GstProxyPad], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4067
#16 0x00007f5162dbcfbb in gst_pad_peer_query (pad=pad@entry=0x7f513c058d50 [GstPad], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4199
#17 0x00007f5162747bbb in gst_base_transform_default_query (trans=0x7f513c05a0d0 [GstAudioConvert], direction=GST_PAD_SRC, query=0x7f5140086f20) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
#18 0x00007f5162cc5be9 in gst_validate_pad_monitor_query_func (pad=0x7f513c058fa0 [GstPad], parent=0x7f513c05a0d0 [GstAudioConvert], query=0x7f5140086f20) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2376
#19 0x00007f5162dbc870 in gst_pad_query (pad=pad@entry=0x7f513c058fa0 [GstPad], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4067
#20 0x00007f5162dbcfbb in gst_pad_peer_query (pad=pad@entry=0x7f513c058b00 [GstPad], query=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4199
#21 0x00007f5162dbd59c in query_forward_func (pad=pad@entry=0x7f513c058b00 [GstPad], data=data@entry=0x7fff2607dd70) at ../subprojects/gstreamer/gst/gstpad.c:3372
#22 0x00007f5162dbb43e in gst_pad_forward (pad=pad@entry=0x7f513c0588b0 [GstPad], forward=forward@entry=0x7f5162dbd4e0 <query_forward_func>, user_data=user_data@entry=0x7fff2607dd70) at ../subprojects/gstreamer/gst/gstpad.c:3004
#23 0x00007f5162dbb832 in gst_pad_query_default (pad=pad@entry=0x7f513c0588b0 [GstPad], parent=parent@entry=0x7f513c05a6a0 [GstAudioResample], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:3443
#24 0x00007f514c636dde in gst_audio_resample_query (pad=0x7f513c0588b0 [GstPad], parent=0x7f513c05a6a0 [GstAudioResample], query=0x7f5140086f20) at ../subprojects/gst-plugins-base/gst/audioresample/gstaudioresample.c:1004
#25 0x00007f5162cc5be9 in gst_validate_pad_monitor_query_func (pad=0x7f513c0588b0 [GstPad], parent=0x7f513c05a6a0 [GstAudioResample], query=0x7f5140086f20) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2376
#26 0x00007f5162dbc870 in gst_pad_query (pad=pad@entry=0x7f513c0588b0 [GstPad], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4067
#27 0x00007f5162dbcfbb in gst_pad_peer_query (pad=pad@entry=0x7f513c01fc60 [GstPad], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4199
#28 0x00007f5162747bbb in gst_base_transform_default_query (trans=0x7f513c01ca00 [GstVolume], direction=GST_PAD_SRC, query=0x7f5140086f20) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1557
#29 0x00007f5162cc5be9 in gst_validate_pad_monitor_query_func (pad=0x7f513c0581c0 [GstPad], parent=0x7f513c01ca00 [GstVolume], query=0x7f5140086f20) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2376
#30 0x00007f5162dbc870 in gst_pad_query (pad=pad@entry=0x7f513c0581c0 [GstPad], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4067
#31 0x00007f5162dbcfbb in gst_pad_peer_query (pad=pad@entry=0x7f5118029150 [GstProxyPad], query=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4199
#32 0x00007f5162dbd59c in query_forward_func (pad=pad@entry=0x7f5118029150 [GstProxyPad], data=data@entry=0x7fff2607e3a0) at ../subprojects/gstreamer/gst/gstpad.c:3372
#33 0x00007f5162dbb43e in gst_pad_forward (pad=pad@entry=0x7f510c00b0c0 [GstGhostPad], forward=forward@entry=0x7f5162dbd4e0 <query_forward_func>, user_data=user_data@entry=0x7fff2607e3a0) at ../subprojects/gstreamer/gst/gstpad.c:3004
#34 0x00007f5162dbb832 in gst_pad_query_default (pad=0x7f510c00b0c0 [GstGhostPad], parent=<optimized out>, query=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:3443
#35 0x00007f5154681bd5 in gst_play_sink_convert_bin_query (pad=0x7f510c00b0c0 [GstGhostPad], parent=<optimized out>, query=0x7f5140086f20) at ../subprojects/gst-plugins-base/gst/playback/gstplaysinkconvertbin.c:525
#36 0x00007f5162dbc870 in gst_pad_query (pad=pad@entry=0x7f510c00b0c0 [GstGhostPad], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4067
#37 0x00007f5162dbcfbb in gst_pad_peer_query (pad=0x18d04f0 [GstPad], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstpad.c:4199
#38 0x00007f516273458c in default_element_query (element=0x1895d60 [GstFakeSink], query=0x7f5140086f20) at ../subprojects/gstreamer/libs/gst/base/gstbasesink.c:5034
#39 0x00007f5162d9a503 in gst_element_query (element=0x1895d60 [GstFakeSink], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstelement.c:1959
#40 0x00007f5162d73517 in bin_query_generic_fold (vitem=<optimized out>, ret=0x7fff2607e700, fold=0x7fff2607e790) at ../subprojects/gstreamer/gst/gstbin.c:4232
#41 0x00007f5162daabdc in gst_iterator_fold (it=it@entry=0x15cc810, func=func@entry=0x7f5162d73480 <bin_query_generic_fold>, ret=ret@entry=0x7fff2607e700, user_data=user_data@entry=0x7fff2607e790) at ../subprojects/gstreamer/gst/gstiterator.c:617
#42 0x00007f5162d73ba2 in bin_iterate_fold (bin=bin@entry=0x196cca0 [GstBin], iter=iter@entry=0x15cc810, fold_init=fold_init@entry=0x0, fold_done=fold_done@entry=0x0, fold_func=fold_func@entry=0x7f5162d73480 <bin_query_generic_fold>, fold_data=fold_data@entry=0x7fff2607e790, default_return=0) at ../subprojects/gstreamer/gst/gstbin.c:4259
#43 0x00007f5162d797a8 in gst_bin_query (element=0x196cca0 [GstBin], query=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstbin.c:4379
#44 0x00007f5162d9a503 in gst_element_query (element=0x196cca0 [GstBin], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstelement.c:1959
#45 0x00007f5162d73517 in bin_query_generic_fold (vitem=<optimized out>, ret=0x7fff2607e8d0, fold=0x7fff2607e960) at ../subprojects/gstreamer/gst/gstbin.c:4232
#46 0x00007f5162daabdc in gst_iterator_fold (it=it@entry=0x15cc8c0, func=func@entry=0x7f5162d73480 <bin_query_generic_fold>, ret=ret@entry=0x7fff2607e8d0, user_data=user_data@entry=0x7fff2607e960) at ../subprojects/gstreamer/gst/gstiterator.c:617
#47 0x00007f5162d73ba2 in bin_iterate_fold (bin=bin@entry=0x18860f0 [GstPlaySink], iter=iter@entry=0x15cc8c0, fold_init=fold_init@entry=0x0, fold_done=fold_done@entry=0x0, fold_func=fold_func@entry=0x7f5162d73480 <bin_query_generic_fold>, fold_data=fold_data@entry=0x7fff2607e960, default_return=0) at ../subprojects/gstreamer/gst/gstbin.c:4259
#48 0x00007f5162d797a8 in gst_bin_query (element=0x18860f0 [GstPlaySink], query=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstbin.c:4379
#49 0x00007f5162d9a503 in gst_element_query (element=0x18860f0 [GstPlaySink], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstelement.c:1959
#50 0x00007f5162d73517 in bin_query_generic_fold (vitem=<optimized out>, ret=0x7fff2607eaa0, fold=0x7fff2607eb30) at ../subprojects/gstreamer/gst/gstbin.c:4232
#51 0x00007f5162daabdc in gst_iterator_fold (it=it@entry=0x15ccd90, func=func@entry=0x7f5162d73480 <bin_query_generic_fold>, ret=ret@entry=0x7fff2607eaa0, user_data=user_data@entry=0x7fff2607eb30) at ../subprojects/gstreamer/gst/gstiterator.c:617
#52 0x00007f5162d73ba2 in bin_iterate_fold (bin=bin@entry=0x1880090 [GESPipeline], iter=iter@entry=0x15ccd90, fold_init=fold_init@entry=0x0, fold_done=fold_done@entry=0x0, fold_func=fold_func@entry=0x7f5162d73480 <bin_query_generic_fold>, fold_data=fold_data@entry=0x7fff2607eb30, default_return=0) at ../subprojects/gstreamer/gst/gstbin.c:4259
#53 0x00007f5162d797a8 in gst_bin_query (element=0x1880090 [GESPipeline], query=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstbin.c:4379
#54 0x00007f5162d9a503 in gst_element_query (element=0x1880090 [GESPipeline], query=query@entry=0x7f5140086f20) at ../subprojects/gstreamer/gst/gstelement.c:1959
#55 0x00007f5162cd4a9e in _check_position (rate=0x7fff2607ec28, position=0x7fff2607ec30, act=0x0, scenario=0x197e100 [GstValidateScenario]) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:1584
#56 0x00007f5162cd4a9e in execute_next_action (scenario=scenario@entry=0x197e100 [GstValidateScenario]) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2000
#57 0x00007f5162bb2d31 in g_timeout_dispatch (source=0x18bb950, callback=0x7f5162cd4640 <execute_next_action>, user_data=0x197e100) at gmain.c:4667
#58 0x00007f5162bb226d in g_main_dispatch (context=0x15a3bd0) at gmain.c:3182
#59 0x00007f5162bb226d in g_main_context_dispatch (context=context@entry=0x15a3bd0) at gmain.c:3847
#60 0x00007f5162bb2638 in g_main_context_iterate (context=context@entry=0x15a3bd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3920
#61 0x00007f5162bb26d0 in g_main_context_iteration (context=context@entry=0x15a3bd0, may_block=may_block@entry=1) at gmain.c:3981
#62 0x00007f5162a0c465 in g_application_run (application=0x15a4120 [GESLauncher], argc=argc@entry=6, argv=argv@entry=0x7fff2607ef18) at gapplication.c:2470
#63 0x00000000004038fc in main (argc=6, argv=0x7fff2607ef18) at ../subprojects/gst-editing-services/tools/ges-launch.c:88
[Inferior 1 (process 14674) detached]
```https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/56Implement EDIT_SLIDE2021-09-24T12:17:17ZAlexandru BăluțImplement EDIT_SLIDEThe "slide" edit mode should work like this:
> The object is edited in slide mode. The Slide mode allows you to modify the position of a clip in a timeline without modifying its duration or its in-point, but will modify the duration of t...The "slide" edit mode should work like this:
> The object is edited in slide mode. The Slide mode allows you to modify the position of a clip in a timeline without modifying its duration or its in-point, but will modify the duration of the previous clip and in-point of the following clip so does not modify the overall timeline duration.
http://lazka.github.io/pgi-docs/#GES-1.0/enums.html#GES.EditMode.EDIT_SLIDEhttps://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/61Make all TimelineElement timestamps "frame based" / rational numbers / TimeCodes2021-09-24T12:17:16ZThibault Sauniertsaunier@igalia.comMake all TimelineElement timestamps "frame based" / rational numbers / TimeCodesCurrently all times in GES are GstClockTime, meaning they are on a nanosecond scale.
Since video material is based on frames, for video editing this degree of freedom can
lead to small glitches. In that context it's more accurate to spec...Currently all times in GES are GstClockTime, meaning they are on a nanosecond scale.
Since video material is based on frames, for video editing this degree of freedom can
lead to small glitches. In that context it's more accurate to specify the times by
the number of frames, within a scale defined by the framerate. Note all major video
editing apps use this one way or the other.
This is a proposal to allow GES to base timestamps on output and media files framerates.
For that we can reuse [GstVideoTimeCode] which implements
all the logic for converting Video timecode as standardized by the SMPTE to
`GstClockTime`s. This means that if we write a new API using that object that
logic is already abstracted out even though the VideoTimeCode API doesn't 100%
match our needs and we will probably add some helper methods/constructors to
better fit with our use case.
[GstVideoTimeCode]: https://gstreamer.freedesktop.org/documentation/video/subprojects/gst-plugins-base/gst-libs/gst/video/gstvideotimecode.html?gi-language=c#GstVideoTimeCode
## API additions:
### `GESTimeline`
The idea would be to introduce a `(GstFraction) GESTimeline:rate` property on
which all timestamps will be "snapped", with that done, we need each and every
`GESTimelineElement` timestamps inside a timeline snapped to it.
We still need backward compatibility with previous behaviour, and to do so, the
idea is to have a mode where no snapping happens, and to make that happen, the
possible solution is to make `GESTimeline:rate == NULL` mean "no
snapping should happen. What should be the `GESTimeline:rate` default value?
`NULL` so that default behaviour is unchanged?
Also one case we need to handle is setting the `GESTimeline:rate`, which
involves retimestamping all contained objects in a sensible way.
Also, setting `GESTimeline:rate` will override any
`GESTrack:restriction-caps['framerate']` value.
### `GESTimelineElement`
Add `_timecode` setter variants for timestamps, for example:
``` c
gboolean ges_timeline_element_set_start_timecode (GESTimelineElement *element, GstVideoTimeCode *start);
gboolean ges_timeline_element_set_inpoint_timecode (GESTimelineElement *element, GstVideoTimeCode *duration);
gboolean ges_timeline_element_set_duration_timecode (GESTimelineElement *element, GstVideoTimeCode *duration);
gboolean ges_timeline_element_ripple_timecode (GESTimelineElement *self, GstVideoTimeCode *start);
gboolean ges_timeline_element_ripple_end_timecode (GESTimelineElement *self, GstVideoTimeCode *end);
gboolean ges_timeline_element_roll_start_timecode (GESTimelineElement *self, GstVideoTimeCode *start);
gboolean ges_timeline_element_roll_end_timecode (GESTimelineElement *self, GstVideoTimeCode *end);
gboolean ges_timeline_element_trim_timecode (GESTimelineElement *self, GstVideoTimeCode *start);
```
### Clips
* `GESUriSource:inpoint` should probably use the input file rate and we should
try to make that the default. Currently we anyway have a videorate element
that makes the output framerate the one of the `GESTrack:restriction-caps`
value, we should try to change that behaviour and let the `compositor` handle
the framerate modulation between input streams
* `GESTimelineElement:duration`: Currently we do not make a difference between
the consumed duration of the input clip and the outputed duration in the timeline,
mainly because we do not handle time stretching yet. Having a rate for that
timestamp that is different than the one of the timeline leads to inconsistency in
terms of what that timestamp represents, and when "drawing" a representation the time
will need to be converted, this is far from ideal.
=> **Should we add a new notion of "input-duration" or "media-duration" ?**
``` c
GESClip* ges_clip_split_timecode (GESClip *clip, GstVideoTimeCode *position);
```
### Container
``` c
gboolean ges_container_edit_timecode (GESContainer *container,
GList *layers,
gint new_layer_priority,
GESEditMode mode,
GESEdge edge,
GstVideoTimeCode *position);
```https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/65Accurate seeks can lead to wrong `time` value in outputed segments2021-09-24T12:17:15ZThibault Sauniertsaunier@igalia.comAccurate seeks can lead to wrong `time` value in outputed segmentsThis is a *very* rare race I could not reproduce locally so I am marking it as known issue but in -validate it is not ideal at all as it is quite a bad bug :|
**Test name**: `ges.playback.scrub_backward_seeking.test_transition.audio_vid...This is a *very* rare race I could not reproduce locally so I am marking it as known issue but in -validate it is not ideal at all as it is quite a bad bug :|
**Test name**: `ges.playback.scrub_backward_seeking.test_transition.audio_video.raw_h264_mp4`
**Command**:
``` bash
GST_VALIDATE_SCENARIO='scrub_backward_seeking' DISPLAY=':27' GST_VALIDATE_SCENARIOS_PATH='/builds/thiblahute/gst-devtools/gst-build/prefix/share/gstreamer-1.0/validate/scenarios:/builds/thiblahute/gst-devtools/gst-build/subprojects/gst-devtools/validate/data/scenarios' GST_GL_XINITTHREADS='1' ges-launch-1.0 --mute --ges-sample-path-recurse file:///builds/thiblahute/gst-devtools/gst-build/subprojects/gst-integration-testsuites/medias/defaults -l file:///builds/thiblahute/gst-devtools/gst-build/subprojects/gst-integration-testsuites/ges/ges-projects/raw_h264/test_transition.audio_video.raw_h264_mp4.xges
```
**-> Running scenario scrub_backward_seeking on pipeline gespipeline0**
```
Executing set-vars (
- default_flags=accurate+flush
)
Executing pause (
- playback-time=0
)
-> Action pause done (duration: 0:00:00.377661522)
Executing (subaction)seek (
- playback-time=0
- start=0:00:01.500000004
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.233761355)
Executing (subaction)(1/14)seek (
- playback-time=0
- start=0:00:01.400000004
- flags=accurate+flush
)
<position: 0:00:01.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
<position: 0:00:01.400000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:01.742049489 �[331m23754�[00m 0x7eff8464ab90 �[31;01mERROR �[00m �[00m libav :0::�[00m co located POCs unavailable
0:00:01.742334260 �[331m23754�[00m 0x7effa46b4000 �[31;01mERROR �[00m �[00m libav :0::�[00m mmco: unref short failure
<position: 0:00:01.400000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:01.968181934 �[331m23754�[00m 0x7eff7841e950 �[31;01mERROR �[00m �[00m libav :0::�[00m co located POCs unavailable
-> Action seek done (duration: 0:00:00.601470545)
Executing (subaction)(2/14)seek (
- playback-time=0
- start=0:00:01.300000004
- flags=accurate+flush
)
<position: 0:00:01.400000004 duration: 0:00:02.000000001 speed: 1.000000 />
<position: 0:00:01.400000004 duration: 0:00:02.000000001 speed: 1.000000 />
<position: 0:00:01.400000004 duration: 0:00:02.000000001 speed: 1.000000 />
<position: 0:00:01.300000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:03.163967489 �[331m23754�[00m 0x7effa46c6ac0 �[31;01mERROR �[00m �[00m libav :0::�[00m co located POCs unavailable
<position: 0:00:01.300000004 duration: 0:00:02.000000001 speed: 1.000000 />
-> Action seek done (duration: 0:00:01.185349858)
Executing (subaction)(3/14)seek (
- playback-time=0
- start=0:00:01.200000004
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.136460571)
Executing (subaction)(4/14)seek (
- playback-time=0
- start=0:00:01.100000004
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.075781494)
Executing (subaction)(5/14)seek (
- playback-time=0
- start=0:00:01.000000004
- flags=accurate+flush
)
0:00:03.473321046 �[331m23754�[00m 0x7effa46c6ac0 �[31;01mERROR �[00m �[00m libav :0::�[00m co located POCs unavailable
-> Action seek done (duration: 0:00:00.106083220)
Executing (subaction)(6/14)seek (
- playback-time=0
- start=0:00:00.900000004
- flags=accurate+flush
)
<position: 0:00:00.900000004 duration: 0:00:02.000000001 speed: 1.000000 />
-> Action seek done (duration: 0:00:00.363896196)
Executing (subaction)(7/14)seek (
- playback-time=0
- start=0:00:00.800000004
- flags=accurate+flush
)
<position: 0:00:00.900000004 duration: 0:00:02.000000001 speed: 1.000000 />
<position: 0:00:00.900000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:04.229870325 �[331m23754�[00m 0x7eff584324c0 �[31;01mERROR �[00m �[00m libav :0::�[00m co located POCs unavailable
0:00:04.230151649 �[331m23754�[00m 0x7effa004be30 �[31;01mERROR �[00m �[00m libav :0::�[00m mmco: unref short failure
<position: 0:00:00.900000004 duration: 0:00:02.000000001 speed: 1.000000 />
<position: 0:00:00.800000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:04.829420826 �[331m23754�[00m 0x7eff8465f6f0 �[31;01mERROR �[00m �[00m libav :0::�[00m co located POCs unavailable
-> Action seek done (duration: 0:00:00.950378474)
Executing (subaction)(8/14)seek (
- playback-time=0
- start=0:00:00.700000004
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.025794541)
Executing (subaction)(9/14)seek (
- playback-time=0
- start=0:00:00.600000004
- flags=accurate+flush
)
0:00:04.872468068 �[331m23754�[00m 0x7eff8465f6f0 �[31;01mERROR �[00m �[00m libav :0::�[00m co located POCs unavailable
-> Action seek done (duration: 0:00:00.006144000)
Executing (subaction)(10/14)seek (
- playback-time=0
- start=0:00:00.500000004
- flags=accurate+flush
)
<position: 0:00:00.600000004 duration: 0:00:02.000000001 speed: 1.000000 />
<position: 0:00:00.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
<position: 0:00:00.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:05.488461769 �[331m23754�[00m 0x7effc8650e30 �[31;01mERROR �[00m �[00m validate gst-validate-reporter.c:195:gst_validate_report_valist:�[00m <capsfilter0:src> 3920 (critical) : event: A segment doesn't have the proper time value after an ACCURATE seek : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
<position: 0:00:00.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:05.902250909 �[331m23754�[00m 0x7effc8650e30 �[31;01mERROR �[00m �[00m validate gst-validate-reporter.c:195:gst_validate_report_valist:�[00m <tee0:src_0> 3920 (critical) : event: A segment doesn't have the proper time value after an ACCURATE seek : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
<position: 0:00:00.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
<position: 0:00:00.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:06.403944374 �[331m23754�[00m 0x7effc8650e30 �[31;01mERROR �[00m �[00m validate gst-validate-reporter.c:195:gst_validate_report_valist:�[00m <streamsynchronizer0:src_0> 3920 (critical) : event: A segment doesn't have the proper time value after an ACCURATE seek : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
<position: 0:00:00.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:06.584909682 �[331m23754�[00m 0x7effa80838f0 �[31;01mERROR �[00m �[00m validate gst-validate-reporter.c:195:gst_validate_report_valist:�[00m <vqueue:src> 3920 (critical) : event: A segment doesn't have the proper time value after an ACCURATE seek : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
<position: 0:00:00.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:06.850784147 �[331m23754�[00m 0x7effa80838f0 �[31;01mERROR �[00m �[00m validate gst-validate-reporter.c:195:gst_validate_report_valist:�[00m <conv:src> 3920 (critical) : event: A segment doesn't have the proper time value after an ACCURATE seek : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
<position: 0:00:00.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:07.156608242 �[331m23754�[00m 0x7effa80838f0 �[31;01mERROR �[00m �[00m validate gst-validate-reporter.c:195:gst_validate_report_valist:�[00m <scale:src> 3920 (critical) : event: A segment doesn't have the proper time value after an ACCURATE seek : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
<position: 0:00:00.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:07.463335944 �[331m23754�[00m 0x7effa80838f0 �[31;01mERROR �[00m �[00m validate gst-validate-reporter.c:195:gst_validate_report_valist:�[00m <videobalance:src> 3920 (critical) : event: A segment doesn't have the proper time value after an ACCURATE seek : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
<position: 0:00:00.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
<position: 0:00:00.500000004 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:07.853247595 �[331m23754�[00m 0x7effa80838f0 �[31;01mERROR �[00m �[00m validate gst-validate-reporter.c:195:gst_validate_report_valist:�[00m <conv2:src> 3920 (critical) : event: A segment doesn't have the proper time value after an ACCURATE seek : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
-> Action seek done (duration: 0:00:03.001886501)
Executing (subaction)(11/14)seek (
- playback-time=0
- start=0:00:00.400000004
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.030820507)
Executing (subaction)(12/14)seek (
- playback-time=0
- start=0:00:00.300000004
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.012504722)
Executing (subaction)(13/14)seek (
- playback-time=0
- start=0:00:00.200000004
- flags=accurate+flush
)
<position: 0:00:00.300000004 duration: 0:00:02.000000001 speed: 1.000000 />
-> Action seek done (duration: 0:00:00.076191936)
Executing (subaction)(14/14)seek (
- playback-time=0
- start=0:00:00.100000004
- flags=accurate+flush
)
-> Action seek done (duration: 0:00:00.062830763)
Executing play (
- playback-time=0
)
-> Action play done (duration: 0:00:00.022925631)
<position: 0:00:00.268335474 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:08.246738259 �[331m23754�[00m 0x7eff1064af80 �[31;01mERROR �[00m �[00m libav :0::�[00m co located POCs unavailable
0:00:08.294958878 �[331m23754�[00m 0x7eff10636390 �[31;01mERROR �[00m �[00m libav :0::�[00m co located POCs unavailable
<position: 0:00:00.518195154 duration: 0:00:02.000000001 speed: 1.000000 />
0:00:08.582387359 �[331m23754�[00m 0x7eff58640380 �[31;01mERROR �[00m �[00m libav :0::�[00m co located POCs unavailable
<position: 0:00:00.769008049 duration: 0:00:02.000000001 speed: 1.000000 />
Executing stop (
- playback-time=1
)
scrub_backward_seeking --> State change request NULL, quiting application
issue : buffer was received after EOS
Detected on <multiqueue3:src_0>
Detected on <h264parse2:sink>
Detected on <h264parse2:src>
Detected on <capsfilter9:sink>
Detected on <capsfilter9:src>
Detected on <avdec_h264-2:sink>
Detected on <multiqueue9:src_0>
Detected on <h264parse5:sink>
Detected on <h264parse5:src>
Detected on <capsfilter12:sink>
Detected on <capsfilter12:src>
Detected on <avdec_h264-5:sink>
Detected on <multiqueue8:src_0>
Detected on <h264parse4:sink>
Detected on <h264parse4:src>
Detected on <capsfilter11:sink>
Detected on <capsfilter11:src>
Detected on <avdec_h264-4:sink>
Detected on <multiqueue16:src_0>
Detected on <h264parse8:sink>
Detected on <h264parse8:src>
Detected on <capsfilter15:sink>
Detected on <capsfilter15:src>
Detected on <avdec_h264-7:sink>
Detected on <multiqueue15:src_0>
Detected on <h264parse7:sink>
Detected on <h264parse7:src>
Detected on <capsfilter14:sink>
Detected on <capsfilter14:src>
Detected on <avdec_h264-8:sink>
Detected on <multiqueue25:src_0>
Detected on <h264parse9:sink>
Detected on <h264parse9:src>
Detected on <capsfilter16:sink>
Detected on <capsfilter16:src>
Detected on <avdec_h264-9:sink>
Detected on <multiqueue28:src_0>
Detected on <h264parse11:sink>
Detected on <h264parse11:src>
Detected on <capsfilter18:sink>
Detected on <capsfilter18:src>
Detected on <avdec_h264-11:sink>
Detected on <multiqueue27:src_0>
Detected on <h264parse10:sink>
Detected on <h264parse10:src>
Detected on <capsfilter17:sink>
Detected on <capsfilter17:src>
Detected on <avdec_h264-10:sink>
Detected on <multiqueue31:src_0>
Detected on <h264parse12:sink>
Detected on <h264parse12:src>
Detected on <capsfilter19:sink>
Detected on <capsfilter19:src>
Detected on <avdec_h264-12:sink>
Detected on <multiqueue45:src_0>
Detected on <h264parse14:sink>
Detected on <h264parse14:src>
Detected on <capsfilter21:sink>
Detected on <capsfilter21:src>
Detected on <avdec_h264-13:sink>
Detected on <multiqueue44:src_0>
Detected on <h264parse13:sink>
Detected on <h264parse13:src>
Detected on <capsfilter20:sink>
Detected on <capsfilter20:src>
Detected on <avdec_h264-14:sink>
Detected on <multiqueue46:src_0>
Detected on <h264parse15:sink>
Detected on <h264parse15:src>
Detected on <capsfilter22:sink>
Detected on <capsfilter22:src>
Detected on <avdec_h264-15:sink>
Description : a pad shouldn't receive any more buffers after it gets EOS
warning : Buffer didn't have expected DISCONT flag
Detected on <smart-adder-adder:src>
Detected on <smart-adder-capsfilter:sink>
Detected on <smart-adder-capsfilter:src>
Detected on <capsfilter2:sink>
Detected on <capsfilter2:src>
Detected on <tee1:sink>
Detected on <tee1:src_0>
Detected on <audiotee:sink>
Detected on <audiotee:src_0>
Detected on <streamsynchronizer0:sink_1>
Detected on <streamsynchronizer0:src_1>
Detected on <aqueue:sink>
Detected on <aqueue:src>
Detected on <conv:sink>
Detected on <conv:src>
Detected on <resample:sink>
Detected on <resample:src>
Detected on <volume:sink>
Detected on <volume:src>
Detected on <fakesink0:sink>
Detected on <gessmartmixer0-compositor:src>
Detected on <identity0:sink>
Detected on <identity0:src>
Detected on <capsfilter0:sink>
Detected on <capsfilter0:src>
Detected on <tee0:sink>
Detected on <tee0:src_0>
Detected on <streamsynchronizer0:sink_0>
Detected on <streamsynchronizer0:src_0>
Detected on <vqueue:sink>
Detected on <vqueue:src>
Detected on <conv:sink>
Detected on <conv:src>
Detected on <scale:sink>
Detected on <scale:src>
Detected on <videobalance:sink>
Detected on <videobalance:src>
Detected on <conv2:sink>
Detected on <conv2:src>
Detected on <fakesink1:sink>
Detected on <audiomixer0:src>
Detected on <tr-aconv-output:sink>
Detected on <tr-aconv-output:src>
Detected on <audioconvert5:sink>
Detected on <audioconvert5:src>
Detected on <audioresample7:sink>
Detected on <audioresample7:src>
Detected on <smart-adder-adder:sink_3>
Detected on <gessmartmixer1-compositor:src>
Detected on <identity1:sink>
Detected on <identity1:src>
Detected on <frame_tagger:sink>
Detected on <frame_tagger:src>
Detected on <tr-csp-output:sink>
Detected on <tr-csp-output:src>
Detected on <videoconvert4:sink>
Detected on <videoconvert4:src>
Detected on <gessmartmixer0-compositor:sink_2>
Detected on <audioconvert7:sink>
Detected on <audioconvert7:src>
Detected on <audioresample9:sink>
Detected on <audioresample9:src>
Detected on <smart-adder-adder:sink_5>
Detected on <videoconvert6:sink>
Detected on <videoconvert6:src>
Detected on <gessmartmixer0-compositor:sink_4>
Detected on <audioconvert9:sink>
Detected on <audioconvert9:src>
Detected on <audioresample11:sink>
Detected on <audioresample11:src>
Detected on <smart-adder-adder:sink_7>
Detected on <audioconvert11:sink>
Detected on <audioconvert11:src>
Detected on <audioresample13:sink>
Detected on <audioresample13:src>
Detected on <smart-adder-adder:sink_9>
Detected on <audioconvert13:sink>
Detected on <audioconvert13:src>
Detected on <audioresample15:sink>
Detected on <audioresample15:src>
Detected on <smart-adder-adder:sink_11>
Detected on <audioconvert15:sink>
Detected on <audioconvert15:src>
Detected on <audioresample17:sink>
Detected on <audioresample17:src>
Detected on <smart-adder-adder:sink_13>
Detected on <videoconvert8:sink>
Detected on <videoconvert8:src>
Detected on <gessmartmixer0-compositor:sink_6>
Detected on <audioconvert17:sink>
Detected on <audioconvert17:src>
Detected on <audioresample19:sink>
Detected on <audioresample19:src>
Detected on <smart-adder-adder:sink_15>
Detected on <audioconvert19:sink>
Detected on <audioconvert19:src>
Detected on <audioresample21:sink>
Detected on <audioresample21:src>
Detected on <smart-adder-adder:sink_17>
Detected on <audioconvert21:sink>
Detected on <audioconvert21:src>
Detected on <audioresample23:sink>
Detected on <audioresample23:src>
Detected on <smart-adder-adder:sink_19>
Detected on <audioconvert23:sink>
Detected on <audioconvert23:src>
Detected on <audioresample25:sink>
Detected on <audioresample25:src>
Detected on <smart-adder-adder:sink_21>
Detected on <videoconvert10:sink>
Detected on <videoconvert10:src>
Detected on <gessmartmixer0-compositor:sink_8>
Description : Buffers after SEGMENT and FLUSH must have a DISCONT flag
warning : a serialized event received should be pushed in the same 'time' as it was received
Detected on <smart-adder-adder:src>
Detected on <audiomixer0:src>
Detected on <gessmartmixer0-compositor:src>
Description : serialized events should be pushed in the same order they are received and serialized with buffers. If an event is received after a buffer with timestamp end 'X', it should be pushed right after buffers with timestamp end 'X'
issue : FLUSH_START events that are part of the same pipeline 'operation' should have the same seqnum
Detected on <capsfilter2:src>
Detected on <capsfilter0:src>
Detected on <tee1:src_0>
Detected on <tee0:src_0>
Detected on <audiotee:src_0>
Detected on <streamsynchronizer0:src_1>
Detected on <streamsynchronizer0:src_0>
Detected on <aqueue:src>
Detected on <vqueue:src>
Detected on <conv:src>
Detected on <conv:src>
Detected on <resample:src>
Detected on <scale:src>
Detected on <volume:src>
Detected on <videobalance:src>
Detected on <conv2:src>
Description : when events/messages are created from another event/message, they should have their seqnums set to the original event/message seqnum
issue : FLUSH_STOP events that are part of the same pipeline 'operation' should have the same seqnum
Detected on <capsfilter2:src>
Detected on <tee1:src_0>
Detected on <audiotee:src_0>
Detected on <streamsynchronizer0:src_1>
Detected on <aqueue:src>
Detected on <conv:src>
Detected on <resample:src>
Detected on <volume:src>
Detected on <capsfilter0:src>
Detected on <tee0:src_0>
Detected on <streamsynchronizer0:src_0>
Detected on <vqueue:src>
Detected on <conv:src>
Detected on <scale:src>
Detected on <videobalance:src>
Detected on <conv2:src>
Description : when events/messages are created from another event/message, they should have their seqnums set to the original event/message seqnum
issue : SEGMENT events that are part of the same pipeline 'operation' should have the same seqnum
Detected on <capsfilter2:sink>
Detected on <capsfilter2:src>
Detected on <tee1:sink>
Detected on <tee1:src_0>
Detected on <audiotee:sink>
Detected on <audiotee:src_0>
Detected on <streamsynchronizer0:sink_1>
Detected on <streamsynchronizer0:src_1>
Detected on <aqueue:sink>
Detected on <aqueue:src>
Detected on <conv:sink>
Detected on <conv:src>
Detected on <resample:sink>
Detected on <resample:src>
Detected on <volume:sink>
Detected on <volume:src>
Detected on <fakesink0:sink>
Detected on <capsfilter0:sink>
Detected on <capsfilter0:src>
Detected on <tee0:sink>
Detected on <tee0:src_0>
Detected on <streamsynchronizer0:sink_0>
Detected on <streamsynchronizer0:src_0>
Detected on <vqueue:sink>
Detected on <vqueue:src>
Detected on <conv:sink>
Detected on <conv:src>
Detected on <scale:sink>
Detected on <scale:src>
Detected on <videobalance:sink>
Detected on <videobalance:src>
Detected on <conv2:sink>
Detected on <conv2:src>
Detected on <fakesink1:sink>
Description : when events/messages are created from another event/message, they should have their seqnums set to the original event/message seqnum
warning : a new segment event has different value than the received one
Detected on <smart-adder-adder:src>
Detected on <gessmartmixer0-compositor:src>
Detected on <audiomixer0:src>
Detected on <gessmartmixer1-compositor:src>
Detected on <vqueue:src>
Description : when receiving a new segment, an element should push an equivalent segment downstream
warning : received the same caps twice
Detected on <avdec_h264-2:sink>
Detected on <h264parse2:sink>
Detected on <identity0:sink>
Detected on <smart-adder-capsfilter:sink>
Detected on <avdec_h264-3:sink>
Detected on <capsfilter2:sink>
Detected on <h264parse3:sink>
Detected on <avdec_h264-4:sink>
Detected on <h264parse4:sink>
Detected on <avdec_h264-5:sink>
Detected on <h264parse5:sink>
Detected on <identity1:sink>
Detected on <avdec_h264-6:sink>
Detected on <h264parse6:sink>
Detected on <avdec_h264-7:sink>
Detected on <h264parse8:sink>
Detected on <avdec_h264-8:sink>
Detected on <h264parse7:sink>
Detected on <avdec_h264-9:sink>
Detected on <h264parse9:sink>
Detected on <avdec_h264-10:sink>
Detected on <h264parse10:sink>
Detected on <avdec_h264-11:sink>
Detected on <h264parse11:sink>
Detected on <avdec_h264-12:sink>
Detected on <h264parse12:sink>
Detected on <avdec_h264-13:sink>
Detected on <h264parse14:sink>
Detected on <avdec_h264-14:sink>
Detected on <h264parse13:sink>
Detected on <avdec_h264-15:sink>
Detected on <h264parse15:sink>
critical : A segment doesn't have the proper time value after an ACCURATE seek
Detected on <capsfilter0:src>
Details : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
dotfile : no dotfile produced as GST_DEBUG_DUMP_DOT_DIR is not set.
backtrace :
gst_debug_get_stack_trace (gstinfo.c:2886)
gst_validate_report_new (gst-validate-report.c:742)
gst_validate_report_valist (gst-validate-reporter.c:186)
gst_validate_report (gst-validate-reporter.c:319)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1891)
gst_validate_pad_monitor_pad_probe (gst-validate-pad-monitor.c:2665)
probe_hook_marshal (gstpad.c:3565)
g_hook_list_marshal (ghook.c:671)
do_probe_callbacks (gstpad.c:3727)
gst_pad_push_event_unchecked (gstpad.c:5375)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_capsfilter_sink_event (gstcapsfilter.c:522)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
internalpad_event_function (nleghostpad.c:346)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
internalpad_event_function (nleghostpad.c:346)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_identity_sink_event (gstidentity.c:478)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_aggregator_default_finish_buffer (gstaggregator.c:534)
gst_video_aggregator_aggregate (gstvideoaggregator.c:1877)
gst_aggregator_aggregate_func (gstaggregator.c:1148)
gst_task_func (gsttask.c:328)
g_thread_pool_thread_proxy (gthreadpool.c:307)
g_thread_proxy (gthread.c:784)
start_thread (pthread_create.c:486)
__clone (clone.S:93)
Description : If a seek with the ACCURATE flag was accepted, the following segment should have a time value corresponding exactly to the requested start seek time
critical : A segment doesn't have the proper time value after an ACCURATE seek
Detected on <tee0:src_0>
Details : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
dotfile : no dotfile produced as GST_DEBUG_DUMP_DOT_DIR is not set.
backtrace :
gst_debug_get_stack_trace (gstinfo.c:2886)
gst_validate_report_new (gst-validate-report.c:742)
gst_validate_report_valist (gst-validate-reporter.c:186)
gst_validate_report (gst-validate-reporter.c:319)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1891)
gst_validate_pad_monitor_pad_probe (gst-validate-pad-monitor.c:2665)
probe_hook_marshal (gstpad.c:3565)
g_hook_list_marshal (ghook.c:671)
do_probe_callbacks (gstpad.c:3727)
gst_pad_push_event_unchecked (gstpad.c:5375)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_capsfilter_sink_event (gstcapsfilter.c:522)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
internalpad_event_function (nleghostpad.c:346)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
internalpad_event_function (nleghostpad.c:346)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_identity_sink_event (gstidentity.c:478)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_aggregator_default_finish_buffer (gstaggregator.c:534)
gst_video_aggregator_aggregate (gstvideoaggregator.c:1877)
gst_aggregator_aggregate_func (gstaggregator.c:1148)
gst_task_func (gsttask.c:328)
g_thread_pool_thread_proxy (gthreadpool.c:307)
g_thread_proxy (gthread.c:784)
start_thread (pthread_create.c:486)
__clone (clone.S:93)
Description : If a seek with the ACCURATE flag was accepted, the following segment should have a time value corresponding exactly to the requested start seek time
critical : A segment doesn't have the proper time value after an ACCURATE seek
Detected on <streamsynchronizer0:src_0>
Details : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
dotfile : no dotfile produced as GST_DEBUG_DUMP_DOT_DIR is not set.
backtrace :
gst_debug_get_stack_trace (gstinfo.c:2886)
gst_validate_report_new (gst-validate-report.c:742)
gst_validate_report_valist (gst-validate-reporter.c:186)
gst_validate_report (gst-validate-reporter.c:319)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1891)
gst_validate_pad_monitor_pad_probe (gst-validate-pad-monitor.c:2665)
probe_hook_marshal (gstpad.c:3565)
g_hook_list_marshal (ghook.c:671)
do_probe_callbacks (gstpad.c:3727)
gst_pad_push_event_unchecked (gstpad.c:5375)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_stream_synchronizer_sink_event (gststreamsynchronizer.c:663)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_capsfilter_sink_event (gstcapsfilter.c:522)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
internalpad_event_function (nleghostpad.c:346)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
internalpad_event_function (nleghostpad.c:346)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_identity_sink_event (gstidentity.c:478)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_aggregator_default_finish_buffer (gstaggregator.c:534)
gst_video_aggregator_aggregate (gstvideoaggregator.c:1877)
gst_aggregator_aggregate_func (gstaggregator.c:1148)
gst_task_func (gsttask.c:328)
g_thread_pool_thread_proxy (gthreadpool.c:307)
g_thread_proxy (gthread.c:784)
start_thread (pthread_create.c:486)
__clone (clone.S:93)
Description : If a seek with the ACCURATE flag was accepted, the following segment should have a time value corresponding exactly to the requested start seek time
critical : A segment doesn't have the proper time value after an ACCURATE seek
Detected on <vqueue:src>
Details : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
dotfile : no dotfile produced as GST_DEBUG_DUMP_DOT_DIR is not set.
backtrace :
gst_debug_get_stack_trace (gstinfo.c:2886)
gst_validate_report_new (gst-validate-report.c:742)
gst_validate_report_valist (gst-validate-reporter.c:186)
gst_validate_report (gst-validate-reporter.c:319)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1891)
gst_validate_pad_monitor_pad_probe (gst-validate-pad-monitor.c:2665)
probe_hook_marshal (gstpad.c:3565)
g_hook_list_marshal (ghook.c:671)
do_probe_callbacks (gstpad.c:3727)
gst_pad_push_event_unchecked (gstpad.c:5375)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_queue_loop (gstqueue.c:1455)
gst_task_func (gsttask.c:328)
g_thread_pool_thread_proxy (gthreadpool.c:307)
g_thread_proxy (gthread.c:784)
start_thread (pthread_create.c:486)
__clone (clone.S:93)
Description : If a seek with the ACCURATE flag was accepted, the following segment should have a time value corresponding exactly to the requested start seek time
critical : A segment doesn't have the proper time value after an ACCURATE seek
Detected on <conv:src>
Details : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
dotfile : no dotfile produced as GST_DEBUG_DUMP_DOT_DIR is not set.
backtrace :
gst_debug_get_stack_trace (gstinfo.c:2886)
gst_validate_report_new (gst-validate-report.c:742)
gst_validate_report_valist (gst-validate-reporter.c:186)
gst_validate_report (gst-validate-reporter.c:319)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1891)
gst_validate_pad_monitor_pad_probe (gst-validate-pad-monitor.c:2665)
probe_hook_marshal (gstpad.c:3565)
g_hook_list_marshal (ghook.c:671)
do_probe_callbacks (gstpad.c:3727)
gst_pad_push_event_unchecked (gstpad.c:5375)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_play_sink_convert_bin_sink_event (gstplaysinkconvertbin.c:260)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_queue_loop (gstqueue.c:1455)
gst_task_func (gsttask.c:328)
g_thread_pool_thread_proxy (gthreadpool.c:307)
g_thread_proxy (gthread.c:784)
start_thread (pthread_create.c:486)
__clone (clone.S:93)
Description : If a seek with the ACCURATE flag was accepted, the following segment should have a time value corresponding exactly to the requested start seek time
critical : A segment doesn't have the proper time value after an ACCURATE seek
Detected on <scale:src>
Details : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
dotfile : no dotfile produced as GST_DEBUG_DUMP_DOT_DIR is not set.
backtrace :
gst_debug_get_stack_trace (gstinfo.c:2886)
gst_validate_report_new (gst-validate-report.c:742)
gst_validate_report_valist (gst-validate-reporter.c:186)
gst_validate_report (gst-validate-reporter.c:319)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1891)
gst_validate_pad_monitor_pad_probe (gst-validate-pad-monitor.c:2665)
probe_hook_marshal (gstpad.c:3565)
g_hook_list_marshal (ghook.c:671)
do_probe_callbacks (gstpad.c:3727)
gst_pad_push_event_unchecked (gstpad.c:5375)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_play_sink_convert_bin_sink_event (gstplaysinkconvertbin.c:260)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_queue_loop (gstqueue.c:1455)
gst_task_func (gsttask.c:328)
g_thread_pool_thread_proxy (gthreadpool.c:307)
g_thread_proxy (gthread.c:784)
start_thread (pthread_create.c:486)
__clone (clone.S:93)
Description : If a seek with the ACCURATE flag was accepted, the following segment should have a time value corresponding exactly to the requested start seek time
critical : A segment doesn't have the proper time value after an ACCURATE seek
Detected on <videobalance:src>
Details : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
dotfile : no dotfile produced as GST_DEBUG_DUMP_DOT_DIR is not set.
backtrace :
gst_debug_get_stack_trace (gstinfo.c:2886)
gst_validate_report_new (gst-validate-report.c:742)
gst_validate_report_valist (gst-validate-reporter.c:186)
gst_validate_report (gst-validate-reporter.c:319)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1891)
gst_validate_pad_monitor_pad_probe (gst-validate-pad-monitor.c:2665)
probe_hook_marshal (gstpad.c:3565)
g_hook_list_marshal (ghook.c:671)
do_probe_callbacks (gstpad.c:3727)
gst_pad_push_event_unchecked (gstpad.c:5375)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_play_sink_convert_bin_sink_event (gstplaysinkconvertbin.c:260)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_queue_loop (gstqueue.c:1455)
gst_task_func (gsttask.c:328)
g_thread_pool_thread_proxy (gthreadpool.c:307)
g_thread_proxy (gthread.c:784)
start_thread (pthread_create.c:486)
__clone (clone.S:93)
Description : If a seek with the ACCURATE flag was accepted, the following segment should have a time value corresponding exactly to the requested start seek time
critical : A segment doesn't have the proper time value after an ACCURATE seek
Detected on <conv2:src>
Details : After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
dotfile : no dotfile produced as GST_DEBUG_DUMP_DOT_DIR is not set.
backtrace :
gst_debug_get_stack_trace (gstinfo.c:2886)
gst_validate_report_new (gst-validate-report.c:742)
gst_validate_report_valist (gst-validate-reporter.c:186)
gst_validate_report (gst-validate-reporter.c:319)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1891)
gst_validate_pad_monitor_pad_probe (gst-validate-pad-monitor.c:2665)
probe_hook_marshal (gstpad.c:3565)
g_hook_list_marshal (ghook.c:671)
do_probe_callbacks (gstpad.c:3727)
gst_pad_push_event_unchecked (gstpad.c:5375)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_base_transform_sink_eventfunc (gstbasetransform.c:1919)
gst_validate_pad_monitor_downstream_event_check (gst-validate-pad-monitor.c:1986)
gst_validate_pad_monitor_sink_event_full_func (gst-validate-pad-monitor.c:2338)
gst_validate_pad_monitor_sink_event_func (gst-validate-pad-monitor.c:2350)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
event_forward_func (gstpad.c:3054)
gst_pad_forward (gstpad.c:3008)
gst_pad_event_default (gstpad.c:3105)
gst_play_sink_convert_bin_sink_event (gstplaysinkconvertbin.c:260)
gst_pad_send_event_unchecked (gstpad.c:5765)
gst_pad_push_event_unchecked (gstpad.c:5410)
push_sticky (gstpad.c:3926)
events_foreach (gstpad.c:608)
gst_pad_push_event (gstpad.c:3985)
gst_queue_loop (gstqueue.c:1455)
gst_task_func (gsttask.c:328)
g_thread_pool_thread_proxy (gthreadpool.c:307)
g_thread_proxy (gthread.c:784)
start_thread (pthread_create.c:486)
__clone (clone.S:93)
Description : If a seek with the ACCURATE flag was accepted, the following segment should have a time value corresponding exactly to the requested start seek time
==== Got criticals. Return value set to 18 ====
Critical error After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
Critical error After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
Critical error After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
Critical error After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
Critical error After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
Critical error After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
Critical error After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
Critical error After an accurate seek, got: 0:00:00.600000004 Expected: 0:00:00.500000004
Issues found: 16
```
**You can mark the issues as 'known' by adding the following lines to the list of known issues**
``` python
"FIXME 'ges.playback.scrub_backward_seeking.test_transition.audio_video.raw_h264_mp4' issues [REPORT A BUG in https://gitlab.freedesktop.org/gstreamer/ or use a proper bug description]": {
"tests": [
"ges.playback.scrub_backward_seeking.test_transition.audio_video.raw_h264_mp4"
],
"issues": [
{
'returncode': 18,
'sometimes': True,
},
{
"issue-id": "event::segment-has-wrong-start",
"summary": "A segment doesn't have the proper time value after an ACCURATE seek",
"level": "critical",
"can-happen-several-times": True,
},
],
},
```https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/68Adding lots of clips is extremely slow with auto_transitions enabled2021-09-24T12:17:14ZMart RaudseppAdding lots of clips is extremely slow with auto_transitions enabledIf adding clips to a layer that has auto_transitions enabled, the per-clip adding time seems to start to grow with some exponential properties.
[clip-auto-transition-slow.c](/uploads/38a9c4b076954ee0d4c344c7dab8be89/clip-auto-transition...If adding clips to a layer that has auto_transitions enabled, the per-clip adding time seems to start to grow with some exponential properties.
[clip-auto-transition-slow.c](/uploads/38a9c4b076954ee0d4c344c7dab8be89/clip-auto-transition-slow.c)
This test case demonstrates it with 800 clips, which takes over 6 minutes for me.
1200 clips takes over 21 minutes already for me with this code.
The code where I noticed the problem is a bit different (using the file backed asset for an URIClip audio), and is actually for some reason much faster, but still in the minutes territory.https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/70Tests 'ges/layer' fails on arm* and x86'2021-09-24T12:17:14ZRasmus Thomsenoss@cogitri.devTests 'ges/layer' fails on arm* and x86'It fails with the following, not so helpful output:
```
FAIL: ges/layer
===============
Running suite(s): ges-layer
90%: Checks: 20, Failures: 0, Errors: 2
ges/layer.c:145:E:timeline-layer:test_layer_priorities:0: (after this point) Rec...It fails with the following, not so helpful output:
```
FAIL: ges/layer
===============
Running suite(s): ges-layer
90%: Checks: 20, Failures: 0, Errors: 2
ges/layer.c:145:E:timeline-layer:test_layer_priorities:0: (after this point) Received signal 11 (Segmentation fault)
ges/layer.c:1542:E:timeline-layer:test_layer_get_clips_in_interval:0: (after this point) Received signal 11 (Segmentation fault)
Check suite ges ran in 0.654s (tests failed: 2)
FAIL ges/layer (exit status: 2)
```
See https://cloud.drone.io/alpinelinux/aports/7891
OS: Alpine Linux Edge (mind you, this uses musl)https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/72timeline serialization issue with the official builds on windows.2021-09-24T12:17:13ZDavid Ingtimeline serialization issue with the official builds on windows.# summary
I saved `xges` files from timelines that were constructed across 5 different scenarios. The scenarios are named like "02", "03", ..., "06".
In each scenario, I constructed a timeline and saved it by calling `ges_timeline_save...# summary
I saved `xges` files from timelines that were constructed across 5 different scenarios. The scenarios are named like "02", "03", ..., "06".
In each scenario, I constructed a timeline and saved it by calling `ges_timeline_save_to_uri`.
## linux vs. windows
I did this in Windows and Linux (Fedora 30). The scenarios are identical across operating systems (except file paths), yet the `xges` files are different. A quick diff of the two folders shows you that there is clearly a problem on Windows. Specifically the `clip` elements do not appear within the files from Windows, but instead there is some kind of malformed `xml` where the clip should be.
## effects are not serialized
All of my video clips have a `GESEffect` of type `videocrop` which do not appear in the serialized data.
## versions
Windows: 1.16.0-mingw
Fedora 30: 1.16.0
[xges_files.zip](/uploads/9d605471c990607e0efe26047be386d3/xges_repro.zip)https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/76GES need to become H/W acceleration friendly2021-09-24T12:17:12ZSeungha Yangseungha@centricular.comGES need to become H/W acceleration friendlyI'm seeing gst-editing-service whether h/w elements can be used in GES or not. The answer seems to **NO** yet.
Because video editing can require system resource a lot, I believe h/w acceleration must be very useful.
To support such elem...I'm seeing gst-editing-service whether h/w elements can be used in GES or not. The answer seems to **NO** yet.
Because video editing can require system resource a lot, I believe h/w acceleration must be very useful.
To support such elements,
- autoplugging scenarios should be considered
- Need a way to selecting filter elements by user such as custom h/w accelerated video converter, scaler, mixer, etc.
And there seems to a bit things to do more.https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/79XGES serialization is not deterministic2021-09-24T12:17:11ZAlexandru BăluțXGES serialization is not deterministicThe order in which the XML elements appear must always be the same, such that if a project is loaded and saved, the serialization is exactly the same. This does not seem to be the case for assets, their order changes when saving a projec...The order in which the XML elements appear must always be the same, such that if a project is loaded and saved, the serialization is exactly the same. This does not seem to be the case for assets, their order changes when saving a project.
This enhancement would make the xges files version-control-friendly.https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/80logspam: WARNING ges ges-smart-video-mixer.c:189 The current source should u...2021-09-24T12:17:11ZDavid Inglogspam: WARNING ges ges-smart-video-mixer.c:189 The current source should use a framepositionerIt seems like it should be a `FIXME`-level log because the composition still seems to get rendered properly. (This would allow a person to filter the spam from the `ges` category without losing all the `WARNING`-level logs.)
```
WARNIN...It seems like it should be a `FIXME`-level log because the composition still seems to get rendered properly. (This would allow a person to filter the spam from the `ges` category without losing all the `WARNING`-level logs.)
```
WARNING ges ges-smart-video-mixer.c:189 The current source should use a framepositioner
```
I occasionally process a GES composition which generates the following log statement hundreds of times per second ... it generates a lot of logspam that I'd like to avoid.https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/81libges linker error on Ubuntu 18.042021-09-24T12:17:10ZChristopher Leelibges linker error on Ubuntu 18.04Hello,
I'm seeing the following error on Ubuntu 18.04.
```
[3439/3574] Linking target subprojects/gst-editing-services/ges/libges-1.0.so.0.1700.0.
FAILED: subprojects/gst-editing-services/ges/libges-1.0.so.0.1700.0
...
...
...
/usr/bin...Hello,
I'm seeing the following error on Ubuntu 18.04.
```
[3439/3574] Linking target subprojects/gst-editing-services/ges/libges-1.0.so.0.1700.0.
FAILED: subprojects/gst-editing-services/ges/libges-1.0.so.0.1700.0
...
...
...
/usr/bin/ld: /usr/local/lib/libpython3.5m.a(ceval.o): relocation R_X86_64_PC32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
```
From a quick Google search, the error seems to indicate that we are trying to link a static library with a dynamic library.https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/85ges-launch: Add support for transition types2021-09-24T12:17:09ZThibault Sauniertsaunier@igalia.comges-launch: Add support for transition typesCurrently `ges-launch-1.0` doesn't allow setting transition types, the idea in term of CLI is adding something like:
```
ges-launch-1.0 +test-clip blue d=10 name=first +test-clip red s=5 d=10 name=second set-transition-type foo [element...Currently `ges-launch-1.0` doesn't allow setting transition types, the idea in term of CLI is adding something like:
```
ges-launch-1.0 +test-clip blue d=10 name=first +test-clip red s=5 d=10 name=second set-transition-type foo [element-name=first+second]
```
We should set transition names with a well defined format and document that.https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/87group: incorrect `timeline` of children2021-09-24T12:17:09ZHenry Wilkesgroup: incorrect `timeline` of childrenCurrently, you can add clips from different timelines to the same `GESGroup`. This can lead to a difference in the `timeline` of a group and its children:
```python
>>> timeline = GES.Timeline.new()
>>> alt_timeline = GES.Timeline.new()...Currently, you can add clips from different timelines to the same `GESGroup`. This can lead to a difference in the `timeline` of a group and its children:
```python
>>> timeline = GES.Timeline.new()
>>> alt_timeline = GES.Timeline.new()
>>> layer = timeline.append_layer()
>>> alt_layer = alt_timeline.append_layer()
>>> asset = GES.Asset.request(GES.TestClip, None)
>>> clip = layer.add_asset(asset, 0, 0, 10, GES.TrackType.AUDIO)
>>> alt_clip = alt_layer.add_asset(asset, 30, 0, 10, GES.TrackType.AUDIO)
>>> group = GES.Group.new()
>>> group.add(clip)
True
>>> group.add(alt_clip)
True
>>> group.timeline is clip.timeline
True
>>> group.timeline is alt_clip.timeline
False
```
This can obviously lead to problems. Similarly, when a group contains a clip, and neither have a timeline, then we can get a critical failure when we add the clip to a timeline because the timeline is not tracking the clip's parent: the group.
```python
>>> timeline = GES.Timeline.new()
>>> layer = timeline.append_layer()
>>> clip = GES.TestClip.new()
>>> group = GES.Group.new()
>>> group.add(clip)
True
>>> clip.set_duration(20)
True
>>> layer.add_clip(clip)
**
GES:ERROR:ges-timeline-tree.c:205:timeline_tree_track_element: assertion failed: (parent)
Bail out! GES:ERROR:ges-timeline-tree.c:205:timeline_tree_track_element: assertion failed: (parent)
Aborted (core dumped)
```
I propose that you can only add to a group elements that have a `timeline` set. If it is the first element, we set the group's `timeline` to the same value. Otherwise, it must match the `timeline` of the group. And if, and only if, the group is empty, it will have a `NULL` timeline. To keep this consistent, when a clip is removed from its layer, and its timeline, we should automatically remove it from the group.https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/88clip: incorrect `timeline` of children2021-09-24T12:17:09ZHenry Wilkesclip: incorrect `timeline` of childrenCurrently, you can add track elements to a clip from a different timeline. This can lead to a difference in the `timeline` of the clip and its children:
```python
>>> timeline = GES.Timeline.new_audio_video()
>>> alt_timeline = GES.Time...Currently, you can add track elements to a clip from a different timeline. This can lead to a difference in the `timeline` of the clip and its children:
```python
>>> timeline = GES.Timeline.new_audio_video()
>>> alt_timeline = GES.Timeline.new_audio_video()
>>> layer = timeline.append_layer()
>>> asset = GES.Asset.request(GES.TestClip, None)
>>> clip = layer.add_asset(asset, 0, 0, 10, GES.TrackType.AUDIO)
>>> effect = GES.Effect.new("agingtv")
>>> alt_timeline.get_tracks()[0].add_element(effect)
True
>>> clip.add(effect)
True
>>> clip.timeline is effect.timeline
False
```
I propose that you should only be able to add a track element to a clip if it has the same timeline, or has a `NULL` timeline (and the clip/timeline should make sure to set the timeline once the element is added to a track).
Related: https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/87https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/90group: incorrect layer priority when not part of a timeline2021-09-24T12:17:09ZHenry Wilkesgroup: incorrect layer priority when not part of a timelineCurrently, the layer priority (`ges_timeline_element_get_layer_priority`) of an empty group that is not yet part of a timeline is `0`, rather than `GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY`.Currently, the layer priority (`ges_timeline_element_get_layer_priority`) of an empty group that is not yet part of a timeline is `0`, rather than `GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY`.https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/91group: incorrect `height`2021-09-24T12:17:08ZHenry Wilkesgroup: incorrect `height`The `height` of groups is being incorrectly set, and isn't being updated when the maximum layer priority of the sub group changes.
```python
>>> timeline = GES.Timeline.new_audio_video()
>>> layer0 = timeline.append_layer()
>>> layer1 =...The `height` of groups is being incorrectly set, and isn't being updated when the maximum layer priority of the sub group changes.
```python
>>> timeline = GES.Timeline.new_audio_video()
>>> layer0 = timeline.append_layer()
>>> layer1 = timeline.append_layer()
>>> layer2 = timeline.append_layer()
>>> asset = GES.Asset.request(GES.TestClip, None)
>>> clip0 = layer0.add_asset(asset, 0, 0, 10, GES.TrackType.AUDIO)
>>> sub_group = GES.Group.new()
>>> sub_group.add(clip0)
True
>>> sub_group.get_layer_priority() # fine
0
>>> sub_group.height # fine
1
>>> group = GES.Group.new()
>>> group.add(sub_group)
True
>>> group.get_layer_priority() # fine
0
>>> group.height # wrong, should be 1 since we only span one layer
2
>>> clip2 = layer2.add_asset(asset, 0, 0, 10, GES.TrackType.AUDIO)
>>> sub_group.add(clip2)
True
>>> sub_group.height # correct
3
>>> group.height # wrong, the height should be 3, because we span 3 layers
2
```
The first problem comes from `_update_our_values`, where the maximum layer of the sub-group is calculated using `priority + height`, rather than `priority + height - 1`. The second is because the sub-group does not notify its parent group that its maximum layer priority has increased.