I wrote a sample application to demonstrates a problem that I'm having with GES:
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
)
Scenario 2 ( #define INCLUDE_FOREGROUND_VIDEO true )
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.
Scenario 1:
Scenario 2:
Does anybody know how I might fix the problem with scenario #2? _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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 <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hello, could you share you project with the assets? Regards Thibault On Fri, Aug 10, 2018, 01:01 David Ing <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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
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 <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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 <[hidden email]> 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 <[hidden email]> wrote: >> >> Hello, could you share you project with the assets? >> >> >> Regards >> >> Thibault >> >> >> >> On Fri, Aug 10, 2018, 01:01 David Ing <[hidden email]> 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 <[hidden email]> 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 >>> [hidden email] >>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> >> >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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" <[hidden email]> wrote: I just ran that on linux and I get no black frame, the foreground _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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: The log output for scenario #2 has not changed (as described earlier). On Fri, Aug 10, 2018 at 7:17 AM, David Ing <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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 <[hidden email]> 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 <[hidden email]> 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" <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> wrote: >> >> >> >> Hello, could you share you project with the assets? >> >> >> >> >> >> Regards >> >> >> >> Thibault >> >> >> >> >> >> >> >> On Fri, Aug 10, 2018, 01:01 David Ing <[hidden email]> 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 <[hidden email]> 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 >> >>> [hidden email] >> >>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> >> >> >> >> >> _______________________________________________ >> >> gstreamer-devel mailing list >> >> [hidden email] >> >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> >> >> > >> > _______________________________________________ >> > gstreamer-devel mailing list >> > [hidden email] >> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> >> > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Well I saved a timeline for each scenario using a command like this:
Then I tried to load the timeline but I get an error.
This problem occurred for Gstreamer version 1.12.4 and 1.14.2.
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 <[hidden email]> wrote: Could you try to save the project `ges_timeline_save_to_uri` and load _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel scenario1.ges (5K) Download Attachment scenario1.raw.ges (5K) Download Attachment scenario2.ges (6K) Download Attachment scenario2.raw.ges (6K) Download Attachment |
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 <[hidden email]> 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@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@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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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" <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> wrote: >> >> >> >> >> >> Hello, could you share you project with the assets? >> >> >> >> >> >> >> >> >> Regards >> >> >> >> >> >> Thibault >> >> >> >> >> >> >> >> >> >> >> >> On Fri, Aug 10, 2018, 01:01 David Ing <[hidden email]> 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 <[hidden email]> 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 >> >> >>> [hidden email] >> >> >>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> >> >> >> >> >> >> >> >> _______________________________________________ >> >> >> gstreamer-devel mailing list >> >> >> [hidden email] >> >> >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> >> >> >> >> > >> >> > _______________________________________________ >> >> > gstreamer-devel mailing list >> >> > [hidden email] >> >> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> >> _______________________________________________ >> >> gstreamer-devel mailing list >> >> [hidden email] >> >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> >> >> >> >> > >> > _______________________________________________ >> > gstreamer-devel mailing list >> > [hidden email] >> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Alright, I really appreciate all your efforts. I will try to build on Linux (from home) to double-check the claim that there are no black flashes between slides on Linux. Then at least I will be able to say whether this is Windows related or not. On Fri, Aug 10, 2018 at 12:21 PM, Thibault Saunier <[hidden email]> wrote: Hrm, tested here and it saving timeline works just fine with your code _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |