From 40e87f9dbc525564c295818388de0f956051e6ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96man?= Date: Sun, 4 May 2008 18:33:10 +0000 Subject: [PATCH] Drop packets if sample rate is invalid --- parsers.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/parsers.c b/parsers.c index 79e11bb2..bb33c4c5 100644 --- a/parsers.c +++ b/parsers.c @@ -286,6 +286,11 @@ parse_mpegaudio(th_transport_t *t, th_stream_t *st, th_pkt_t *pkt) header = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | (buf[3]); sample_rate = mpegaudio_freq_tab[(header >> 10) & 3]; + if(sample_rate == 0) { + pkt_deref(pkt); + return; + } + duration = 90000 * 1152 / sample_rate; pkt->pkt_duration = duration; st->st_nextdts = pkt->pkt_dts + duration; @@ -355,6 +360,11 @@ parse_ac3(th_transport_t *t, th_stream_t *st, th_pkt_t *pkt) bsid = 0; sample_rate = ac3_freq_tab[src] >> bsid; + if(sample_rate == 0) { + pkt_deref(pkt); + return; + } + frame_size = ac3_frame_size_tab[fsc][src] * 2; duration = 90000 * 1536 / sample_rate;