ges-launch-1.0: encoded result does not contain the right frames
Describe your issue
I'm trying to record a very small segment from an H264 media with a 1s length.
$ ges-launch-1.0 +clip /tmp/test_open.mp4 layer=1 duration=0.040 inpoint=0.0 -f "video/quicktime:video/x-h264" -o /tmp/result.mp4
Expected Behavior
I'm expecting to have only 2 frames in the resulting file one with timestamps 0.000 and 0.033
Observed Behavior
I'm getting only 1 frame (0.033, the 0.000 is dropped) encoded when the logs are not activated.
If I'm activating GST_DEBUG=validate*:6 then the two frames are correctly encoded.
Setup
- Operating System: LINUX
- Device: Computer
- GStreamer Version: 1.19.1
- Command line:
Steps to reproduce the bug
- open terminal
- type
command
How reproducible is the bug?
Always but depends on the log level
Screenshots if relevant
Solutions you have tried
Related non-duplicate issues
Additional Information
Looks like a race with how we get the stream position and the pipeline state (nlecomposition). In the case of log activated, the stream position is 0 and in the case of no log the stream position can be different from 0.
no problem so far with this use case:
$ gst-launch-1.0 -v nleurisource uri=file:///tmp/test_open.mp4 caps=video/x-h264 inpoint=0 duration=40000000 ! decodebin ! x264enc ! qtmux ! filesink location=/tmp/Test2.mp4