mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-03 05:10:03 +02:00
avcodec/speexdec: relax the extradata check for the speex string
There could be bogus bytes at the start, as is the case of vp5/potter512-400-partial.avi from the FATE suite, which could be a case of bad remuxing from an OGG source. Partially fixes decoding of vp5/potter512-400-partial.avi Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
0f4a72b22b
commit
cad35f0a77
@ -52,6 +52,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "libavutil/avassert.h"
|
#include "libavutil/avassert.h"
|
||||||
|
#include "libavutil/avstring.h"
|
||||||
#include "libavutil/float_dsp.h"
|
#include "libavutil/float_dsp.h"
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "bytestream.h"
|
#include "bytestream.h"
|
||||||
@ -1397,9 +1398,9 @@ static int parse_speex_extradata(AVCodecContext *avctx,
|
|||||||
const uint8_t *extradata, int extradata_size)
|
const uint8_t *extradata, int extradata_size)
|
||||||
{
|
{
|
||||||
SpeexContext *s = avctx->priv_data;
|
SpeexContext *s = avctx->priv_data;
|
||||||
const uint8_t *buf = extradata;
|
const uint8_t *buf = av_strnstr(extradata, "Speex ", extradata_size);
|
||||||
|
|
||||||
if (memcmp(buf, "Speex ", 8))
|
if (!buf)
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
buf += 28;
|
buf += 28;
|
||||||
|
Loading…
Reference in New Issue
Block a user