From patchwork Fri May 5 21:09:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 3582 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.3.129 with SMTP id 123csp418362vsd; Fri, 5 May 2017 14:15:05 -0700 (PDT) X-Received: by 10.28.39.7 with SMTP id n7mr6344332wmn.129.1494018905742; Fri, 05 May 2017 14:15:05 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id w105si7179729wrc.147.2017.05.05.14.15.05; Fri, 05 May 2017 14:15:05 -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; 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=NONE 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 D902E6898C2; Sat, 6 May 2017 00:14:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt0-f196.google.com (mail-qt0-f196.google.com [209.85.216.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9FB6B688378 for ; Sat, 6 May 2017 00:14:51 +0300 (EEST) Received: by mail-qt0-f196.google.com with SMTP id r58so2438385qtb.2 for ; Fri, 05 May 2017 14:14:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=taYI1Z8glmfUXukNXSDf/o2XUupm5UVPnzycCUpJg1Y=; b=IZjubWLz4TnfBY70fou8BnaQe0IpRkeox41oTcUfx4sX2Z4McM//sYPS7zpENawRsx oyRLShoHAK1oDhJ2uT92OzKlQzuwBkKiqywsbl185hhLJLbsJzmLmk2j57v2Nubz7/8m i++QoANbyaxHPS1L7pTk8bXf3PiUMd/ZlF130FJUdIeLnmfttR2eqjA51GztDxT1ghB1 QJ2Hp8LSfNMa4gr9wu2Tka3ZHinb/LtQO76b93zijx2mwmaczA3zT1hH4z+vBju3Fggr +8sIX3DuIDkavLFpSlFtAI8mylDzJFtT8n5YvflMc5d/XpeaAjZQ0N0/LnH3IRRL7wjK Ytlw== 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; bh=taYI1Z8glmfUXukNXSDf/o2XUupm5UVPnzycCUpJg1Y=; b=rX376uNS6IqiFrCXheeMgX0taHCo1Kvx9Ie3c0EJt/1kWyS1ge4H3VIFH0nRAI55zB N8kPbSpBzQAgw/YFYp0jggAEoSkneUS2c7lz5ZYUoeHT7rQn18vOtDArhpGygK/z8Pbq 8HdAVvh9FaehKDL4dzWGvfImIsL6UfHa4PEeuNURqGiY5OPGeDGbCKEu93YKrX7Zs57a vQkuBgGrxzvFUgb5dDbJsjibHtWWhqOqPEFG335M7meDFf/JACpZp1s5uDjMb67f/iBp +eBya7I3sgr7SRzp7hRqcuEpMWGIy3J2+voAmkkUTFHxDz1YNEtazKtMHW7xuPpj8X1I lvCQ== X-Gm-Message-State: AN3rC/7doZK9UtQbUu0m1CkDZNuOwP2lqaeG68SJFbBqpBLWdTYi9N4E 4FbRb41rVCCI7BKiYSo= X-Received: by 10.200.53.54 with SMTP id y51mr48856085qtb.45.1494018583543; Fri, 05 May 2017 14:09:43 -0700 (PDT) Received: from localhost.localdomain ([181.231.116.134]) by smtp.gmail.com with ESMTPSA id x27sm1197631qtb.54.2017.05.05.14.09.41 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 05 May 2017 14:09:43 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 5 May 2017 18:09:23 -0300 Message-Id: <20170505210923.9488-1-jamrial@gmail.com> X-Mailer: git-send-email 2.12.1 Subject: [FFmpeg-devel] [PATCH] hevc_sei: add support for User Data Unregistered SEI messages 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" Based on h264_sei code. Only print the user data for now. Signed-off-by: James Almer --- libavcodec/hevc_sei.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/libavcodec/hevc_sei.c b/libavcodec/hevc_sei.c index c5054bfaab..1d40ed9371 100644 --- a/libavcodec/hevc_sei.c +++ b/libavcodec/hevc_sei.c @@ -232,6 +232,30 @@ static int decode_nal_sei_user_data_registered_itu_t_t35(HEVCSEIContext *s, GetB return 0; } +static int decode_nal_unregistered_user_data(HEVCSEIContext *h, GetBitContext *gb, + void *logctx, int size) +{ + uint8_t *user_data; + int i; + + if (size < 16 || size >= INT_MAX - 16) + return AVERROR_INVALIDDATA; + + user_data = av_mallocz(size + AV_INPUT_BUFFER_PADDING_SIZE); + if (!user_data) + return AVERROR(ENOMEM); + + for (i = 0; i < size; i++) + user_data[i] = get_bits(gb, 8); + + if (strlen(user_data + 16) > 0) + av_log(logctx, AV_LOG_DEBUG, "user data:\"%s\"\n", user_data + 16); + + av_free(user_data); + + return 0; +} + static int active_parameter_sets(HEVCSEIContext *s, GetBitContext *gb, void *logctx) { int num_sps_ids_minus1; @@ -288,6 +312,8 @@ static int decode_nal_sei_prefix(GetBitContext *gb, HEVCSEIContext *s, const HEV return 0; case HEVC_SEI_TYPE_USER_DATA_REGISTERED_ITU_T_T35: return decode_nal_sei_user_data_registered_itu_t_t35(s, gb, size); + case HEVC_SEI_TYPE_USER_DATA_UNREGISTERED: + return decode_nal_unregistered_user_data(s, gb, logctx, size); default: av_log(logctx, AV_LOG_DEBUG, "Skipped PREFIX SEI %d\n", type); skip_bits_long(gb, 8 * size);