From patchwork Thu May 10 20:50:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 8914 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:155:0:0:0:0:0 with SMTP id c82-v6csp1508840jad; Thu, 10 May 2018 13:57:11 -0700 (PDT) X-Google-Smtp-Source: AB8JxZq5PyhCfoF9gNh+zTaiGT5lox7SFE/hLMsKWdKrayjJnF+sXG3QT3Ia/hqZqsgIwqNsKInT X-Received: by 2002:a1c:dca:: with SMTP id 193-v6mr292378wmn.36.1525985831767; Thu, 10 May 2018 13:57:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525985831; cv=none; d=google.com; s=arc-20160816; b=xK94qoKk8XO7Zp+y0hD3dMHfmwVYedyjHSiVp6L/1PbnTVGba4OuqZT0tisfWZxc7L 6LRTQdFfgvy1t0QSgi73+Mj0u1WTBRPpJ9V8+TZ1yKDJIpCbttfImx2D9gs93eD5w2GH cGVGDbygQbg6rzbgjaZW+Pf4yCGIBk/WqRGK0rwmScCVcxY3lYmOJ2HKUjWTfEMYpfqJ ZtUmdpl3maUsQUwxIB9uNJfLtaLg5/Mr7fFYIhVnFnHXc/2n2L2RXC+88iuGw5+Y5l51 DCszrGW6DEbvBO5NmCbD1SGJ6OhzrpqRWdRZqW6QgAg4W/ID3oZSkLN7LavXVpymW035 iiyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :message-id:date:from:mime-version:dkim-signature:delivered-to :arc-authentication-results; bh=PAlhQR91Bu2Xt6cQd4Z6STVItzWMQbOAxgDIbQKt2Dw=; b=w6Rdqun4uV71XTBfWlF1sWlAC4UstmTjgqJfB5YNI/+bdYHn4OQVoSW6whrZLPpg+0 0yy6lFNT90achK//5qyp78Yc48YLDCnXWn05/WNEwj9QJtIfXXmUu4UM9E5WyNLwQckT o/zUs6a+ifINba4sNH2o3+229o+Cqvxc2dV9QzAOGjBhiK1sFeltFWHOlNSaEgpzt5L5 VPKtEyEppBVHTSt8nnhiN9YJLdd5VgAxvX5nn+1fHFr0aPTyzQjpdN4GKNJoMWLLd/gf XqYrjVvm0z3XVBUd5Vebzg/Ka9X0UD1iNjyHBpdvzWrALQsar2VH34dEMrDXOcGLwUxe EgOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=aHnbdibg; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 184-v6si1347411wmt.166.2018.05.10.13.57.11; Thu, 10 May 2018 13:57:11 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=aHnbdibg; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 58AB568A8C2; Thu, 10 May 2018 23:56:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io0-f180.google.com (mail-io0-f180.google.com [209.85.223.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 94B0968A8C4 for ; Thu, 10 May 2018 23:56:26 +0300 (EEST) Received: by mail-io0-f180.google.com with SMTP id g14-v6so4628734ioc.7 for ; Thu, 10 May 2018 13:57:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=uUp0Guo3aB3YKDla+LmBLC/p5X+/gsdUO8PFASuMrwM=; b=aHnbdibghX/i07NE/WrFsC+InbkxfcoS3+UdPz7NvMEf9ADSKEKhdFPlg+rd15FAQ9 pcuODFhcHJhkVDleIyrIBMdfEKVRHy48ooGee8S4OFBBpE2fUUhIOLB14lCQKGP4oGAb 6nsdlfkvg7eVQ1JemCin2fE3enQnEAxi3faAzLzivq15WdMsR2c7A1FTNEv+fvDRkNDC bJ3S6ppA6H7P9zNgKm+FFfnEftjmdAjkAsxzWbmvhUn/rz0cUB/+rif8JJ3EHpZERPC8 4mGtFdJwy8cExvvovP3LaRhMa620PyYiBCQ2jiAA4H/8+GHukZsAgxR7H5u+QCcwQiL2 6+2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=uUp0Guo3aB3YKDla+LmBLC/p5X+/gsdUO8PFASuMrwM=; b=GFL4+DX1bAD5k3H7ec0y7fhO3VOCzWsXpoSBQpdpqXXyB0A4am2r3Ztk7Gy5pgMTE0 k7OabT1YW7OBF2ePWk7Nbbc79lCw5tGSfb0OKZdFXD6orTK+tnTLOB/nw+DVarGg31bR 3gTfxDuKh4icuVEdWlmlKfLP2YtrHLpWlnUIgwpQ191OizyXCaDHPt7s99ZJwKCQMX3b gdFis8o62WU7Cw9A7vObzOPByxN3G7/MHQXPSwf5JPUKB1DGzt+8TcwhUMGtA6+yyZYh A90SMBibq/KCrqgXxfy1Z820hVNWZhx0Q6MTk6GWJJkJI1vLG7dqrc9AU8iPR5wjcAoX Wt+w== X-Gm-Message-State: ALKqPweGdOvU5J4cUfXcb6yQwrEQsGhpoi7Zogd+umd/i02h7IcMKw36 GYedkP7iP4/s+vRgvABJX/1qvSrL/cGimaVNjrk= X-Received: by 2002:a6b:ac85:: with SMTP id v127-v6mr3143054ioe.286.1525985433887; Thu, 10 May 2018 13:50:33 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:81c6:0:0:0:0:0 with HTTP; Thu, 10 May 2018 13:50:33 -0700 (PDT) From: Carl Eugen Hoyos Date: Thu, 10 May 2018 22:50:33 +0200 Message-ID: To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH]lavc/v210dec: Skip Canopus C210 extradata X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Hi! Peter Bubestinger provided a C210 file where every frame starts with 64 bytes of extradata (24 byte "INFO", 16 byte "RDRT", rest "FIEL"). Piotr confirmed that the Canopus decoder accepts files without the extradata but consumes it if present. Attached patch fixes the file in question visually. Please comment, Carl Eugen From 42b101a00cc1d78ee6a5207ac09546b67adf7fe5 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 10 May 2018 22:45:07 +0200 Subject: [PATCH] lavc/v210dec: Skip Canopus C210 extradata. Unbreaks files with unknown extradata. --- libavcodec/v210dec.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/v210dec.c b/libavcodec/v210dec.c index 99199dd..ddc5dbe 100644 --- a/libavcodec/v210dec.c +++ b/libavcodec/v210dec.c @@ -27,6 +27,7 @@ #include "libavutil/bswap.h" #include "libavutil/internal.h" #include "libavutil/mem.h" +#include "libavutil/intreadwrite.h" #define READ_PIXELS(a, b, c) \ do { \ @@ -92,6 +93,11 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, return AVERROR_INVALIDDATA; } } + if ( avctx->codec_tag == MKTAG('C', '2', '1', '0') + && avpkt->size > 64 + && AV_RN32(psrc) == AV_RN32("INFO") + && avpkt->size - 64 >= stride * avctx->height) + psrc += 64; aligned_input = !((uintptr_t)psrc & 0xf) && !(stride & 0xf); if (aligned_input != s->aligned_input) { -- 1.7.10.4