From patchwork Tue Sep 18 22:31:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Thompson X-Patchwork-Id: 10382 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:12c4:0:0:0:0:0 with SMTP id 65-v6csp13555jap; Tue, 18 Sep 2018 15:35:00 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZQpignQTbJ13oeSp017c+ZklXk2KAmMFuesEqZk7fYOE7GM/4O/LrW4HyjyVV9O4epQ7Xs X-Received: by 2002:a1c:c1c8:: with SMTP id r191-v6mr17459600wmf.103.1537310100821; Tue, 18 Sep 2018 15:35:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537310100; cv=none; d=google.com; s=arc-20160816; b=ncgqpnUsaT6MYqNXsQYCG6XkadEWQnwUztwD/mQlosM2bEtHcKwEvoa1rN9mEogddb MCsZi036GST0vnByjO4Bks0l7HLgMIQE4AgyMgZNYxctFYrlevNoDCz23fWn24Kze0la ZBKrM87IlI/N1jKwQCeaQz60lcUL/srRoNaMlHuC8L6ouULdhJC0M5ww/DqO9rXJ5/uw CrKBG4R8umHUfsxqR9Aaeptg8uJgDmGOvtumGuPhdee2G7TSsMZHKFAs9QXJn/IyMZ9l 8aN5mG+M4PcI+eOTuVT4bvyTO+MX0bvRXDx18ENfd+k9P1eDLUAkrFnFtmYLVR3riu/n Sx6Q== 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:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=7s4vbwrroutWsPDSO7MPlUGEKL4koqaJGahsfCPVI1Q=; b=FEX/5QRDluvJ4/zcV8JqqO8iWe/l/xF8k049ABxyOSzTu4JibQQxiTzUDQEQMQBbyh Enb3xt3rEjtW1sD67YGcC7XJXnroBD8agiGrZk2Jg4wb4O0Txh4coMJL0hlgUKg6U2nn eC4qebIJ8uoaI00R9zD9URnsGh80Oc89/JhJQNjE5sZGNDWS4lupk1ZYYH1P9wFr0vsS FfZly5wTZEwZDt+9ST0ddTZ2KSntMIiK79eHLr+Ipkp7L2ymV7HgHuxRF04B6EvI/rsK vh1k53gYyx5tC2fYZNqj0ekNb3TiyrVT/Yac1Gsre3TnIyQBYfIv9/fRCVidReiLl0qY dLgQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@jkqxz-net.20150623.gappssmtp.com header.s=20150623 header.b=ZXIvZGwI; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b11-v6si4049363wrj.375.2018.09.18.15.35.00; Tue, 18 Sep 2018 15:35:00 -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=@jkqxz-net.20150623.gappssmtp.com header.s=20150623 header.b=ZXIvZGwI; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7F3A468A61D; Wed, 19 Sep 2018 01:31:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 58AC068A5FF for ; Wed, 19 Sep 2018 01:31:34 +0300 (EEST) Received: by mail-wm1-f46.google.com with SMTP id j25-v6so7996286wmc.1 for ; Tue, 18 Sep 2018 15:31:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references; bh=5DjlSXWYiL/XMDzGFfkH4qXTq+b2lhjL5bX0fJ2PlYk=; b=ZXIvZGwI7v9Ykk/fRhr0TZEMRew/F/XNcYkl95CMXvCGBhe1PSWeb37EavctAzzAri IGH4CicCV2HSdrSS4/cCy206tchcBlTgreNx79vEe4ZwUif9uljFl9M5OnIVutSSN58t W+HjsiqaVuTCSSyMdXRnPPjsGgBT+k8oi72BdFWCFXJjkPgH2ymzL3tkhK0Cl/Gx9I2G Qw6goz39PjsD55L+qIJxSO3YEQrkKze89HsczERcIYwoEngnERHNNGRmeaTHZtm7jCX8 Khv3qRiLV4tTalcNlOtogL2TATQznbz44N+j6yKdHX4JPrs3/Zbor796Jf9eWxcN5l9f 9IGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=5DjlSXWYiL/XMDzGFfkH4qXTq+b2lhjL5bX0fJ2PlYk=; b=MLroSzaDMFOsFYBlA57yVhAvWeC4wV3+9jcIDsyiyC7TZBEQRDbrk0EiD8x9QNuVCL S5aRGdGMdj6uhjdtbdxh37yx7/XyT6uGICGUlFhAuM1dHLdJ+eEyS9TDRd9zj2D18Iya WJDYxcFK0d1wR82ldKUF1fv/iUGHo89GsvWC7BVNQvwK4oG7wS1IMFwEaNzX1w7b03H/ epar21/pwaxauDBg453fGeaZKblEQXCosVvi8oYfHrhFGJw38FHMbLaEypjHf3MhVYKK DnUwv3vRSsBzM8NYyZ/9BKk18cpIep330MRJ/0vE6up4EFiuoRcld60bSGNwXDzvDDnH 8fbA== X-Gm-Message-State: APzg51BQb+e8UG+RoUuRQW/TGFXFUPhzNCVuqR3p+YDmbm52iJ0KWO6I wDMfJrSSMApZ9+sIJNn2E5tf+8frQ/0= X-Received: by 2002:a1c:3c87:: with SMTP id j129-v6mr17565980wma.40.1537309906486; Tue, 18 Sep 2018 15:31:46 -0700 (PDT) Received: from rywe.jkqxz.net (cpc91242-cmbg18-2-0-cust650.5-4.cable.virginm.net. [82.8.130.139]) by smtp.gmail.com with ESMTPSA id e141-v6sm4863826wmd.32.2018.09.18.15.31.45 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Sep 2018 15:31:45 -0700 (PDT) From: Mark Thompson To: ffmpeg-devel@ffmpeg.org Date: Tue, 18 Sep 2018 23:31:02 +0100 Message-Id: <20180918223116.14322-25-sw@jkqxz.net> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180918223116.14322-1-sw@jkqxz.net> References: <20180918223116.14322-1-sw@jkqxz.net> Subject: [FFmpeg-devel] [PATCH v4 24/38] cbs_h264: Infer default VUI values if VUI parameters are not present 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- libavcodec/cbs_h264_syntax_template.c | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/libavcodec/cbs_h264_syntax_template.c b/libavcodec/cbs_h264_syntax_template.c index 7befde4b68..32e6acd68e 100644 --- a/libavcodec/cbs_h264_syntax_template.c +++ b/libavcodec/cbs_h264_syntax_template.c @@ -213,6 +213,46 @@ static int FUNC(vui_parameters)(CodedBitstreamContext *ctx, RWContext *rw, return 0; } +static int FUNC(vui_parameters_default)(CodedBitstreamContext *ctx, + RWContext *rw, H264RawVUI *current, + H264RawSPS *sps) +{ + infer(aspect_ratio_idc, 0); + + infer(video_format, 5); + infer(video_full_range_flag, 0); + infer(colour_primaries, 2); + infer(transfer_characteristics, 2); + infer(matrix_coefficients, 2); + + infer(chroma_sample_loc_type_top_field, 0); + infer(chroma_sample_loc_type_bottom_field, 0); + + infer(fixed_frame_rate_flag, 0); + infer(low_delay_hrd_flag, 1); + + infer(pic_struct_present_flag, 0); + + infer(motion_vectors_over_pic_boundaries_flag, 1); + infer(max_bytes_per_pic_denom, 2); + infer(max_bits_per_mb_denom, 1); + infer(log2_max_mv_length_horizontal, 15); + infer(log2_max_mv_length_vertical, 15); + + if ((sps->profile_idc == 44 || sps->profile_idc == 86 || + sps->profile_idc == 100 || sps->profile_idc == 110 || + sps->profile_idc == 122 || sps->profile_idc == 244) && + sps->constraint_set3_flag) { + infer(max_num_reorder_frames, 0); + infer(max_dec_frame_buffering, 0); + } else { + infer(max_num_reorder_frames, H264_MAX_DPB_FRAMES); + infer(max_dec_frame_buffering, H264_MAX_DPB_FRAMES); + } + + return 0; +} + static int FUNC(sps)(CodedBitstreamContext *ctx, RWContext *rw, H264RawSPS *current) { @@ -317,6 +357,8 @@ static int FUNC(sps)(CodedBitstreamContext *ctx, RWContext *rw, flag(vui_parameters_present_flag); if (current->vui_parameters_present_flag) CHECK(FUNC(vui_parameters)(ctx, rw, ¤t->vui, current)); + else + CHECK(FUNC(vui_parameters_default)(ctx, rw, ¤t->vui, current)); CHECK(FUNC(rbsp_trailing_bits)(ctx, rw));