GES 1.12.4 and 1.14.2: Problem with slide transitions
Thibault Saunier
tsaunier at gnome.org
Fri Aug 10 13:42:04 UTC 2018
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
More information about the gstreamer-devel
mailing list