From patchwork Wed Nov 7 23:11:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 10952 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 2F87344E157 for ; Thu, 8 Nov 2018 01:11:09 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9B33C68A260; Thu, 8 Nov 2018 01:10:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9E3E568A23A for ; Thu, 8 Nov 2018 01:10:33 +0200 (EET) Received: by mail-lj1-f180.google.com with SMTP id q186-v6so16301891ljb.5 for ; Wed, 07 Nov 2018 15:11:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=4SNZuzuqKjijuj8dS5mr91Cjc2uUD+GwuRGBFIdUgwE=; b=cHIsRSP5s60OiPTWfs+X1VjWhFeJm1Pr6RVWSIqto/B42fIkuNf1c65LZDeLAbyTwx swRUfiyeSBu0yVmOpiP0nBX21ZYriwYBkh2EEH2fSbyAtem4kzRye36e10WjsJBBczh9 EWuQ477g1jjDZ3qb4gk0iwqm7btWa+Mr7ghs8AKq02rLplv/MK8Qo4FhHoVURjoV59pS 4XMz+Fzx+B0TLA8Ueobr0xSuRLz9eBUEnUFeiEAnVuDTmtM8US6k0XGlS6dU7fwgvkI/ AqdA/XY/q+yNqebiVi+adcidjrDmiCD0a1RVai4crCSwfgYFfZhP2aSAYsoyVvpqq2Rv Ajmw== 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:mime-version :content-transfer-encoding; bh=4SNZuzuqKjijuj8dS5mr91Cjc2uUD+GwuRGBFIdUgwE=; b=IMJFltFJ+DFvggQkJaWp2ZxH1DYvY6kuaeGq47cYWIHOuW7u5HRxdhBTtvwniYwrbH GWwEWXKKH4TRb3qD+S3ohsIsnOOWhJ5WPc6KHJp07E6wacdjWzsta4x53Iy2P3SM3GaN 6cDvNRhCqfRJ5/+Qv+Con0QKm34U98oNoerxh2vTgfLHHBlg/jV9b8SQ2jBzr+VJF1UX OQOiIv4oGk2pnOb8cQvnL6If8oVd6xotYEbi5oZZOnoR6wVQcpW5utaTUyeQ03OMyjwy 85e+3x06DA+xgsGbolLzEWmk1A1F5InyN4aQ9gu0XdeghlmmHoKOfXqTK526pKf04hA+ x96g== X-Gm-Message-State: AGRZ1gIYY7YocX5RPwlBK5w6DnX9vwBtRn5H7Hu6XPVSl7iINrIG1L0y xH1yj81/0TdW88AO1+4PTwAQfFSS X-Google-Smtp-Source: AJdET5ew8kIleJ2Emx3HE3BvIqKaYOYwa2oGJEHOj3ouln7BAS4wfGciT/KLFJRiN6M+/aQry6NV5Q== X-Received: by 2002:a2e:2c02:: with SMTP id s2-v6mr825081ljs.118.1541632267870; Wed, 07 Nov 2018 15:11:07 -0800 (PST) Received: from localhost.localdomain (91-159-194-103.elisa-laajakaista.fi. [91.159.194.103]) by smtp.gmail.com with ESMTPSA id q13-v6sm347884lfk.25.2018.11.07.15.11.07 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 07 Nov 2018 15:11:07 -0800 (PST) From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Thu, 8 Nov 2018 01:11:05 +0200 Message-Id: <20181107231105.4367-1-jeebjp@gmail.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] lavf/isom: add Dolby Vision sample entry codes for HEVC and H.264 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" From: Rodger Combs These are registered identifiers at the MPEG-4 RA, which are defined as to be utilized for Dolby Vision AVC/HEVC streams that are not correctly presentable by standards-compliant AVC/HEVC players. According to the Dolby Vision specification for ISOBMFF, these sample entry codes are specified to have the standard AVC or HEVC decoder configuration box in addition to the Dolby custom DOVIConfigurationBox. This is what enables us to decode the streams without custom parsing. For correct presentation information from the DOVIConfigurationBox is required (YCbCr or ICtCP, SDR or HDR, base or enhancement layer). --- libavformat/isom.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavformat/isom.c b/libavformat/isom.c index ca9d22e4f7..a7bd657b63 100644 --- a/libavformat/isom.c +++ b/libavformat/isom.c @@ -163,6 +163,8 @@ const AVCodecTag ff_codec_movvideo_tags[] = { { AV_CODEC_ID_HEVC, MKTAG('h', 'e', 'v', '1') }, /* HEVC/H.265 which indicates parameter sets may be in ES */ { AV_CODEC_ID_HEVC, MKTAG('h', 'v', 'c', '1') }, /* HEVC/H.265 which indicates parameter sets shall not be in ES */ + { AV_CODEC_ID_HEVC, MKTAG('d', 'v', 'h', 'e') }, /* HEVC-based Dolby Vision derived from hev1 */ + { AV_CODEC_ID_HEVC, MKTAG('d', 'v', 'h', '1') }, /* HEVC-based Dolby Vision derived from hvc1 */ { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '1') }, /* AVC-1/H.264 */ { AV_CODEC_ID_H264, MKTAG('a', 'v', 'c', '2') }, @@ -185,6 +187,8 @@ const AVCodecTag ff_codec_movvideo_tags[] = { { AV_CODEC_ID_H264, MKTAG('r', 'v', '6', '4') }, /* X-Com Radvision */ { AV_CODEC_ID_H264, MKTAG('x', 'a', 'l', 'g') }, /* XAVC-L HD422 produced by FCP */ { AV_CODEC_ID_H264, MKTAG('a', 'v', 'l', 'g') }, /* Panasonic P2 AVC-LongG */ + { AV_CODEC_ID_H264, MKTAG('d', 'v', 'a', 'v') }, /* AVC-based Dolby Vision derived from avc1 */ + { AV_CODEC_ID_H264, MKTAG('d', 'v', 'a', '1') }, /* AVC-based Dolby Vision derived from avc3 */ { AV_CODEC_ID_VP8, MKTAG('v', 'p', '0', '8') }, /* VP8 */ { AV_CODEC_ID_VP9, MKTAG('v', 'p', '0', '9') }, /* VP9 */