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 784616 - rtpgsmpay: GSM over RTP gives bad result / broken payload data
rtpgsmpay: GSM over RTP gives bad result / broken payload data
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.8.3
Other Linux
: Normal normal
: 1.12.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-07-06 14:35 UTC by Aurele
Modified: 2017-07-09 12:42 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
rtpgsmpay: Do not allocate payload size outbuf if append (1.20 KB, patch)
2017-07-07 12:24 UTC, Yasushi SHOJI
none Details | Review

Description Aurele 2017-07-06 14:35:03 UTC
Hello

quick explanation :
working pipeline on my Ubuntu 16.04: 
gst-launch-1.0 -v alsasrc ! gsmenc ! gsmdec ! alsasink
not working pipeline on my Ubuntu 16.04: 
gst-launch-1.0 -v alsasrc ! gsmenc ! rtpgsmpay ! rtpgsmdepay ! gsmdec ! alsasink


long explanation :
I was trying to send GSM over RTP, and I had bad results (voice is sliced, malformed and so on) I ended with the test pipeline I described above, and it is not working...
I tested it also with gstreamer 1.10 (on ARM architecture)

Thanks for any help
Aurele
Comment 1 Yasushi SHOJI 2017-07-07 12:24:51 UTC
Created attachment 355088 [details] [review]
rtpgsmpay: Do not allocate payload size outbuf if append

The commit 137672ff1824948bda4b1b1967de8c24a0055b67 attached payload
to the output buffer but forgot to remove payload allocation.  That
effectively doubled payload size and add zero'ed bytes.

This commit fix https://bugzilla.gnome.org/show_bug.cgi?id=784616 and
now the following pipeline works again.

gst-launch-1.0 -v audiotestsrc wave=2 ! gsmenc ! rtpgsmpay ! rtpgsmdepay ! gsmdec ! autoaudiosink
Comment 2 Aurele 2017-07-07 13:04:10 UTC
after tests, it fixed my problem. (tested with gstreamer 1.10.4)
Comment 3 Tim-Philipp Müller 2017-07-07 13:11:28 UTC
Please don't close the bug until it's fixed in upstream GStreamer.
Comment 4 Aurele 2017-07-07 13:40:50 UTC
sorry for my mistake, and many thanks for providing the fix so fast
Comment 5 Tim-Philipp Müller 2017-07-09 12:42:11 UTC
Thanks, should be fixed in master and 1.12 branch now:

commit c7f42cc3bc192ef0122b68d95cb24e187b975623
Author: Yasushi SHOJI <yashi@atmark-techno.com>
Date:   Fri Jul 7 21:15:57 2017 +0900

    rtpgsmpay: fix accidental garbage data before actual payload
    
    Do not allocate payload size outbuf if appending payload buffer.
    
    The commit 137672ff1824948bda4b1b1967de8c24a0055b67 attached payload
    to the output buffer but forgot to remove payload allocation.  That
    effectively doubled payload size and add zero'ed or random bytes.
    
    Makes the following pipeline work again:
    
    gst-launch-1.0 -v audiotestsrc wave=2 ! gsmenc ! rtpgsmpay ! rtpgsmdepay ! gsmdec ! autoaudiosink
    
    https://bugzilla.gnome.org/show_bug.cgi?id=784616