GES 1.12.4 and 1.14.2: Problem with slide transitions

Thibault Saunier tsaunier at gnome.org
Fri Aug 10 19:21:40 UTC 2018


Hrm, tested here and it saving timeline works just fine with your code
(my diff is https://pastebin.com/jmXCQhkJ), something must be wrong in
the GESXmlFormatter on windows?

I can't help much more, you should try to investigate and report a bug.

BR,

Thibault
On Fri, Aug 10, 2018 at 1:25 PM David Ing <ding at panopto.com> wrote:
>
> Well I saved a timeline for each scenario using a command like this:
>
> ges_timeline_save_to_uri(gesTimeline, "file:///c:/tmp/scenario1.ges", nullptr, true, &gerror);
>
>
> Then I tried to load the timeline but I get an error.
>
> DIng at sea-ding-02 MINGW64 /c/tmp
> $ ges-launch-1.0 --load=scenario1.ges
> file:///C:/tmp/scenario1.ges:17: parser error : Opening and ending tag mismatch: layer line 14 and clip
>         </clip>
>                ^
> file:///C:/tmp/scenario1.ges:20: parser error : Opening and ending tag mismatch: timeline line 12 and clip
>         </clip>
>                ^
> file:///C:/tmp/scenario1.ges:23: parser error : Opening and ending tag mismatch: project line 2 and clip
>         </clip>
>                ^
> file:///C:/tmp/scenario1.ges:26: parser error : Opening and ending tag mismatch: ges line 1 and clip
>         </clip>
>                ^
> file:///C:/tmp/scenario1.ges:27: parser error : Extra content at the end of the document
>           <source track-id='0' children-properties='properties, GstFramePosition
>           ^
>
> ERROR: Could not create timeline because: Could not find a suitable formatter
>
> Loading project from : scenario1.ges
>
>
> This problem occurred for Gstreamer version 1.12.4 and 1.14.2.
>
> I went into the file and I noticed that the `<clip>` tags were all missing.  So I edited the file and I got:
>
> DIng at sea-ding-02 MINGW64 /c/tmp
> $ ges-launch-1.0 --load=scenario1.ges
>
> ERROR: Could not create timeline because: Could not find a suitable formatter
>
> Loading project from : scenario1.ges
>
> I attached the timeline files for your reference.
>
> I am not sure what I am doing wrong.
>
>
> On Fri, Aug 10, 2018 at 9:45 AM, Thibault Saunier <tsaunier at gnome.org> wrote:
>>
>> Could you try to save the project `ges_timeline_save_to_uri` and load
>> with `ges-launch-1.0` to see what happens?
>> On Fri, Aug 10, 2018 at 12:19 PM David Ing <ding at panopto.com> wrote:
>> >
>> > I added a GstQueue (with default settings) and the video for scenario 2 has greatly improved, but  there is still a very fast black-screen between slides.  It does not happen for scenario 1, only scenario 2.
>> >
>> > Here is the change I made:
>> >
>> > https://github.com/adaviding/gstreamer-playground/commit/2b04911a839960691a09a4f9e0375afade1a605a
>> >
>> >
>> > The log output for scenario #2 has not changed (as described earlier).
>> >
>> > On Fri, Aug 10, 2018 at 7:17 AM, David Ing <ding at panopto.com> wrote:
>> >>
>> >> Yes it does.  I will try to add a queue after the timeline when I get to work ... You should hear back from me in a couple hours.
>> >>
>> >> On Aug 10, 2018 6:42 AM, "Thibault Saunier" <tsaunier at gnome.org> wrote:
>> >>
>> >>  I just ran that on linux and I get no black frame, the foreground
>> >> video stalls for a little while which I suspect is because you are
>> >> missing some queuing after the composition. Also does that reproduce
>> >> while rendering?
>> >>
>> >>
>> >> Thibault
>> >>
>> >>
>> >> On Fri, Aug 10, 2018 at 9:27 AM David Ing <ding at panopto.com> wrote:
>> >> >
>> >> > It's all in the master branch of my repo (currently 680b203603ffa35e27493e28fe1620edacb8d655):  https://github.com/adaviding/gstreamer-playground
>> >> >
>> >> > It is a visual studio 2017 project, but I made sure to include
>> >> >
>> >> > collateral --> a folder with all of the media files
>> >> > Debug/x64 --> my build output
>> >> >
>> >> > If you don't have visual studio, it should be easy enough to compile main.cpp in some other way.  The entire program is 1 source file:  main.cpp.
>> >> >
>> >> > On Fri, Aug 10, 2018 at 5:37 AM, Thibault Saunier <saunierthibault at gmail.com> wrote:
>> >> >>
>> >> >> Hello, could you share you project with the assets?
>> >> >>
>> >> >>
>> >> >> Regards
>> >> >>
>> >> >> Thibault
>> >> >>
>> >> >>
>> >> >>
>> >> >> On Fri, Aug 10, 2018, 01:01 David Ing <ding at panopto.com> wrote:
>> >> >>>
>> >> >>> I forgot to say that the log messages appear at the time of each slide transition.
>> >> >>>
>> >> >>> On Thu, Aug 9, 2018 at 9:58 PM, David Ing <ding at panopto.com> wrote:
>> >> >>>>
>> >> >>>> I wrote a sample application to demonstrates a problem that I'm having with GES:
>> >> >>>>
>> >> >>>> https://github.com/adaviding/gstreamer-playground/blob/680b203603ffa35e27493e28fe1620edacb8d655/ges-slide-composition/main.cpp
>> >> >>>>
>> >> >>>> The problem is with scenario #2 only, and I observe the problem running on Windows 10 with GES 1.12.4 and 1.14.2.  I have only tried this on Windows.
>> >> >>>>
>> >> >>>> Scenario 1 ( #define INCLUDE_FOREGROUND_VIDEO false )
>> >> >>>>
>> >> >>>> The sample application builds a video consisting of 5 jpeg images (i.e. "slides").  Each slide is up for 2 seconds so the movie is 10 seconds long.  There is no audio in the sample application, and no audio track.
>> >> >>>>
>> >> >>>> Scenario 2 ( #define INCLUDE_FOREGROUND_VIDEO true )
>> >> >>>>
>> >> >>>> This is just like scenario 1, but there is also a picture-in-picture style video in the corner of the screen, in front of the slides.  I am using a video which has no audio track.
>> >> >>>>
>> >> >>>> The problem is that in scenario #2, during the slide transition (which occurs every 2 seconds), the screen goes black for a fraction of a second.  Interestingly, the foreground video does not go black ... only the portion of the screen subtended by the slides does this (which is most of the screen).  And this happens for every slide transition.
>> >> >>>>
>> >> >>>> Some other things to note about my application.
>> >> >>>>
>> >> >>>> I am using a GESTimeline with a GstPipeline (not GESPipeline) because I need to encode the composition in many different ways.  Computational efficiency is of paramount importance, which means I only want to execute the pipeline once.  I cannot achieve this using a GESPipeline, so I need to use a GstPipeline
>> >> >>>> I wired the NleComposition "query-position" signal so that it fetches the current position of the GstPipeline.
>> >> >>>>
>> >> >>>> Running with --gst-debug=3, I observe the following logs under each scenario.
>> >> >>>>
>> >> >>>> No highlights = the log appears in both scenarios.
>> >> >>>> Yellow highlights = the log only appears in scenario #2.
>> >> >>>> Pink highlights = the log appears in both scenarios, but is being repeated more often.
>> >> >>>>
>> >> >>>>
>> >> >>>> Scenario 1:
>> >> >>>>
>> >> >>>> 0:00:09.110542588 13280 0000016292B0B940 WARN              aggregator gstaggregator.c:1397:gst_aggregator_query_latency_unlocked:<gessmartmixer0-compositor> Latency query failed
>> >> >>>> 0:00:09.110791659 13280 0000016292B0BD00 WARN                 GST_URI gsturi.c:837:gst_file_utils_canonicalise_path: FIXME: canonicalise win32 path
>> >> >>>> 0:00:09.113365512 13280 0000016292B0BD00 WARN                 basesrc gstbasesrc.c:3480:gst_base_src_start_complete:<source> pad not activated yet
>> >> >>>> 0:00:09.115511241 13280 0000016292B0BD00 WARN                 basesrc gstbasesrc.c:3480:gst_base_src_start_complete:<source> pad not activated yet
>> >> >>>> 0:00:09.118815897 13280 0000016292D3CD00 FIXME           videodecoder gstvideodecoder.c:928:gst_video_decoder_drain_out:<jpegdec9> Sub-class should implement drain()
>> >> >>>> 0:00:09.120799711 13280 0000016292D3CD00 FIXME           videodecoder gstvideodecoder.c:928:gst_video_decoder_drain_out:<jpegdec9> Sub-class should implement drain()
>> >> >>>> 0:00:09.121881327 13280 0000016292D3CD00 WARN            videodecoder gstvideodecoder.c:2438:gst_video_decoder_chain:<jpegdec9> Received buffer without a new-segment. Assuming timestamps start from 0.
>> >> >>>>
>> >> >>>>
>> >> >>>> Scenario 2:
>> >> >>>>
>> >> >>>> 0:00:09.250672090 16592 000001F366DE7200 WARN              aggregator gstaggregator.c:1397:gst_aggregator_query_latency_unlocked:<gessmartmixer0-compositor> Latency query failed
>> >> >>>> 0:00:09.250841298 16592 000001F366DECE40 WARN                 GST_URI gsturi.c:837:gst_file_utils_canonicalise_path: FIXME: canonicalise win32 path
>> >> >>>> 0:00:09.253852393 16592 000001F366DECE40 WARN                 basesrc gstbasesrc.c:3480:gst_base_src_start_complete:<source> pad not activated yet
>> >> >>>> 0:00:09.255128014 16592 000001F366DECE40 WARN                 basesrc gstbasesrc.c:3480:gst_base_src_start_complete:<source> pad not activated yet
>> >> >>>> 0:00:09.256701573 16592 000001F366DECE40 WARN                 GST_URI gsturi.c:837:gst_file_utils_canonicalise_path: FIXME: canonicalise win32 path
>> >> >>>> 0:00:09.257970631 16592 000001F366DECAC0 WARN                 qtdemux qtdemux_types.c:228:qtdemux_type_get: unknown QuickTime node type uuid
>> >> >>>> 0:00:09.262471410 16592 000001F366DECAC0 WARN                 qtdemux qtdemux_types.c:228:qtdemux_type_get: unknown QuickTime node type pasp
>> >> >>>> 0:00:09.258281331 16592 000001F366DECE40 WARN                 basesrc gstbasesrc.c:3480:gst_base_src_start_complete:<source> pad not activated yet
>> >> >>>> 0:00:09.263756148 16592 000001F366DECAC0 WARN                 qtdemux qtdemux.c:3017:qtdemux_parse_trex:<qtdemux5> failed to find fragment defaults for stream 1
>> >> >>>> 0:00:09.265397171 16592 000001F366DECE40 WARN                 basesrc gstbasesrc.c:3480:gst_base_src_start_complete:<source> pad not activated yet
>> >> >>>> 0:00:09.266319062 16592 000001F366DECAC0 WARN                 basesrc gstbasesrc.c:2389:gst_base_src_update_length:<source> processing at or past EOS
>> >> >>>> 0:00:09.268796277 16592 000001F366F6A500 FIXME           videodecoder gstvideodecoder.c:928:gst_video_decoder_drain_out:<jpegdec9> Sub-class should implement drain()
>> >> >>>> 0:00:09.273111438 16592 000001F366F6A500 FIXME           videodecoder gstvideodecoder.c:928:gst_video_decoder_drain_out:<jpegdec9> Sub-class should implement drain()
>> >> >>>> 0:00:09.274373567 16592 000001F366F6A500 WARN            videodecoder gstvideodecoder.c:2438:gst_video_decoder_chain:<jpegdec9> Received buffer without a new-segment. Assuming timestamps start from 0.
>> >> >>>> 0:00:09.313360990 16592 000001F366CFBD00 WARN                GST_PADS gstpad.c:4161:gst_pad_peer_query:<queue11:src> could not send sticky events
>> >> >>>> 0:00:09.315771835 16592 000001F366DE7D00 WARN              aggregator gstaggregator.c:1397:gst_aggregator_query_latency_unlocked:<gessmartmixer0-compositor> Latency query failed
>> >> >>>>
>> >> >>>>
>> >> >>>> Does anybody know how I might fix the problem with scenario #2?
>> >> >>>
>> >> >>>
>> >> >>> _______________________________________________
>> >> >>> gstreamer-devel mailing list
>> >> >>> gstreamer-devel at lists.freedesktop.org
>> >> >>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >> >>
>> >> >>
>> >> >> _______________________________________________
>> >> >> gstreamer-devel mailing list
>> >> >> gstreamer-devel at lists.freedesktop.org
>> >> >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >> >>
>> >> >
>> >> > _______________________________________________
>> >> > gstreamer-devel mailing list
>> >> > gstreamer-devel at lists.freedesktop.org
>> >> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >> _______________________________________________
>> >> gstreamer-devel mailing list
>> >> gstreamer-devel at lists.freedesktop.org
>> >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >>
>> >>
>> >
>> > _______________________________________________
>> > gstreamer-devel mailing list
>> > gstreamer-devel at lists.freedesktop.org
>> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list