rtpg729pay: error playing back files with a bigger size than 4KB
Overview
When trying to play an audio file wich contains g729 data with a size bigger than 4KB, rtpg729pay complains about the size of the input buffer.
this issue is related with #615 (closed)
System
The problems happens on the following platform:
- GStreamer 1.14.1
- Operative System: Linux
- Distro: Ubuntu 18.04.2 LTS (bionic)
- kernel: 4.15.0-51-generic
Details
Receiving pipeline
gst-launch-1.0 -v udpsrc port=6002 caps="application/x-rtp" ! rtpg729depay ! avdec_g729 ! autoaudiosink
Sending pipeline
gst-launch-1.0 filesrc location=vm-record-prepend.g729 ! 'audio/G729' ! rtpg729pay ! udpsink host=127.0.0.1 port=6002
Error received on stdout when executing sending pipeline
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstRTPG729Pay:rtpg729pay0: Invalid input buffer size
Additional debug info:
gstrtpg729pay.c(360): gst_rtp_g729_pay_handle_buffer (): /GstPipeline:pipeline0/GstRTPG729Pay:rtpg729pay0:
Invalid buffer size, should be a multiple of G729_FRAME_SIZE(10) with an optional G729B_CN_FRAME_SIZE(2) added to it, but it is 4096
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
This only happens when the input files are bigger than 4K
8.0K vm-record-prepend.g729
When the file size is less than 4K the file is transmited and played on the other end.
The file vm-record-prepend.g729
gst debug log file attached dbg.log.xz