After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 733565 - Gracefully handle the fact that some encoder can not change their colorspace at the middle of the stream
Gracefully handle the fact that some encoder can not change their colorspace ...
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-editing-services
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 732955 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2014-07-22 14:58 UTC by Lubosz Sarnecki
Modified: 2018-11-03 12:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
xges to reproduce the bug. (3.51 KB, text/x-xges)
2014-07-22 14:58 UTC, Lubosz Sarnecki
Details

Description Lubosz Sarnecki 2014-07-22 14:58:26 UTC
Created attachment 281393 [details]
xges to reproduce the bug.

GES cannot render pipelines which contain a PNG. The behavior is different for different encoders and muxers.

The playback of the timeline is fine.

ogg/theora: corrupted buffers are stored instead of the PNG. Rendering finished.
webm/vp8: works
qt/h264: rendering stops at the position where image and video meet.

These clip layouts do not work:

[ video ][ png ]
[ png ][ video ]

This works:

[ png ]

JPEG also works.

For the quicktime / h264 case, where the pipeline times out, this is printed in the debug log in a infinite loop, when the timeline "stops":

FIXME                    bin gstbin.c:4023:gst_bin_query: implement duration caching in GstBin again

The quicktime muxer produces following warning:

WARN                   qtmux gstqtmux.c:3253:gst_qt_mux_video_sink_set_caps:<muxer> pad video_0 refused renegotiation to video/x-h264, ...
Comment 1 Lubosz Sarnecki 2014-07-22 18:21:34 UTC
Testing with MKV shows that qtmux is preventing the png to be encoded, since matroskamux does fine with h264.

Testing with vp8 and qtmux shows that the issue is related to the combination of h264 and qtmux, since vp8 and qtmux work.

The pipeline stops running when a png related timeline change occurs with qtmux and h264.

A theora encoded mkv shows the same corruptions as in the ogg container. So the thora encoder does not handle png. Maybe this should be in a separate bug report.

The GES PNG bug matrix.

Theora |  C     0     C

VP8    |

H264   |        S

       | MKV | MP4 | OGG

C - Output is corrupted
S - Pipeline stops rendering
0 - Not muxable
Comment 2 Nicolas Dufresne (ndufresne) 2014-07-22 18:52:45 UTC
Could be a bug in pngdec, or h264parse, or the combination of both.
Comment 3 Lubosz Sarnecki 2014-07-28 13:03:24 UTC
The pipeline stops issue can be solved by setting a format in the restriction caps. format=I420 solves the issue, and I can produce quicktime muxed h264.

There should be at least a warning for this.
I already had this problem one year ago, and actually solved it in my C code,
and forgot about it. The user should be given some advice at this point.

Or maybe the format should be set automatically?

How should this be solved?
Comment 4 Thibault Saunier 2014-11-01 10:36:06 UTC
*** Bug 732955 has been marked as a duplicate of this bug. ***
Comment 5 GStreamer system administrator 2018-11-03 12:52:18 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/16.