On Sat, Aug 24, 2019 at 5:48 AM Marton Balint <c...@passwd.hu> wrote:
> > > On Sat, 24 Aug 2019, Carl Eugen Hoyos wrote: > > > Am Sa., 24. Aug. 2019 um 01:47 Uhr schrieb Marton Balint <c...@passwd.hu > >: > >> > >> Some security cams generate this, as well as some versions of > VirtualDub so > >> support for _reading_ such files is justified. > > > > Please also mention vlc. > > Ok. > > > > >> > >> Fixes ticket #7110. > >> > >> See also this discussion: https://patchwork.ffmpeg.org/patch/8744/ > >> > >> Signed-off-by: Marton Balint <c...@passwd.hu> > >> --- > >> libavformat/avidec.c | 4 ++++ > >> libavformat/riff.c | 5 +++++ > >> libavformat/riff.h | 2 ++ > >> 3 files changed, 11 insertions(+) > >> > >> diff --git a/libavformat/avidec.c b/libavformat/avidec.c > >> index 1d887b1cc9..7946791fe4 100644 > >> --- a/libavformat/avidec.c > >> +++ b/libavformat/avidec.c > >> @@ -815,6 +815,10 @@ FF_ENABLE_DEPRECATION_WARNINGS > >> "mov tag found in avi (fourcc %s)\n", > >> av_fourcc2str(tag1)); > >> } > > > >> + /* Finally try unofficial codec tags to support > non-standard files. */ > > > > The comment does not look useful. > > Ok, removed locally. > > > > >> + if (!st->codecpar->codec_id) > >> + st->codecpar->codec_id = > ff_codec_get_id(ff_codec_bmp_tags_unofficial, tag1); > >> + > >> /* This is needed to get the pict type which is > necessary > >> * for generating correct pts. */ > >> st->need_parsing = AVSTREAM_PARSE_HEADERS; > >> diff --git a/libavformat/riff.c b/libavformat/riff.c > >> index e755ad8d5f..52b0bf8f03 100644 > >> --- a/libavformat/riff.c > >> +++ b/libavformat/riff.c > >> @@ -491,6 +491,11 @@ const AVCodecTag ff_codec_bmp_tags[] = { > >> { AV_CODEC_ID_NONE, 0 } > >> }; > >> > >> +const AVCodecTag ff_codec_bmp_tags_unofficial[] = { > >> + { AV_CODEC_ID_HEVC, MKTAG('H', 'E', 'V', 'C') }, > >> + { AV_CODEC_ID_NONE, 0 } > >> +}; > >> + > >> const AVCodecTag ff_codec_wav_tags[] = { > >> { AV_CODEC_ID_PCM_S16LE, 0x0001 }, > >> /* must come after s16le in this list */ > >> diff --git a/libavformat/riff.h b/libavformat/riff.h > >> index 323aa38b4d..21078b77c8 100644 > >> --- a/libavformat/riff.h > >> +++ b/libavformat/riff.h > >> @@ -73,6 +73,8 @@ int ff_get_wav_header(AVFormatContext *s, AVIOContext > *pb, AVCodecParameters *pa > >> extern const AVCodecTag ff_codec_bmp_tags[]; // exposed through > avformat_get_riff_video_tags() > >> extern const AVCodecTag ff_codec_wav_tags[]; > >> > >> +extern const AVCodecTag ff_codec_bmp_tags_unofficial[]; > > > > Imo, this is far too complicated to avoid writing files > > that all other relevant applications write happily. > > I am personally OK if we simply add the tag to ff_codec_bmp_tags but there > was an uproar against supporting writing such files. > > IMHO the cleanest way of doing things is allowing writing files _if_ > std_complience is ALLOW_UNOFFICIAL, and otherwise rejecting it, but I am > not intereseted in implementing this, but if you are then you can, and in > order to separate the standard list and the unofficial list, you must have > two... > > Regards, > Marton > That was my suggestion as well. It's what we do in movenc when dealing with codecs that have non-finished encapsulation specs (VP9/AV1 at some point, FLAC currently, etc). _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".