[FFmpeg-devel] [PATCH v20 08/10] avformat/mov_demuxer: Extended MOV demuxer to handle EVC video content

James Almer jamrial at gmail.com
Wed Apr 19 15:59:49 EEST 2023


On 4/18/2023 7:32 AM, Dawid Kozinski wrote:
> - Added evc extension to the list of extensions for ff_mov_demuxer
> 
> Signed-off-by: Dawid Kozinski <d.kozinski at samsung.com>
> ---
>   libavformat/demux.c | 1 +
>   libavformat/mov.c   | 3 ++-
>   2 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/libavformat/demux.c b/libavformat/demux.c
> index 06de71cd6e..912413c6a8 100644
> --- a/libavformat/demux.c
> +++ b/libavformat/demux.c
> @@ -120,6 +120,7 @@ static int set_codec_from_probe_data(AVFormatContext *s, AVStream *st,
>           { "mp3",        AV_CODEC_ID_MP3,          AVMEDIA_TYPE_AUDIO    },
>           { "mpegvideo",  AV_CODEC_ID_MPEG2VIDEO,   AVMEDIA_TYPE_VIDEO    },
>           { "truehd",     AV_CODEC_ID_TRUEHD,       AVMEDIA_TYPE_AUDIO    },
> +        { "evc",        AV_CODEC_ID_EVC,          AVMEDIA_TYPE_VIDEO    },
>           { 0 }
>       };
>       int score;
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index 057fd872b1..3d5c432697 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -2647,6 +2647,7 @@ static int mov_finalize_stsd_codec(MOVContext *c, AVIOContext *pb,
>       case AV_CODEC_ID_VP9:
>           sti->need_parsing = AVSTREAM_PARSE_FULL;
>           break;
> +    case AV_CODEC_ID_EVC:

You should also parse the evcC atom to get the extradata, same as h26*, 
mapping it to the generic mov_read_glbl() function in 
mov_default_parse_table[].

>       case AV_CODEC_ID_AV1:
>           /* field_order detection of H264 requires parsing */
>       case AV_CODEC_ID_H264:
> @@ -9305,7 +9306,7 @@ const AVInputFormat ff_mov_demuxer = {
>       .long_name      = NULL_IF_CONFIG_SMALL("QuickTime / MOV"),
>       .priv_class     = &mov_class,
>       .priv_data_size = sizeof(MOVContext),
> -    .extensions     = "mov,mp4,m4a,3gp,3g2,mj2,psp,m4b,ism,ismv,isma,f4v,avif",
> +    .extensions     = "mov,mp4,m4a,3gp,3g2,mj2,psp,m4b,ism,ismv,isma,f4v,avif,evc",

Isn't this the raw format extension? Why add it to the mp4 demuxer?

>       .flags_internal = FF_FMT_INIT_CLEANUP,
>       .read_probe     = mov_probe,
>       .read_header    = mov_read_header,


More information about the ffmpeg-devel mailing list