From: Soft Works <softworkz@hotmail.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH 1/8] lavc/avcodec: simplify codec id/type validity checking Date: Sun, 5 Jun 2022 05:23:18 +0000 Message-ID: <DM8P223MB0365783CC5AF48817C137226BAA39@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> (raw) In-Reply-To: <20220323155720.20017-1-anton@khirnov.net> > -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Anton > Khirnov > Sent: Wednesday, March 23, 2022 4:57 PM > To: ffmpeg-devel@ffmpeg.org > Subject: [FFmpeg-devel] [PATCH 1/8] lavc/avcodec: simplify codec id/type > validity checking > > On entry to avcodec_open2(), the type and id either have to be > UNKNOWN/NONE or have to match the codec to be used. > --- > libavcodec/avcodec.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c > index fbe4a5e413..dbaa9f78a2 100644 > --- a/libavcodec/avcodec.c > +++ b/libavcodec/avcodec.c > @@ -158,17 +158,15 @@ int attribute_align_arg avcodec_open2(AVCodecContext > *avctx, const AVCodec *code > codec = avctx->codec; > codec2 = ffcodec(codec); > > - if ((avctx->codec_type == AVMEDIA_TYPE_UNKNOWN || avctx->codec_type == > codec->type) && > - avctx->codec_id == AV_CODEC_ID_NONE) { > - avctx->codec_type = codec->type; > - avctx->codec_id = codec->id; > - } > - if (avctx->codec_id != codec->id || (avctx->codec_type != codec->type && > - avctx->codec_type != > AVMEDIA_TYPE_ATTACHMENT)) { > + if ((avctx->codec_type != AVMEDIA_TYPE_UNKNOWN && avctx->codec_type != > codec->type) || > + (avctx->codec_id != AV_CODEC_ID_NONE && avctx->codec_id != > codec->id)) { > av_log(avctx, AV_LOG_ERROR, "Codec type or id mismatches\n"); > return AVERROR(EINVAL); > } > - avctx->codec = codec; > + > + avctx->codec_type = codec->type; > + avctx->codec_id = codec->id; > + avctx->codec = codec; > > if (avctx->extradata_size < 0 || avctx->extradata_size >= > FF_MAX_EXTRADATA_SIZE) > return AVERROR(EINVAL); > -- This is causing a regression in ffprobe. The commit removes the special-case check for AVMEDIA_TYPE_ATTACHMENT which was required for ffprobe and had been added with e83c716e16c52fa56a78274408f7628e5dc719da. The demand from the commit message is not yet guaranteed to be fulfilled: > On entry to avcodec_open2(), the type and id either have to be > UNKNOWN/NONE or have to match the codec to be used. I have one verified example (maybe a second will follow), which is an MKV with an attachment "stream" of type "text". The found codec will be textdec of type 'subtitle' even though the stream type is attachment. Without the special condition for attachment streams, this is now causing ffprobe to error out with non-zero exit code and incomplete output. ------------------------------------------------------------------------ Example: [...] Stream #0:9: Attachment: text Metadata: filename : textfile.text mimetype : text/plain [text @ 000001AC32310340] Codec type or id mismatches Could not open codec for input stream 9 ------------------------------------------------------------------------ Regards, softworkz _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2022-06-05 5:23 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-03-23 15:57 Anton Khirnov 2022-03-23 15:57 ` [FFmpeg-devel] [PATCH 2/8] lavc/avcodec: only allocate the encoding frame for encoders Anton Khirnov 2022-03-23 16:29 ` James Almer 2022-04-11 8:39 ` [FFmpeg-devel] [PATCH] lavc/encode: drop EncodeSimpleContext Anton Khirnov 2022-04-11 9:16 ` Paul B Mahol 2022-04-11 16:32 ` James Almer 2022-03-23 15:57 ` [FFmpeg-devel] [PATCH 3/8] lavc: move default get_buffer2() to its own file Anton Khirnov 2022-03-23 15:57 ` [FFmpeg-devel] [PATCH 4/8] lavc/snow: only allocate mconly_picture for decoding Anton Khirnov 2022-03-24 23:07 ` Michael Niedermayer 2022-04-11 8:49 ` [FFmpeg-devel] [PATCH] " Anton Khirnov 2022-04-11 19:28 ` Michael Niedermayer 2022-04-13 10:21 ` Anton Khirnov 2022-03-23 15:57 ` [FFmpeg-devel] [PATCH 5/8] lavc/encode: add an encoder-specific get_buffer() variant Anton Khirnov 2022-03-23 16:26 ` James Almer 2022-04-11 9:05 ` [FFmpeg-devel] [PATCH] " Anton Khirnov 2022-03-23 15:57 ` [FFmpeg-devel] [PATCH 6/8] lavc/avcodec: only allocate decoding packets for decoders Anton Khirnov 2022-04-13 14:51 ` Andreas Rheinhardt 2022-03-23 15:57 ` [FFmpeg-devel] [PATCH 7/8] lavc/pthread_frame: do not copy AVCodecInternal contents Anton Khirnov 2022-03-23 15:57 ` [FFmpeg-devel] [PATCH 8/8] lavc: drop a confusing message about "thread emulation" Anton Khirnov 2022-04-13 10:23 ` [FFmpeg-devel] [PATCH 1/8] lavc/avcodec: simplify codec id/type validity checking Anton Khirnov 2022-06-05 5:23 ` Soft Works [this message] 2022-06-05 7:01 ` Anton Khirnov 2022-06-05 7:54 ` Soft Works 2022-06-05 7:59 ` Soft Works 2022-06-05 8:20 ` Anton Khirnov 2022-06-05 8:55 ` Paul B Mahol 2022-06-05 8:55 ` Soft Works 2022-06-05 9:15 ` Soft Works 2022-06-05 10:42 ` Anton Khirnov 2022-06-05 10:55 ` Soft Works 2022-06-05 11:10 ` Soft Works 2022-06-05 13:20 ` Anton Khirnov 2022-06-05 14:06 ` Soft Works
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=DM8P223MB0365783CC5AF48817C137226BAA39@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM \ --to=softworkz@hotmail.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git