From patchwork Tue Sep 27 18:03:04 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 749 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.66 with SMTP id o63csp2611399vsd; Tue, 27 Sep 2016 11:04:31 -0700 (PDT) X-Received: by 10.28.170.197 with SMTP id t188mr4350724wme.42.1474999471110; Tue, 27 Sep 2016 11:04:31 -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 z21si4087340wmc.56.2016.09.27.11.04.19; Tue, 27 Sep 2016 11:04:31 -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 81753689C80; Tue, 27 Sep 2016 21:04:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi0-f66.google.com (mail-oi0-f66.google.com [209.85.218.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4002B680A7E for ; Tue, 27 Sep 2016 21:03:55 +0300 (EEST) Received: by mail-oi0-f66.google.com with SMTP id n202so1368474oig.2 for ; Tue, 27 Sep 2016 11:04:07 -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=d8II3Z1zwohex8SeaB3treexxUv2cXyOlUUtfUf9aXs=; b=klPOw7a+IeI7KFx9SNn7tWMKW9N+Aahu/5RWF3D3Em4bjhT9aki2GCCkx/phnzQ4dA fDuO64if2i+/rf/3M43zU0DuIOc1+dqEbK+NPelolX3lJJHHvrXv+qr3jyCovIacXUL/ /mbozmtvM5CF7a8qXO/TbxbvlUL2z+7AE/q10Od/6hnn+xpOPYbY4lp8Cb4s5obqQuCZ vNO10/wE3Omb1iEk7wf7qZJQ5YEelE4dj2poTkOhl+rXcUup/I4uQmziNvEUbsJ3S7EG lyu4pK2DWIgELsh7I/eg9W0w1kEkK84oE5o6ggOI2ZZ1jtHmdpsZ+z1KejtfGyku9KwZ Em7g== 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=d8II3Z1zwohex8SeaB3treexxUv2cXyOlUUtfUf9aXs=; b=itqI64YxQ5lCtipOpVrdxriyesbXGLt8ev9buIkhuXiNzqN/8U1wOnmeV2YFfFeDv4 jObVLzeZ/Au/2Ab6ld9IDiIs2qP/evoae0VqwxpN+WlfwBb/KmpdkwB6o5IVSmpf4Com yj8OP0THz9Ws9is6mi7rsFmXGaw90R5Y4shSlb88H9ojppcmzbdnI7B4gWXreV5JnJ0A ufS5okIQWZiVs1RdQ9i1QjN0I9ph54v3REwH4cqvh37Aupwg1efgIknVfaLHqM8wfu0e RzmBnZXWxNCkb84XWacJjWpfpTI1H/y1Cv9EJsW4g4v3XSQqlDdPx2I8lQjOQjhrkPES aQ2Q== X-Gm-Message-State: AA6/9Rmxn4oZhNmwcDJ6SlXUTYRsU/NkNbGKm/86XHRVysFv8octc0tAgCvonzmbICOzVA== X-Received: by 10.202.107.19 with SMTP id g19mr11369085oic.185.1474999445761; Tue, 27 Sep 2016 11:04:05 -0700 (PDT) Received: from localhost.localdomain ([181.22.0.151]) by smtp.gmail.com with ESMTPSA id k23sm1027101otd.30.2016.09.27.11.03.59 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 27 Sep 2016 11:04:05 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Tue, 27 Sep 2016 15:03:04 -0300 Message-Id: <20160927180305.6132-2-jamrial@gmail.com> X-Mailer: git-send-email 2.9.1 In-Reply-To: <20160927180305.6132-1-jamrial@gmail.com> References: <20160927180305.6132-1-jamrial@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/3] avformat/matroskaenc: write the FieldOrder element for non-interlaced video 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" It's listed as mandatory in https://matroska.org/technical/specs/index.html Signed-off-by: James Almer --- The spec also mentions FieldOrder "MUST be ignored if FlagInterlaced is not set to interlaced". Since it's a mandatory element, i interpreted that as a demuxer guideline. libavformat/matroskaenc.c | 6 ++++++ tests/fate/matroska.mak | 2 +- tests/ref/fate/rgb24-mkv | 4 ++-- tests/ref/lavf/mkv | 8 ++++---- tests/ref/seek/lavf-mkv | 44 ++++++++++++++++++++++---------------------- 5 files changed, 35 insertions(+), 29 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 6cb0376..a766b81 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -798,10 +798,16 @@ static void mkv_write_field_order(AVIOContext *pb, int mode, case AV_FIELD_UNKNOWN: put_ebml_uint(pb, MATROSKA_ID_VIDEOFLAGINTERLACED, MATROSKA_VIDEO_INTERLACE_FLAG_UNDETERMINED); + if (mode != MODE_WEBM) + put_ebml_uint(pb, MATROSKA_ID_VIDEOFIELDORDER, + MATROSKA_VIDEO_FIELDORDER_UNDETERMINED); break; case AV_FIELD_PROGRESSIVE: put_ebml_uint(pb, MATROSKA_ID_VIDEOFLAGINTERLACED, MATROSKA_VIDEO_INTERLACE_FLAG_PROGRESSIVE); + if (mode != MODE_WEBM) + put_ebml_uint(pb, MATROSKA_ID_VIDEOFIELDORDER, + MATROSKA_VIDEO_FIELDORDER_PROGRESSIVE); break; case AV_FIELD_TT: case AV_FIELD_BB: diff --git a/tests/fate/matroska.mak b/tests/fate/matroska.mak index 8e4a1e8..fd242b7 100644 --- a/tests/fate/matroska.mak +++ b/tests/fate/matroska.mak @@ -4,6 +4,6 @@ FATE_MATROSKA-$(call DEMMUX, MATROSKA, MATROSKA) += fate-matroska-remux fate-matroska-remux: CMD = md5 -i $(TARGET_SAMPLES)/vp9-test-vectors/vp90-2-2pass-akiyo.webm -color_trc 4 -c:v copy -fflags +bitexact -strict -2 -f matroska fate-matroska-remux: CMP = oneline -fate-matroska-remux: REF = f08b20b90f158a4de5a02a52c25596b9 +fate-matroska-remux: REF = b745381b5a0b3af0e3f2d7d65a18e20f FATE_SAMPLES_AVCONV += $(FATE_MATROSKA-yes) diff --git a/tests/ref/fate/rgb24-mkv b/tests/ref/fate/rgb24-mkv index 69584f5..0efd49d 100644 --- a/tests/ref/fate/rgb24-mkv +++ b/tests/ref/fate/rgb24-mkv @@ -1,5 +1,5 @@ -0d081c8e151a922435830f95000d3c71 *tests/data/fate/rgb24-mkv.matroska -58321 tests/data/fate/rgb24-mkv.matroska +909a07a48b9d3ae8691daa7eb305c40a *tests/data/fate/rgb24-mkv.matroska +58324 tests/data/fate/rgb24-mkv.matroska #tb 0: 1/10 #media_type 0: video #codec_id 0: rawvideo diff --git a/tests/ref/lavf/mkv b/tests/ref/lavf/mkv index 5b0d386..e43bd02 100644 --- a/tests/ref/lavf/mkv +++ b/tests/ref/lavf/mkv @@ -1,6 +1,6 @@ -5b982c8dfbadc71f51b206cbd10b9a71 *./tests/data/lavf/lavf.mkv -472875 ./tests/data/lavf/lavf.mkv +8ec784fcba03cee098140729315d073e *./tests/data/lavf/lavf.mkv +472878 ./tests/data/lavf/lavf.mkv ./tests/data/lavf/lavf.mkv CRC=0xec6c3c68 -b4a295bae8e6cf536563cb840386f3a4 *./tests/data/lavf/lavf.mkv -320551 ./tests/data/lavf/lavf.mkv +0f064370de5762f91cb9777163e89ae0 *./tests/data/lavf/lavf.mkv +320554 ./tests/data/lavf/lavf.mkv ./tests/data/lavf/lavf.mkv CRC=0xec6c3c68 diff --git a/tests/ref/seek/lavf-mkv b/tests/ref/seek/lavf-mkv index bf34766..12b8267 100644 --- a/tests/ref/seek/lavf-mkv +++ b/tests/ref/seek/lavf-mkv @@ -1,48 +1,48 @@ -ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 800 size: 208 +ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 803 size: 208 ret: 0 st:-1 flags:0 ts:-1.000000 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1016 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1019 size: 27837 ret: 0 st:-1 flags:1 ts: 1.894167 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292430 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292433 size: 27834 ret: 0 st: 0 flags:0 ts: 0.788000 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292430 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292433 size: 27834 ret: 0 st: 0 flags:1 ts:-0.317000 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1016 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1019 size: 27837 ret:-1 st: 1 flags:0 ts: 2.577000 ret: 0 st: 1 flags:1 ts: 1.471000 -ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320271 size: 209 +ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320274 size: 209 ret: 0 st:-1 flags:0 ts: 0.365002 -ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146983 size: 27925 +ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146986 size: 27925 ret: 0 st:-1 flags:1 ts:-0.740831 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1016 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1019 size: 27837 ret:-1 st: 0 flags:0 ts: 2.153000 ret: 0 st: 0 flags:1 ts: 1.048000 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292430 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292433 size: 27834 ret: 0 st: 1 flags:0 ts:-0.058000 -ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 800 size: 208 +ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 803 size: 208 ret: 0 st: 1 flags:1 ts: 2.836000 -ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320271 size: 209 +ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320274 size: 209 ret:-1 st:-1 flags:0 ts: 1.730004 ret: 0 st:-1 flags:1 ts: 0.624171 -ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146983 size: 27925 +ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146986 size: 27925 ret: 0 st: 0 flags:0 ts:-0.482000 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1016 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1019 size: 27837 ret: 0 st: 0 flags:1 ts: 2.413000 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292430 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292433 size: 27834 ret:-1 st: 1 flags:0 ts: 1.307000 ret: 0 st: 1 flags:1 ts: 0.201000 -ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 800 size: 208 +ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 803 size: 208 ret: 0 st:-1 flags:0 ts:-0.904994 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1016 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1019 size: 27837 ret: 0 st:-1 flags:1 ts: 1.989173 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292430 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292433 size: 27834 ret: 0 st: 0 flags:0 ts: 0.883000 -ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292430 size: 27834 +ret: 0 st: 0 flags:1 dts: 0.971000 pts: 0.971000 pos: 292433 size: 27834 ret: 0 st: 0 flags:1 ts:-0.222000 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1016 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1019 size: 27837 ret:-1 st: 1 flags:0 ts: 2.672000 ret: 0 st: 1 flags:1 ts: 1.566000 -ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320271 size: 209 +ret: 0 st: 1 flags:1 dts: 0.993000 pts: 0.993000 pos: 320274 size: 209 ret: 0 st:-1 flags:0 ts: 0.460008 -ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146983 size: 27925 +ret: 0 st: 0 flags:1 dts: 0.491000 pts: 0.491000 pos: 146986 size: 27925 ret: 0 st:-1 flags:1 ts:-0.645825 -ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1016 size: 27837 +ret: 0 st: 0 flags:1 dts: 0.011000 pts: 0.011000 pos: 1019 size: 27837