Browse Source

libspeexdec: handle NULL return value from speex_packet_to_header()

This will happen when the extradata is not a valid Speex header.
tags/n1.1
Justin Ruggles 13 years ago
parent
commit
c9df48909e
1 changed files with 7 additions and 2 deletions
  1. +7
    -2
      libavcodec/libspeexdec.c

+ 7
- 2
libavcodec/libspeexdec.c View File

@@ -40,12 +40,17 @@ static av_cold int libspeex_decode_init(AVCodecContext *avctx)
{
LibSpeexContext *s = avctx->priv_data;
const SpeexMode *mode;
SpeexHeader *header = NULL;
int spx_mode;

avctx->sample_fmt = AV_SAMPLE_FMT_S16;
if (avctx->extradata && avctx->extradata_size >= 80) {
SpeexHeader *header = speex_packet_to_header(avctx->extradata,
avctx->extradata_size);
header = speex_packet_to_header(avctx->extradata,
avctx->extradata_size);
if (!header)
av_log(avctx, AV_LOG_WARNING, "Invalid Speex header\n");
}
if (header) {
avctx->channels = header->nb_channels;
spx_mode = header->mode;
speex_header_free(header);


Loading…
Cancel
Save