mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-23 19:30:05 +00:00
lavf: Do not list mov-only codecs in riff.c.
Instead check for all mov code-points when demuxing avi and print a warning if a video codec is found like this. Fixes a regression similar to the one described in ticket #4307.
This commit is contained in:
parent
a47c2a1d5f
commit
2e0b5f5c90
@ -36,6 +36,7 @@
|
|||||||
#include "riff.h"
|
#include "riff.h"
|
||||||
#include "libavcodec/bytestream.h"
|
#include "libavcodec/bytestream.h"
|
||||||
#include "libavcodec/exif.h"
|
#include "libavcodec/exif.h"
|
||||||
|
#include "libavformat/isom.h"
|
||||||
|
|
||||||
typedef struct AVIStream {
|
typedef struct AVIStream {
|
||||||
int64_t frame_offset; /* current frame (video) or byte (audio) counter
|
int64_t frame_offset; /* current frame (video) or byte (audio) counter
|
||||||
@ -773,6 +774,12 @@ static int avi_read_header(AVFormatContext *s)
|
|||||||
st->codec->codec_tag = tag1;
|
st->codec->codec_tag = tag1;
|
||||||
st->codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags,
|
st->codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags,
|
||||||
tag1);
|
tag1);
|
||||||
|
if (!st->codec->codec_id) {
|
||||||
|
st->codec->codec_id = ff_codec_get_id(ff_codec_movvideo_tags,
|
||||||
|
tag1);
|
||||||
|
if (st->codec->codec_id)
|
||||||
|
av_log(s, AV_LOG_WARNING, "mov tag found in avi\n");
|
||||||
|
}
|
||||||
/* This is needed to get the pict type which is necessary
|
/* This is needed to get the pict type which is necessary
|
||||||
* for generating correct pts. */
|
* for generating correct pts. */
|
||||||
st->need_parsing = AVSTREAM_PARSE_HEADERS;
|
st->need_parsing = AVSTREAM_PARSE_HEADERS;
|
||||||
|
@ -362,9 +362,6 @@ const AVCodecTag ff_codec_bmp_tags[] = {
|
|||||||
{ AV_CODEC_ID_G2M, MKTAG('G', '2', 'M', '4') },
|
{ AV_CODEC_ID_G2M, MKTAG('G', '2', 'M', '4') },
|
||||||
{ AV_CODEC_ID_G2M, MKTAG('G', '2', 'M', '5') },
|
{ AV_CODEC_ID_G2M, MKTAG('G', '2', 'M', '5') },
|
||||||
{ AV_CODEC_ID_FIC, MKTAG('F', 'I', 'C', 'V') },
|
{ AV_CODEC_ID_FIC, MKTAG('F', 'I', 'C', 'V') },
|
||||||
{ AV_CODEC_ID_PRORES, MKTAG('A', 'P', 'C', 'N') },
|
|
||||||
{ AV_CODEC_ID_PRORES, MKTAG('A', 'P', 'C', 'H') },
|
|
||||||
{ AV_CODEC_ID_QTRLE, MKTAG('r', 'l', 'e', ' ') },
|
|
||||||
{ AV_CODEC_ID_HQX, MKTAG('C', 'H', 'Q', 'X') },
|
{ AV_CODEC_ID_HQX, MKTAG('C', 'H', 'Q', 'X') },
|
||||||
{ AV_CODEC_ID_NONE, 0 }
|
{ AV_CODEC_ID_NONE, 0 }
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user