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 723595 - rtpvp8depay: small packets incorrectly dropped?
rtpvp8depay: small packets incorrectly dropped?
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.x
Other All
: Normal normal
: 1.2.5
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-02-04 09:01 UTC by Morgan Lindqvist
Modified: 2014-06-19 15:15 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Morgan Lindqvist 2014-02-04 09:01:56 UTC
When using the VP8 codec, small packets are dropped resulting in that the video quality is degraded. Looking at the code the size check on line 144 looks suspicious.

We are using streamer 1.0.10 and would appreciate a backport of a solution.
Comment 1 Sebastian Dröge (slomo) 2014-02-04 12:54:12 UTC
Do you have a testcase for this?


Backports to 1.0 are not done anymore, but whatever change is necessary here should be easy to backport from 1.2 to 1.0 yourself.
Comment 2 Morgan Lindqvist 2014-02-05 09:13:32 UTC
GST_DEBUG="rtpvp8depay:6" gst-launch-1.0 videotestsrc ! video/x-raw, width=640, height=480 ! vp8enc ! rtpvp8pay mtu=1280 ! rtpvp8depay ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:02.635242149 16184      0x1ef41e0 LOG              rtpvp8depay gstrtpvp8depay.c:195:gst_rtp_vp8_depay_process:<rtpvp8depay0> Invalid rtp packet (too small), ignoring
...
Comment 3 Tim-Philipp Müller 2014-02-11 20:53:34 UTC
I get this as well after a couple of seconds with 1.0, but not with 1.2 or git master. Not sure what might have fixed it though.
Comment 4 Morgan Lindqvist 2014-02-12 10:30:52 UTC
The bug can be reproduced on git master using the following command:

GST_DEBUG="rtpvp8depay:6" gst-launch-1.0 videotestsrc pattern=black ! video/x-raw,width=640,height=480 ! vp8enc target-bitrate=1000000 ! rtpvp8pay picture-id-mode=7-bit mtu=61 ! rtpvp8depay ! fakesink
Comment 5 Tim-Philipp Müller 2014-02-12 10:51:03 UTC
Confirmed, thanks for the pipeline to reproduce it.
Comment 6 Wim Taymans 2014-06-19 13:31:55 UTC
commit 8a78fa1ff5a4e1a620cb1e0747e5b560bf4e8b80
Author: Wim Taymans <wtaymans@redhat.com>
Date:   Thu Jun 19 15:25:01 2014 +0200

    vp8depay: fix header size checking
    
    Use a different variable name to make it clear that we are calculating
    the header size.
    Correctly check that we have enough bytes to read the header bits. We
    were checking if there were 5 bytes available in the header while we
    only needed 3, causing the packet to be discarded as too small.
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723595