Re: [Cellar] CodecIDs for non-standard and unregistered data formats

Steve Lhomme <slhomme@matroska.org> Wed, 26 April 2017 09:13 UTC

Return-Path: <slhomme@matroska.org>
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 7CBDB13181B for <cellar@ietfa.amsl.com>; Wed, 26 Apr 2017 02:13:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=matroska-org.20150623.gappssmtp.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 y9TiwbLLHGz9 for <cellar@ietfa.amsl.com>; Wed, 26 Apr 2017 02:13:35 -0700 (PDT)
Received: from mail-yw0-x236.google.com (mail-yw0-x236.google.com [IPv6:2607:f8b0:4002:c05::236]) (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 E2262129AF4 for <cellar@ietf.org>; Wed, 26 Apr 2017 02:13:34 -0700 (PDT)
Received: by mail-yw0-x236.google.com with SMTP id u70so107564444ywe.2 for <cellar@ietf.org>; Wed, 26 Apr 2017 02:13:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=r0PV/6tkxXZ8GnoLW/IxAee7owymzMaiCBABAubjMNc=; b=YPSG3Wuc9swm23Ik3S/sIEn+/lX3GDBESjYSUINhBfYBqUqupQZBz0zfd8BQq5fpmj z03GvreCeciG9IlUM24XAkRAMQW6vKJnguOKaTz4nwoBF0YZucV2oa0M+DY/sjJZ2CBV paPEutjkvGQpXWCXkWn8mcHQV1gd/NJc4XdtuG+uwteC6f3rQdjt8HWdVXAWS2ZLzQYX XpSQOWk+5yZxl8cK3OKUBSiPed8D8Rw03F0RSP3TFuZDP3qy4gR9f8Kp7VSYkyo07/ry /JbQhA0Eu2kCkX4o3X/Wzgr85FCZEB8THh/N4Q9kfjFDFYEvAdbxWwYJosF+VQ0wkr7G ctyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=r0PV/6tkxXZ8GnoLW/IxAee7owymzMaiCBABAubjMNc=; b=GfL1lAQ5998xL2q3WPYK5+tN1znLX59Y9truit4HR6h9moDU7jgCRRUWt2EJyrLtjl 44NWEKAke0/CJSxgJBkP9U2Jd8Q4ALGdCm0211E4a1LSq5EWIJTnADvE2NGkJapX6itM wuSUXOrgwiqvUroWqy4zp1AssUtMdADUg7oOGZWWDZwH+Rp3RkCOa3Ft97l1FXVyGo2/ gu8svfJ4ILOtNC+TgD4rIDTAIQyRacv15jYh1g4jcftINa4hpuASmGqotD8VYBOtnwIB bd068nEsHTe0+Le6rsMjUO5kpY11lJVTaW+HqsoAo/gh2KoVyAJk0KsvwmQvgc0AK8AT s/kg==
X-Gm-Message-State: AN3rC/4q+S2cR8B6T3zVdTPkfKc4KgvFnieWndaoDE6tC2oMZwLRpomw wjjklV5JEMf27j4+e/LxEZwjG04e5g==
X-Received: by 10.129.141.76 with SMTP id w12mr11172056ywj.131.1493198014121; Wed, 26 Apr 2017 02:13:34 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.83.4.215 with HTTP; Wed, 26 Apr 2017 02:13:33 -0700 (PDT)
In-Reply-To: <CAJKCwWimxX98Oxj+3eA3DPXZmSNERAUaVNWqawO8TJCA1VrKhw@mail.gmail.com>
References: <CAJKCwWj2rZu0OWksLiTvT9E4jjiN6XOHzYGSuUaRbtiXxnbCDQ@mail.gmail.com> <CAOXsMFK4sB=-HN7wWP9ModsHf3czNMq7yHB0izUQehm2A2_7tA@mail.gmail.com> <CAJKCwWimxX98Oxj+3eA3DPXZmSNERAUaVNWqawO8TJCA1VrKhw@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
Date: Wed, 26 Apr 2017 11:13:33 +0200
Message-ID: <CAOXsMFLeNgEWzX+crnMDTKp7d66n8+wDA5WUuYHM0jfZqFauhA@mail.gmail.com>
To: Matt Gruenke <matt.gruenke@gmail.com>
Cc: Codec Encoding for LossLess Archiving and Realtime transmission <cellar@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/cellar/ArTaw325avMc0Eo_6dJ3TC4xh6Q>
Subject: Re: [Cellar] CodecIDs for non-standard and unregistered data formats
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.22
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: Wed, 26 Apr 2017 09:13:37 -0000

2017-02-27 4:04 GMT+01:00 Matt Gruenke <matt.gruenke@gmail.com>:
> Let's take this example of a camera having both a visible light sensor and a
> depth sensor, as well as a stereo microphone.  For various reasons, its
> depth sensor captures frames at different times and a different rate than
> its color image sensor.  I'd like to record a video file containing an audio
> track, a normal video track, and a depth track.  I'd like the audio and
> video portions to be playable in normal video player apps.  When using
> enhanced apps, the depth data may also be utilized.

It seems that the depth data cannot be used on their own and would
need to be coupled with the video frames. So that would probably go as
a BlockAddition data (or something similar as it's currently tied to
the Track codec). Even if they are repeated for each video frame which
the sensor doesn't change the value.

> Today, most players I've tried will behave as I've described, if I simply
> write the depth data using an unspecified TrackType and having a custom
> CodecID.  However, not all players handle it gracefully (or at all), and
> there's no guarantee that the others will continue to work.
>
> Having a dedicated TrackType (or range, thereof) would solve one potential
> problem.  Perhaps the Ancillary TrackType already meets this need.
>
> Using nonstandard CodecIDs is another concern.  I thought about schemes for
> doing this, but none seemed as sensible as trying to build upon what IANA
> already has.  The private & vendor-specific trees provide a mechanism by
> which there's at least some record of a given format's origin, which is
> clearly better than it being completely ad hoc.  The only downside I can see
> is that two apps might start using the same media type, but with different
> mappings to Matroska's syntactic structures (i.e. CodecPrivate and
> CodecState).  Hopefully, any encoding common enough to have independent
> implementations by multiple apps would've already been promoted to have an
> official Matroska CodecID, whereupon such implementation details can be
> specified.

It seems to me it should not be a different track, so I'll use this
hypothesis. We may need to add more elements to the Track to define
what each BlockAdditionID is, maybe using a MIME type or something
similar. Maybe a type like depth data or extra lossless complement
(for the only case I know of using BlockAddition: lossy part in the
regular Block and lossless complement in the BlockAddition).

>> Although tempting I think it's better to avoid interleaving all kinds of
>> stuff with audio/video.
>
> It's a valid and understandable position, but what attracted me to the
> Matroska format was my understanding that it's an open and extensible
> format.  If it's too resistant to innovation, then developers might seek
> alternatives.  This is how file formats get superseded and fall into disuse.
> Therefore, I think it's important for Matroska to offer extension mechanisms
> that strike the right balance between flexibility and compatibility.

You're right, it's extensible. But it would be wrong if people extend
it in a bogus way. For example non-interleaved data shouldn't go in
the interleaved parts of the format. There are already all kinds of
lesser known mechanism to extend Matroska in a clean way. We must
emphasis on that.

>
> Matt
>
>
> On Sun, Feb 26, 2017 at 11:29 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2017-02-14 7:46 GMT+01:00 Matt Gruenke <matt.gruenke@gmail.com>:
>> > Related to my recent query about TrackTypes for non-standard data
>> > formats,
>> > I'd like to discuss CodecIDs.  I had previously raised this issue, on
>> > the
>> > matroska-devel list, and was advised to take it up, here.  In the
>> > interim,
>> > my thinking on the matter has evolved.
>> >
>> > I wonder why not allow IANA Media Types (aka MIME types), as a sub-class
>> > of
>> > CodecIDs?  Of course, the official Matroska CodecID would be preferred,
>> > for
>> > all formats for which one has been designated.  However, this would
>> > enable
>> > broader use of Matroska files, including for private,
>> > application-specific
>> > data stream formats.
>>
>> The main goal of Matroska is multimedia interleaved/timestamped data.
>> It's possible to have "complex" track and put in it whatever you want.
>> If a timestamp is required. If it's not, using attachment is what you
>> want and it already has a MIME type.
>>
>> > Perhaps a prefix like 'X_MEDIATYPE/' could simply be prepended to media
>> > type
>> > names conforming with RFC 6838.  The value of TrackType would still
>> > determine whether video, audio, or any other type-specific elements can
>> > be
>> > used in such tracks.
>>
>> Although tempting I think it's better to avoid interleaving all kinds
>> of stuff with audio/video. You could want to embed a "video/quicktime"
>> but it would not be interleaved, or you'd need to parse/mux the data
>> and then it's not a clean "video/quicktime" you get anymore.
>>
>> > Thank you for considering my suggestion.
>> >
>> >
>> > Matt
>> >
>> >
>> > _______________________________________________
>> > Cellar mailing list
>> > Cellar@ietf.org
>> > https://www.ietf.org/mailman/listinfo/cellar
>> >
>>
>>
>>
>> --
>> Steve Lhomme
>> Matroska association Chairman
>
>



-- 
Steve Lhomme
Matroska association Chairman