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 723328 - gstrtpbase(|de)payload: add more unit tests and fix bugs
gstrtpbase(|de)payload: add more unit tests and fix bugs
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other All
: Normal enhancement
: 1.3.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-01-31 00:26 UTC by Sebastian Rasmussen
Modified: 2014-02-24 11:14 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Proposed patch fixing typos in depayloader. (1.54 KB, patch)
2014-01-31 00:27 UTC, Sebastian Rasmussen
committed Details | Review
Proposed patch fixing payload type boundary typo in payloader (1.24 KB, patch)
2014-01-31 00:28 UTC, Sebastian Rasmussen
committed Details | Review
Proposed patch fixing bug in payloader where caps can not reconfigure seqnum-offset. (1.89 KB, patch)
2014-01-31 00:28 UTC, Sebastian Rasmussen
committed Details | Review
Proposed patch raising base(pay|depay)loader unit test coverage to ~90% (112.51 KB, patch)
2014-01-31 00:29 UTC, Sebastian Rasmussen
committed Details | Review

Description Sebastian Rasmussen 2014-01-31 00:26:36 UTC
The attached patch series starts by fixing some trivial things:

 * a few cosmetic typos in GstRTPBaseDepayload
 * a typo in the payload type property boundary values in GstRTPBasePayload

Then proceeds to fix a real bug in GstRTPBasePayload where the CAPS events failed
to be able to configure the seqnum-offset property of a GstRTPBasePayload (or 
derived class). This fix might be controversial so I have tried to explain it as
well as I could. Let me know if it the fix is wrong or needs further explanation.
It is not possible to simply remove/postpone this fix as the last patch depends 
on it. If you want me to separate them let me know and I'll do it.

The last patch in the patch series is the biggest one, but hopefully not so 
controversial. It removes the existing unit test for GstRTPBase(Pay|Depay)load
and replaces it with separate tests for each element. As per ocretes previous
comments I stopped using appsrc/appsink for testing and started using the 
gst_check_*() approach instead. I succeeded in raising the code coverage to a 
green 90+% for both elements. Moreover I found the issues the previous patches
fix when implementing these tests.

I have run the tests for each element in a loop 1000 times to try to ensure that
they are not racy, and I have also run them in valgrind and with/without CK_FORK=no.
Comment 1 Sebastian Rasmussen 2014-01-31 00:27:33 UTC
Created attachment 267688 [details] [review]
Proposed patch fixing typos in depayloader.
Comment 2 Sebastian Rasmussen 2014-01-31 00:28:00 UTC
Created attachment 267689 [details] [review]
Proposed patch fixing payload type boundary typo in payloader
Comment 3 Sebastian Rasmussen 2014-01-31 00:28:31 UTC
Created attachment 267690 [details] [review]
Proposed patch fixing bug in payloader where caps can not reconfigure seqnum-offset.
Comment 4 Sebastian Rasmussen 2014-01-31 00:29:13 UTC
Created attachment 267691 [details] [review]
Proposed patch raising base(pay|depay)loader unit test coverage to ~90%
Comment 5 Sebastian Rasmussen 2014-01-31 00:30:32 UTC
Agh! I just remembered that I forgot to add:

"Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723328"

Either please do that for me when committing, or
I'll do it if I get any review comments.
Comment 6 Wim Taymans 2014-02-24 11:13:32 UTC
Commited