From patchwork Tue Oct 18 03:18:01 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 1045 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.133 with SMTP id o127csp533248vsd; Mon, 17 Oct 2016 20:19:53 -0700 (PDT) X-Received: by 10.28.67.6 with SMTP id q6mr9768355wma.43.1476760793207; Mon, 17 Oct 2016 20:19:53 -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 o5si45860992wjf.4.2016.10.17.20.19.50; Mon, 17 Oct 2016 20:19:53 -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 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 082806898B9; Tue, 18 Oct 2016 06:19:46 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-yw0-f195.google.com (mail-yw0-f195.google.com [209.85.161.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 07DE4680D4E for ; Tue, 18 Oct 2016 06:19:39 +0300 (EEST) Received: by mail-yw0-f195.google.com with SMTP id u124so7529055ywg.1 for ; Mon, 17 Oct 2016 20:19:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:in-reply-to:references; bh=lFC7OrStvFi9TcJx11mi6efhnIoHEmN7rtj1BSuoOKQ=; b=BEqthZp5njFCEVAM8Qs28P3wotMJwfdPVyc6nKSo3PpLkw4kIIxHqoNh5epALY0mE7 yBYiQfOKp5w1AteOUVwuqT/AjHnOM4pCe23TGPVf8K6QPr7TvKYnxJEHJA0pPlnG5eTO EgtI6dD6Jxgk2UxLg050N+tVXC5OLtPxdEL/eRQAXhWYWD1HS4Kte0gfQMSA/ufKR2SD V2yfMMtNDcmcLPAOmFfW/HTGJngnVh/C4qCzYKPISWwHnRg/YqXr214jphuCGC1rZZXx 9ogNMD46wNVBjTFsZFjDu0ccSO/u6tjyDZbjUxBhX41ohGtCOlhAC/t1L6sowyJlD0pW bmvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=lFC7OrStvFi9TcJx11mi6efhnIoHEmN7rtj1BSuoOKQ=; b=CT2coYYzckAxaNcRtWxUiZpCHzj+nZoq4+LjslPac1pevMsxsajM0oloUqY5seQn0y xKuQGX5pvTJs97AXaZwtgBe3OlD7t+SZU31fRTFkQi59b/5DPsvpnqAP7EXpnGRYA2MW tKj2LsVYDdKBKEP7k5+RKUWR4zSJKIfPCCSKQ6dsSjRdU6ishqKqCuvv3qoJzz9Wsod4 hTvT4FFb0tqvrMwGjPaRo+VWcgw8vhZhB2mAm7snwBeovLso3fl+4Qnxx/OfqTS3JJQZ 1f7mqpUQfBdoOz7glY4/GnVw1Lp8Pgjk0xedN9mErhBJTVBhyjEVCeUI0J2acixtO2Pa oSrA== X-Gm-Message-State: AA6/9Rknna+ZvjBn4hDiCcTWncxiYvWs3ekihfVDgqsjPiTLVKvJGBSwJ3FYmYI8fPKqPA== X-Received: by 10.13.211.6 with SMTP id v6mr694903ywd.328.1476760779607; Mon, 17 Oct 2016 20:19:39 -0700 (PDT) Received: from localhost.localdomain ([181.22.59.227]) by smtp.gmail.com with ESMTPSA id x188sm13011477ywx.8.2016.10.17.20.19.37 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 17 Oct 2016 20:19:39 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Tue, 18 Oct 2016 00:18:01 -0300 Message-Id: <20161018031801.4312-1-jamrial@gmail.com> X-Mailer: git-send-email 2.9.1 In-Reply-To: <20161018010044.GP4602@nb4> References: <20161018010044.GP4602@nb4> Subject: [FFmpeg-devel] [PATCH 2/3 v2] avformat/matroskadec: support parsing Chroma Location elements 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" Signed-off-by: James Almer --- libavformat/matroska.h | 14 ++++++++++++++ libavformat/matroskadec.c | 7 +++++++ 2 files changed, 21 insertions(+) diff --git a/libavformat/matroska.h b/libavformat/matroska.h index 8ad89da..13155e5 100644 --- a/libavformat/matroska.h +++ b/libavformat/matroska.h @@ -317,6 +317,20 @@ typedef enum { MATROSKA_VIDEO_DISPLAYUNIT_UNKNOWN = 4, } MatroskaVideoDisplayUnit; +typedef enum { + MATROSKA_COLOUR_CHROMASITINGHORZ_UNDETERMINED = 0, + MATROSKA_COLOUR_CHROMASITINGHORZ_LEFT = 1, + MATROSKA_COLOUR_CHROMASITINGHORZ_HALF = 2, + MATROSKA_COLOUR_CHROMASITINGHORZ_NB +} MatroskaColourChromaSitingHorz; + +typedef enum { + MATROSKA_COLOUR_CHROMASITINGVERT_UNDETERMINED = 0, + MATROSKA_COLOUR_CHROMASITINGVERT_TOP = 1, + MATROSKA_COLOUR_CHROMASITINGVERT_HALF = 2, + MATROSKA_COLOUR_CHROMASITINGVERT_NB +} MatroskaColourChromaSitingVert; + /* * Matroska Codec IDs, strings */ diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index a5d3c0e..722d0b0 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -1827,6 +1827,13 @@ static int mkv_parse_video_color(AVStream *st, const MatroskaTrack *track) { if (track->video.color.range != AVCOL_RANGE_UNSPECIFIED && track->video.color.range <= AVCOL_RANGE_JPEG) st->codecpar->color_range = track->video.color.range; + if (track->video.color.chroma_siting_horz && track->video.color.chroma_siting_vert && + track->video.color.chroma_siting_horz < MATROSKA_COLOUR_CHROMASITINGHORZ_NB && + track->video.color.chroma_siting_vert < MATROSKA_COLOUR_CHROMASITINGVERT_NB) { + st->codecpar->chroma_location = + avcodec_chroma_pos_to_enum((track->video.color.chroma_siting_horz - 1) << 7, + (track->video.color.chroma_siting_vert - 1) << 7); + } if (has_mastering_primaries || has_mastering_luminance) { // Use similar rationals as other standards.