Re: [codec] I-D Action: draft-ietf-codec-oggopus-00.txt

"Timothy B. Terriberry" <> Fri, 24 May 2013 17:19 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id B5ECA21F9635 for <>; Fri, 24 May 2013 10:19:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.677
X-Spam-Status: No, score=-2.677 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_MISMATCH_ORG=0.611, HOST_MISMATCH_COM=0.311, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Lscbzf9tOZqy for <>; Fri, 24 May 2013 10:19:20 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id E270221F96A4 for <>; Fri, 24 May 2013 10:19:16 -0700 (PDT)
Received: from [] (unknown []) (Authenticated sender: by (Postfix) with ESMTPSA id 93742F210D for <>; Fri, 24 May 2013 10:19:16 -0700 (PDT)
Message-ID: <>
Date: Fri, 24 May 2013 10:19:16 -0700
From: "Timothy B. Terriberry" <>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20100101 SeaMonkey/2.16.2
MIME-Version: 1.0
References: <> <> <> <20130330072800.GU19099@audi.shelbyville.oz> <>
In-Reply-To: <>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Subject: Re: [codec] I-D Action: draft-ietf-codec-oggopus-00.txt
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Codec WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 24 May 2013 17:19:44 -0000

Jean-Marc Valin wrote:
>>> +<t>On the last frame of the first stream, encoding an independent frame by
>>> +turning off all forms of inter-frame prediction (de-emphasis is allowed).</t>
>> How do people turn that off?
> That's actually something that needs to be cleanly exposed in the
> libopus API. The functionality is already there and you can probably get
> it to work by specifying 100% packet loss, but it needs to be a
> dedicated setting.

Well, I still think you need to explicitly list the SILK and CELT 
features that should be disabled (since, as you say, you don't want to 
refer to the libopus API), not just one feature that you shouldn't disable.

>>> +<t>setting the granulepos of the past page to a point near the end of the last
>>> +frame.</t>
>> How do they determine where that point should be?
> I mean that any point near the end would work. Any thoughts on how to
> make this clearer?

I think you need to say more than this. In some contexts you may not be 
able to choose how many samples are in the file (encoding a CD with no 
inter-track gaps, but where you wish to preserve sample-accurate track 
boundaries, for example). That means you may need to do some frame size 
juggling to ensure the end of the track lies at "a point near the end of 
the last frame". How near is enough? The last half? The last quarter? In 
what size frame? Someone without intimate DSP knowledge and knowledge of 
the Opus format is not going to be able to make informed decisions here, 
so we should provide some guidance.