[Cellar] Hark, a decoder!

Derek Buitenhuis <derek.buitenhuis@gmail.com> Mon, 21 October 2019 22:03 UTC

Return-Path: <derek.buitenhuis@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 26A83120A34 for <cellar@ietfa.amsl.com>; Mon, 21 Oct 2019 15:03:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.1
X-Spam-Level:
X-Spam-Status: No, score=-0.1 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TpuFHrevYlJ6 for <cellar@ietfa.amsl.com>; Mon, 21 Oct 2019 15:02:59 -0700 (PDT)
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F07F7120A5C for <cellar@ietf.org>; Mon, 21 Oct 2019 15:02:57 -0700 (PDT)
Received: by mail-wr1-x42b.google.com with SMTP id e11so6966220wrv.4 for <cellar@ietf.org>; Mon, 21 Oct 2019 15:02:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=XEotpaWm94F89h8VX7xX6Ffu3bWmFVOveC74H25hj64=; b=jvnN3SMFSb/m2JoNBqNQGAnHSd79yLJDUP0ItAoUfPJPuuU/0B9nFxBPFaFo17RpUf G6Rxzz/6JqmVf0C4K7NVG7OmeBGeHhJnjb0mbSNM3dycg8LrWxLBTbpJDs+myBgJK1Lg YWQf3aTBQ62MZoUfZuXj6MFR/GKqQFbtMWVZUR8eKOAPODRwMT6DCfdYQAR8UIGcEzCb L1dOg5CT5RWl74In/fzg4dVM4GVfu7Yt+6J+DtXAzXOlywUL1KjgPcbiNV4FVjYlatd8 Av1eqxDtIWBVJXgTSp7cFw4s56b8IWiE5316aKRc4lpPO+IRw6NJbWPtC/oWiP5hAVoW BE3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=XEotpaWm94F89h8VX7xX6Ffu3bWmFVOveC74H25hj64=; b=gneBqewqJmYNzfW09m226bISOtHBt/wIacGcJ/qBoiNt+gAPvJCBCVaJjGSq74JBtz yfq2LnjLFANPtZWlHcGzi9kB/qrKAEmEWpKE3Wo76d/cB72NjAcvW4gwtdcMIxfAGmcu PGlhq6kKXlvKHo32hE0toTpPGsK6uCc8T+WnW5otvSu7k7lieMANC9+kU+Ru0k7rnEZ3 VRgiRlmhr1bkBJdnqknDBTTOaNHHfHVEdMxQ3rpU5SAzrrEZ/+Ngha40fLSJZryzTGX4 yIoKSXtMAZGTQeXV1ZRRSJR7qGbU8pOCS/ba/y4OqVNlVGJWZEOmJ1mabsKHTinTPUHf 6nqw==
X-Gm-Message-State: APjAAAU397VON46EshifclifUDq2+cVqoGpF+3bkIcRWHw/2j9pHjl1N nwY3Q/M5SRPR6CcS/+ueutdj6Rzg
X-Google-Smtp-Source: APXvYqxi7eqax0D/RL0NrN+WpgaNuUf+DWff6fp4TsjoEsU4RoF3z5epnrb76IeVn2RkHhINUQO/XQ==
X-Received: by 2002:a5d:4285:: with SMTP id k5mr364371wrq.344.1571695376114; Mon, 21 Oct 2019 15:02:56 -0700 (PDT)
Received: from [192.168.1.106] ([82.129.88.112]) by smtp.googlemail.com with ESMTPSA id g5sm14449330wmg.12.2019.10.21.15.02.55 for <cellar@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 21 Oct 2019 15:02:55 -0700 (PDT)
To: cellar@ietf.org
From: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Message-ID: <3ef03e7c-a221-1f1f-4345-af82ea3ab080@gmail.com>
Date: Mon, 21 Oct 2019 23:02:55 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Language: en-GB
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/cellar/hZhQNUtlfJuhEkWils_qxJTelJA>
Subject: [Cellar] Hark, a decoder!
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 21 Oct 2019 22:03:01 -0000

So over the last few weeks, I wrote an FFV1 decoder from scatch, in Go,
trying to only reference the spec. Found a fair few spec issues, and
opened bugs for them all.

The idea was rather than make it fast or idiomatic, make it easy to
map parts of it back to the spec (via names and comments).

So, yeah, kinda ugly right, and very much not fast. It does have basic
slice threading, though.

Perhaps of use to some people on here.

Link: https://github.com/dwbuiten/go-ffv1

Please note it only handles version 3 FFV1 files.

Cheers,
- Derek