From patchwork Sat Dec 23 02:14:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: wm4 X-Patchwork-Id: 6916 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.79.195 with SMTP id r64csp3059546jad; Fri, 22 Dec 2017 18:14:59 -0800 (PST) X-Google-Smtp-Source: ACJfBouxFSPbFtHXndyPU66MbarIO+PirEln1j3SyaR4uYjNZgAWuvBQZEBJP/8y4EgBsZqm9AxL X-Received: by 10.28.142.193 with SMTP id q184mr12656332wmd.62.1513995299077; Fri, 22 Dec 2017 18:14:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1513995299; cv=none; d=google.com; s=arc-20160816; b=Fo/80cFdhoZdEehwioKnwi+T3xPkWgq301n14crC6l+kSgQ3hSn7tv/ws6pkEnsvab ykthBhSFvO64/AkAhMrPeCkt3FFCFgrnrHqlxwx1NgmFFrjjrMSd2tLNoI0kk0qGvuKP 9qGi5bd0Wx0nszZ03+b6hnSx7V5toDAxMJbNH6CZJHPHswEIXJgJ9DwWeyie7ki4g3HL r4f5zIbO2l6loU66x55hpbuCtRf9kEHDesmcmok0ls9cjPDhEu5E5AEmTs/EkGx1N6rH Jms9GW+jEP+DjHX2akttrZrjExbNeddlT5kEBUR8CYU0V7OXLQ3n0saMfXVlYTqH1n92 3C7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=EJuOrxLw7OYLRUjssiQroiEN7QkJ0pXmXXbcP3vkI/8=; b=YVMEC9WkuK0dNSTEy06w1hiN0Ir38C5AfmbMHQEHJVA86RWqUacou27a1yKMSMXv4I xvXq8sMQf1K19khBzgdw7FsDe+fTd3CvBva1Che/sgO6+YCDvmjHhEHdEO+wq9PahOX4 wynpXHjpK0dQgedlRk3NWuRKs6MBWqxjmM3jGvcn6uQ/TFxKvUkXE1PSV0urWr3GPRZe BRVXlLba2NLaDzL0SaltelKSg90hirROknWHYFff6CtxJtJsSX9hm/S0Q25rPvtD1HlQ FYLgfYr1Ak8r7Le9dcVWDtk1hiDnWlJmfJq6RR5oS2OTGglHH68/hceoqYFQN5vTSPVJ o/gQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@googlemail.com header.s=20161025 header.b=dp8hiLn6; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p4si13069482wrc.266.2017.12.22.18.14.58; Fri, 22 Dec 2017 18:14:59 -0800 (PST) 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=@googlemail.com header.s=20161025 header.b=dp8hiLn6; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 86004680D03; Sat, 23 Dec 2017 04:14:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f41.google.com (mail-wm0-f41.google.com [74.125.82.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8F2D168036E for ; Sat, 23 Dec 2017 04:14:38 +0200 (EET) Received: by mail-wm0-f41.google.com with SMTP id f9so24602469wmh.0 for ; Fri, 22 Dec 2017 18:14:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=foBcHrrhdToZfWUjj66V1TiDYrNlULOjDFwkt6iNyGY=; b=dp8hiLn6SWiCaXbANfAje7AiTTz5A41d6Rxn/lWHU9O6xiDPHcPeDDtxma5LB5jJLM rWnQtj67QpRrZGVphrilxQsmoZmTVw2jpL5oE3L3qu5D8ZJEgCp3b4qvLNDTE1r3z45z O9gKqhMqVKODCalLHdoOjt61VXrXowlKueb5k3yFuzGGtWyIuWIsZFAbeRE72UAfPdCA hLm4ZvSGkYa1PYWjLxmTXh+yVypdIeXtYLJpcMyNLUhsLr0TqoljglS23g7/HbSaTYSX H0WjnPf3MUct5gE7pPoubOI0xL3ZUZW+qyjt9WJP2xgQv5JqJtjm8iEQldDXAM14PKkn bxtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=foBcHrrhdToZfWUjj66V1TiDYrNlULOjDFwkt6iNyGY=; b=F72WJudsvL/qXiknebzzgE44TRlEb+9/lGNoc7CfZxW5arb3pklRUhieCbEbH1dq2r vB9uQxtSwO9o/VtvYtA+Jm9/NAXlKN4953iIWOwM7JZR8KYBAHqe6kqRavIcrid4Eu+O c1n/A/EfAIqMd8qpfALxZ+AsBbjdRZ0Y5xWgBClIKifYMe/3ZNxyiXrN5OdRvm2c8L+i DXxN4k+nS8U/Q9HQMD0cQrSvygAXnpnnuzbBXRWwOncZevj6KURfMXxmSgscwHl/8ceQ fLb9wUF8BhpP2naYpH+Mc3preUOG078QFTcz68lLriGSWh+0lqHzKzGtAFE7MfQy4JSy JbqQ== X-Gm-Message-State: AKGB3mLM9QWmxErfiPwiyWQKQXdgAP3Rf52f2CDW4y0qlrd/EP1EDzgt 0Hjur9r51TFi7WwDUGXTpLb76Q== X-Received: by 10.28.207.8 with SMTP id f8mr13055239wmg.30.1513995289942; Fri, 22 Dec 2017 18:14:49 -0800 (PST) Received: from debian.speedport.ip (p2003006CCD4EDC353C06725800124D49.dip0.t-ipconnect.de. [2003:6c:cd4e:dc35:3c06:7258:12:4d49]) by smtp.googlemail.com with ESMTPSA id l17sm4814859wrl.9.2017.12.22.18.14.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Dec 2017 18:14:49 -0800 (PST) From: wm4 To: ffmpeg-devel@ffmpeg.org Date: Sat, 23 Dec 2017 03:14:49 +0100 Message-Id: <20171223021449.19578-1-nfxjfg@googlemail.com> X-Mailer: git-send-email 2.15.1 Subject: [FFmpeg-devel] [PATCH] h264: add AVOption to set x264_build default 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 Cc: wm4 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This provides a generic way to the API user to deal with files that either lack this SEI, or which have the SEI only in packets not passed to the decoder (such as the common case of the SEI being in the very firsat video packet, but decoding is started somewhere in the middle of the file). Bugs like 840b41b2a643fc8f0617c0370125a19c02c6b586 make this somewhat of a necessity. This intentionally uses the version in the SEI instead, if any is found. --- A bit crappy. Better than other workarounds I've thought of. And at least it doesn't require the API user to guess which x264 versions trigger which bugs. --- libavcodec/h264dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 1e98765439..8c9c6d9f3b 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -315,7 +315,6 @@ static int h264_init_context(AVCodecContext *avctx, H264Context *h) h->flags = avctx->flags; h->poc.prev_poc_msb = 1 << 16; h->recovery_frame = -1; - h->x264_build = -1; h->frame_recovered = 0; h->poc.prev_frame_num = -1; h->sei.frame_packing.arrangement_cancel_flag = -1; @@ -1037,6 +1036,7 @@ static const AVOption h264_options[] = { { "is_avc", "is avc", OFFSET(is_avc), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, 0 }, { "nal_length_size", "nal_length_size", OFFSET(nal_length_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 4, 0 }, { "enable_er", "Enable error resilience on damaged frames (unsafe)", OFFSET(enable_er), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VD }, + { "x264_build", "Assume this x264 version if no x264 version found in any SEI", OFFSET(x264_build), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, VD }, { NULL }, };