From patchwork Wed Apr 17 22:53:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 12786 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 9C10F446A47 for ; Thu, 18 Apr 2019 01:53:13 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7E723689F00; Thu, 18 Apr 2019 01:53:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C8825680893 for ; Thu, 18 Apr 2019 01:53:06 +0300 (EEST) Received: by mail-io1-f50.google.com with SMTP id x7so434691ioh.4 for ; Wed, 17 Apr 2019 15:53:06 -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=XTdpJaaDuGLV8M2NBPiGvaEdFIz8RCXaB9CgorQxyC4=; b=L4cR9j7Pxw/HcrMt3uRaQ1FnzleDnh1GSDXjYCiBCmyslQMNrGzadYUBV0hzukRky8 bYvJZPb4njujXzngcwqoQSbCME6b0mYtq36nn4jbatimaUicI4a352UA9StXKSJzzFFN 4vJgGctJIXzM1sJxNTNLvgIU3FEJ9XInAuWHlzAadFcHaNvDfEV30bBxxVbOZUg44tqi ksCGpegWj4TMaW74fBNdRdlxMVARfYruDe0m0i6Cklplu4cQ1v4gLIWbQCeuquyh0ZZs E4nKhZoDGplPNldmvlw3v3RYh9T79A3kJHrRdnvDjHvkuXIFNO3ZtHlKLVqQmtgUVr2c Sf5w== 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=XTdpJaaDuGLV8M2NBPiGvaEdFIz8RCXaB9CgorQxyC4=; b=GdXbm3KEXAJSTGU/cOmdwXDoF+H0GAWsd0F4sTVYd7lHyS9BZVfPj3DhiuDYKr62B1 HlOFIe/5Z+c9gZG4hHvumbO84r9AXuPc6qlyrIqkpd0XycZOUlUzxrWOVJ4stC7npvHq QSpBMLTCCoFq2fB47MjDFQYjhW45gmU5UsNjlXEAf9Nhi4G1s5bAWGn7bwWtT63xvueR ILjPrzx47ZpM+XWHE/F1ObJQp/47ZUtElLNaqejAmraEtFgYf6J/B5aWIEtSeOyyTF8S bQsl99BpGe0GSg7neMcXqVEkMwebDp1BfBQ6OS6gl/TxhpHNjrxbt9MMuSTWbz8GJsQZ 4O4w== X-Gm-Message-State: APjAAAV1yamSuhwPg+1gbDDIEt2CIpzPqrjmMCiY6r/NhM7pJgIJG0ix 2nokj1I11PeFlWqeKZoJcrEEJN+TIW3vmy525R4G4w== X-Google-Smtp-Source: APXvYqzImMY5TdEVDtaIxVjEPl3M5JtQ9rpNsJOWJppQ1u351FRROnLYrVFCkweigWPElGA46tu1be5mKF18fkc/VKU= X-Received: by 2002:a6b:7b03:: with SMTP id l3mr44137743iop.250.1555541585085; Wed, 17 Apr 2019 15:53:05 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:5503:0:0:0:0:0 with HTTP; Wed, 17 Apr 2019 15:53:04 -0700 (PDT) From: Carl Eugen Hoyos Date: Thu, 18 Apr 2019 00:53:04 +0200 Message-ID: To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH]lavf/vc1dec: Reduce probe score for streams with invalid frames 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! Attached patch fixes ticket #7853. Please comment, Carl Eugen From 55851640fa9e4d23c6c32bf33a46927815544040 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 18 Apr 2019 00:50:48 +0200 Subject: [PATCH] lavf/vc1dec: Reduce probe score for streams with invalid frames. Fixes ticket 7853. --- libavformat/vc1dec.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libavformat/vc1dec.c b/libavformat/vc1dec.c index f4101ae..5da5eb6 100644 --- a/libavformat/vc1dec.c +++ b/libavformat/vc1dec.c @@ -26,7 +26,7 @@ static int vc1_probe(const AVProbeData *p) { - int seq = 0, entry = 0, frame = 0, i; + int seq = 0, entry = 0, invalid = 0, frame = 0, i; for (i = 0; i < p->buf_size + 5; i++) { uint32_t code = AV_RB32(p->buf + i); @@ -39,16 +39,19 @@ static int vc1_probe(const AVProbeData *p) profile = (p->buf[i] & 0xc0) >> 6; if (profile != PROFILE_ADVANCED) { seq = 0; + invalid++; continue; } level = (p->buf[i] & 0x38) >> 3; if (level >= 5) { seq = 0; + invalid++; continue; } chromaformat = (p->buf[i] & 0x6) >> 1; if (chromaformat != 1) { seq = 0; + invalid++; continue; } seq++; @@ -56,8 +59,10 @@ static int vc1_probe(const AVProbeData *p) break; } case VC1_CODE_ENTRYPOINT: - if (!seq) + if (!seq) { + invalid++; continue; + } entry++; i += 2; break; @@ -71,7 +76,7 @@ static int vc1_probe(const AVProbeData *p) } } - if (frame > 1) + if (frame > 1 && frame >> 1 > invalid) return AVPROBE_SCORE_EXTENSION / 2 + 1; if (frame == 1) return AVPROBE_SCORE_EXTENSION / 4; -- 1.7.10.4