GES 1.12.4 and 1.14.2: Problem with slide transitions

David Ing ding at panopto.com
Fri Aug 10 17:25:17 UTC 2018


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180810/ac2e8e44/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: scenario1.ges
Type: application/octet-stream
Size: 4301 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180810/ac2e8e44/attachment-0004.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: scenario1.raw.ges
Type: application/octet-stream
Size: 4226 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180810/ac2e8e44/attachment-0005.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: scenario2.ges
Type: application/octet-stream
Size: 5111 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180810/ac2e8e44/attachment-0006.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: scenario2.raw.ges
Type: application/octet-stream
Size: 5021 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180810/ac2e8e44/attachment-0007.obj>


More information about the gstreamer-devel mailing list