From: "Tomas Härdin" <git@haerdin.se> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH] avcodec: ViewQuest VQC decoder Date: Fri, 07 Oct 2022 11:38:29 +0200 Message-ID: <97c2418eddefd9c061bd166057637a3e2caa1fb2.camel@haerdin.se> (raw) In-Reply-To: <004802c9d634e3f66566978f04e276a7fedd1a5c.1665053079.git.pross@xvid.org> tor 2022-10-06 klockan 21:45 +1100 skrev Peter Ross: > > +static av_cold int vqc_decode_init(AVCodecContext * avctx) > +{ > + static AVOnce init_static_once = AV_ONCE_INIT; > + VqcContext *s = avctx->priv_data; > + > + s->vectors = av_malloc((avctx->width * avctx->height * 3) / 2); > + if (!s->vectors) > + return AVERROR(ENOMEM); > + > + s->coeff = av_malloc(2 * avctx->width * sizeof(int16_t)); > + if (!s->coeff) > + return AVERROR(ENOMEM); > + > + s->tmp1 = av_malloc(avctx->width * sizeof(int16_t) / 2); > + if (!s->tmp1) > + return AVERROR(ENOMEM); > + > + s->tmp2 = av_malloc(avctx->width * sizeof(int16_t) / 2); av_malloc_array() perhaps? Not that these are likely to overflow since max pixels is usually far away from INT_MAX > +static uint8_t sat1(int x) > +{ > + return x >= -128 ? x <= 127 ? x + 0x80 : 0xFF : 0x00; > +} Use av_clip*() > +static uint8_t sat2(int x) > +{ > + return x >= -128 ? x <= 127 ? x + 0x80 : 0x00 : 0xFF; > +} Doesn't look like av_clip() will work here. Or? > +static int vqc_decode_frame(AVCodecContext *avctx, AVFrame * rframe, > + int * got_frame, AVPacket * avpkt) > +{ > + VqcContext *s = avctx->priv_data; > + int ret; > + uint8_t * buf = avpkt->data; > + int cache, seed[7], gamma, contrast; > + > + if (avpkt->size < 7) > + return AVERROR_INVALIDDATA; > + > + if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) > + return ret; > + > + av_log(avctx, AV_LOG_DEBUG, "VQC%d format\n", (buf[2] & 1) + 1); > + > + if (((buf[0] >> 1) & 7) != 5) { > + avpriv_request_sample(avctx, "subversion != 5\n"); > + return AVERROR_PATCHWELCOME; > + } > + > + cache = buf[4] | (AV_RL16(buf + 5) << 8); AV_RL24() No tests? Looks like samp.avi would make a fine addition to FATE /Tomas _______________________________________________ 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-10-07 9:38 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-10-06 10:45 Peter Ross 2022-10-06 12:54 ` Andreas Rheinhardt 2022-10-07 9:38 ` Tomas Härdin [this message] 2022-10-07 10:38 ` Andreas Rheinhardt 2022-10-07 12:29 ` Tomas Härdin 2022-10-07 12:33 ` Andreas Rheinhardt 2022-10-07 12:48 ` Tomas Härdin
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=97c2418eddefd9c061bd166057637a3e2caa1fb2.camel@haerdin.se \ --to=git@haerdin.se \ --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