mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 01:30:38 +00:00
rtpL16depay: don't crash if data is not modulo channels*width
This commit is contained in:
parent
0998c16432
commit
a7c887b197
1 changed files with 14 additions and 2 deletions
|
@ -232,6 +232,7 @@ gst_rtp_L16_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
|
||||||
GstBuffer *outbuf;
|
GstBuffer *outbuf;
|
||||||
gint payload_len;
|
gint payload_len;
|
||||||
gboolean marker;
|
gboolean marker;
|
||||||
|
GstAudioInfo *info;
|
||||||
|
|
||||||
rtpL16depay = GST_RTP_L16_DEPAY (depayload);
|
rtpL16depay = GST_RTP_L16_DEPAY (depayload);
|
||||||
|
|
||||||
|
@ -251,10 +252,15 @@ gst_rtp_L16_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
|
||||||
}
|
}
|
||||||
|
|
||||||
outbuf = gst_buffer_make_writable (outbuf);
|
outbuf = gst_buffer_make_writable (outbuf);
|
||||||
|
info = &rtpL16depay->info;
|
||||||
|
|
||||||
|
if (payload_len % info->bpf != 0)
|
||||||
|
goto wrong_payload_size;
|
||||||
|
|
||||||
if (rtpL16depay->order &&
|
if (rtpL16depay->order &&
|
||||||
!gst_audio_buffer_reorder_channels (outbuf,
|
!gst_audio_buffer_reorder_channels (outbuf,
|
||||||
rtpL16depay->info.finfo->format, rtpL16depay->info.channels,
|
info->finfo->format, info->channels,
|
||||||
rtpL16depay->info.position, rtpL16depay->order->pos)) {
|
info->position, rtpL16depay->order->pos)) {
|
||||||
goto reorder_failed;
|
goto reorder_failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -269,6 +275,12 @@ empty_packet:
|
||||||
("Empty Payload."), (NULL));
|
("Empty Payload."), (NULL));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
wrong_payload_size:
|
||||||
|
{
|
||||||
|
GST_ELEMENT_WARNING (rtpL16depay, STREAM, DECODE,
|
||||||
|
("Wrong Payload Size."), (NULL));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
reorder_failed:
|
reorder_failed:
|
||||||
{
|
{
|
||||||
GST_ELEMENT_ERROR (rtpL16depay, STREAM, DECODE,
|
GST_ELEMENT_ERROR (rtpL16depay, STREAM, DECODE,
|
||||||
|
|
Loading…
Reference in a new issue