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 730075 - avviddec: QoS handling causes decoding artefacts
avviddec: QoS handling causes decoding artefacts
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-libav
git master
Other Linux
: Normal normal
: 1.3.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-05-13 18:51 UTC by Mathieu Duponchelle
Modified: 2014-05-16 12:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
fixes the reported issue (4.40 KB, patch)
2014-05-13 18:51 UTC, Mathieu Duponchelle
none Details | Review
Update commit message to mention artefacts. (4.48 KB, patch)
2014-05-14 12:38 UTC, Mathieu Duponchelle
committed Details | Review

Description Mathieu Duponchelle 2014-05-13 18:51:00 UTC
Created attachment 276471 [details] [review]
fixes the reported issue

gst_video_decoder_get_max_decding_time doesn't return a GstClockTime
    but a GstClockTimeDiff, and thus one needs to compare it against
    G_MAXINT_64.
    
    The returning of a boolean and the extra subsequent code in _video_frame
    was uselessly complicated.
Comment 1 Mathieu Duponchelle 2014-05-14 12:38:19 UTC
Created attachment 276526 [details] [review]
Update commit message to mention artefacts.

To see the artefacts, one needs to playback full HD h264 streams on a busy / slow CPU machine. They are accompanied with "decode_slice_header errors" in the terminal.
Comment 2 Edward Hervey 2014-05-16 11:52:46 UTC
commit 7bb4f93de905d3b1c3ffa4d3dd3aff73cde0ff1f
Author: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
Date:   Tue May 13 20:17:17 2014 +0200

    gstavviddec: Sanitize and fix qos handling.
    
    gst_video_decoder_get_max_decding_time doesn't return a GstClockTime
    but a GstClockTimeDiff, and thus one needs to compare it against
    G_MAXINT_64.
    
    The returning of a boolean and the extra subsequent code in _video_frame
    was uselessly complicated.
    
    The previous behaviour led to artefacts when the decoder tried to
    hurry up.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=730075