mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-30 12:49:40 +00:00
speexdec: allow for unknown varying number of frames per buffer
In particular, this caters for RTP payloads with multiple frames per packet.
This commit is contained in:
parent
35f9efac88
commit
50c41acdff
1 changed files with 4 additions and 3 deletions
|
@ -655,7 +655,7 @@ speex_dec_chain_parse_data (GstSpeexDec * dec, GstBuffer * buf,
|
|||
/* send data to the bitstream */
|
||||
speex_bits_read_from (&dec->bits, (char *) data, size);
|
||||
|
||||
fpp = dec->header->frames_per_packet;
|
||||
fpp = 0;
|
||||
bits = &dec->bits;
|
||||
|
||||
GST_DEBUG_OBJECT (dec, "received buffer of size %u, fpp %d", size, fpp);
|
||||
|
@ -677,8 +677,9 @@ speex_dec_chain_parse_data (GstSpeexDec * dec, GstBuffer * buf,
|
|||
}
|
||||
|
||||
|
||||
/* now decode each frame */
|
||||
for (i = 0; i < fpp; i++) {
|
||||
/* now decode each frame, catering for unknown number of them (e.g. rtp) */
|
||||
for (i = 0; (!fpp || i < fpp) && (!bits || speex_bits_remaining (bits) > 0);
|
||||
i++) {
|
||||
GstBuffer *outbuf;
|
||||
gint16 *out_data;
|
||||
gint ret;
|
||||
|
|
Loading…
Reference in a new issue