Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH] libavcodec/flacenc: Enable sample rates > 655350 Hz
@ 2022-10-31 16:09 Martijn van Beurden
  2022-10-31 16:58 ` Derek Buitenhuis
  0 siblings, 1 reply; 6+ messages in thread
From: Martijn van Beurden @ 2022-10-31 16:09 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Martijn van Beurden

Also, make use of the full sample rate code table
---
 libavcodec/flacenc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c
index 5d8c3f82be..bca71b3780 100644
--- a/libavcodec/flacenc.c
+++ b/libavcodec/flacenc.c
@@ -299,7 +299,7 @@ static av_cold int flac_encode_init(AVCodecContext *avctx)
     /* find samplerate in table */
     if (freq < 1)
         return AVERROR(EINVAL);
-    for (i = 4; i < 12; i++) {
+    for (i = 1; i < 12; i++) {
         if (freq == ff_flac_sample_rate_table[i]) {
             s->samplerate = ff_flac_sample_rate_table[i];
             s->sr_code[0] = i;
@@ -318,6 +318,9 @@ static av_cold int flac_encode_init(AVCodecContext *avctx)
         } else if (freq < 65535) {
             s->sr_code[0] = 13;
             s->sr_code[1] = freq;
+        } else if (freq < 1048576) {
+            s->sr_code[0] = 0;
+            s->sr_code[1] = 0;
         } else {
             av_log(avctx, AV_LOG_ERROR, "%d Hz not supported\n", freq);
             return AVERROR(EINVAL);
-- 
2.37.3

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [FFmpeg-devel] [PATCH] libavcodec/flacenc: Enable sample rates > 655350 Hz
  2022-10-31 16:09 [FFmpeg-devel] [PATCH] libavcodec/flacenc: Enable sample rates > 655350 Hz Martijn van Beurden
@ 2022-10-31 16:58 ` Derek Buitenhuis
  2022-10-31 18:33   ` Martijn van Beurden
  0 siblings, 1 reply; 6+ messages in thread
From: Derek Buitenhuis @ 2022-10-31 16:58 UTC (permalink / raw)
  To: ffmpeg-devel

On 10/31/2022 4:09 PM, Martijn van Beurden wrote:
> Also, make use of the full sample rate code table
> ---
>  libavcodec/flacenc.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)

It is interesting that the IETF RFC and the Xiph spec disagree on whether this is allowed.

The Xiph spec says:

    Sample rate in Hz. Though 20 bits are available, the maximum sample rate is limited by the
    structure of frame headers to 655350Hz. Also, a value of 0 is invalid.

The RFC just says:

   Sample rate in Hz.

I see your name on the RFC - can you provide some insight here?

- Derek

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [FFmpeg-devel] [PATCH] libavcodec/flacenc: Enable sample rates > 655350 Hz
  2022-10-31 16:58 ` Derek Buitenhuis
@ 2022-10-31 18:33   ` Martijn van Beurden
  2022-10-31 21:25     ` Derek Buitenhuis
  2022-11-15 16:14     ` Martijn van Beurden
  0 siblings, 2 replies; 6+ messages in thread
From: Martijn van Beurden @ 2022-10-31 18:33 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Op ma 31 okt. 2022 om 17:58 schreef Derek Buitenhuis
<derek.buitenhuis@gmail.com>:
>
> It is interesting that the IETF RFC and the Xiph spec disagree on whether this is allowed.
>

The Xiph spec also says the IETF spec is better, and it remains as
historical reference and overview :)

> The Xiph spec says:
>
>     Sample rate in Hz. Though 20 bits are available, the maximum sample rate is limited by the
>     structure of frame headers to 655350Hz. Also, a value of 0 is invalid.
>
> The RFC just says:
>
>    Sample rate in Hz.
>

The spec as it is on the FLAC website (which is being "preserved") is
wrong. I don't know how this came to be, I think it was at first
poorly worded and later incorrectly fixed. See this commit:
https://github.com/xiph/flac/commit/96534bb5f35eb9c2f6f393dc470625e9c74df1a5
The text as it was before that commit doesn't make any sense, the text
as it is after the commit is not correct either.

The issue here is that FLAC has a sample rate in the streaminfo
metadata block, at the very start of the file. That one can
accommodate sample rates up to 2^20-1. The frame headers repeat the
sample rate every frame and can only accommodate up to 655350Hz, but
they can also reference the streaminfo metadata block. Because of the
possibility to reference that 20 bit number, it is possible to store
sample rates up to 1048575Hz. You can see this patch only touches the
encoder: the FFmpeg decoder has already been equipped to deal with
this since its inception in 2004.

There is some kind of limitation to sample rates above 655350Hz, or
samplerates between 65535Hz and 655350Hz that are not a multiple of 10
though: a FLAC file with such a sample rate cannot be multicast,
because a decoder receiving a multicast stream does not receive the
streaminfo metadata block, and thus cannot use it to figure out the
correct sample rate.

Please let me know when this explanation falls short.

Kind regards, Martijn van Beurden
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [FFmpeg-devel] [PATCH] libavcodec/flacenc: Enable sample rates > 655350 Hz
  2022-10-31 18:33   ` Martijn van Beurden
@ 2022-10-31 21:25     ` Derek Buitenhuis
  2022-11-15 16:14     ` Martijn van Beurden
  1 sibling, 0 replies; 6+ messages in thread
From: Derek Buitenhuis @ 2022-10-31 21:25 UTC (permalink / raw)
  To: ffmpeg-devel

On 10/31/2022 6:33 PM, Martijn van Beurden wrote:
> The Xiph spec also says the IETF spec is better, and it remains as
> historical reference and overview :)

So it does.

> The spec as it is on the FLAC website (which is being "preserved") is
> wrong. I don't know how this came to be, I think it was at first
> poorly worded and later incorrectly fixed. See this commit:
> https://github.com/xiph/flac/commit/96534bb5f35eb9c2f6f393dc470625e9c74df1a5
> The text as it was before that commit doesn't make any sense, the text
> as it is after the commit is not correct either.

Well that's pretty confusing, indeed.

> The issue here is that FLAC has a sample rate in the streaminfo
> metadata block, at the very start of the file. That one can
> accommodate sample rates up to 2^20-1. The frame headers repeat the
> sample rate every frame and can only accommodate up to 655350Hz, but
> they can also reference the streaminfo metadata block. Because of the
> possibility to reference that 20 bit number, it is possible to store
> sample rates up to 1048575Hz. You can see this patch only touches the
> encoder: the FFmpeg decoder has already been equipped to deal with
> this since its inception in 2004.
> 
> There is some kind of limitation to sample rates above 655350Hz, or
> samplerates between 65535Hz and 655350Hz that are not a multiple of 10
> though: a FLAC file with such a sample rate cannot be multicast,
> because a decoder receiving a multicast stream does not receive the
> streaminfo metadata block, and thus cannot use it to figure out the
> correct sample rate.
> 
> Please let me know when this explanation falls short.

It all makes sense, thanks for the explanation.

- Derek

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [FFmpeg-devel] [PATCH] libavcodec/flacenc: Enable sample rates > 655350 Hz
  2022-10-31 18:33   ` Martijn van Beurden
  2022-10-31 21:25     ` Derek Buitenhuis
@ 2022-11-15 16:14     ` Martijn van Beurden
  2022-11-15 21:56       ` Michael Niedermayer
  1 sibling, 1 reply; 6+ messages in thread
From: Martijn van Beurden @ 2022-11-15 16:14 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Op ma 31 okt. 2022 om 19:33 schreef Martijn van Beurden <mvanb1@gmail.com>:
>
> Op ma 31 okt. 2022 om 17:58 schreef Derek Buitenhuis
> <derek.buitenhuis@gmail.com>:
> >
> > It is interesting that the IETF RFC and the Xiph spec disagree on whether this is allowed.
> >
>
> The Xiph spec also says the IETF spec is better, and it remains as
> historical reference and overview :)
>
> > The Xiph spec says:
> >
> >     Sample rate in Hz. Though 20 bits are available, the maximum sample rate is limited by the
> >     structure of frame headers to 655350Hz. Also, a value of 0 is invalid.
> >
> > The RFC just says:
> >
> >    Sample rate in Hz.
> >
>
> The spec as it is on the FLAC website (which is being "preserved") is
> wrong. I don't know how this came to be, I think it was at first
> poorly worded and later incorrectly fixed. See this commit:
> https://github.com/xiph/flac/commit/96534bb5f35eb9c2f6f393dc470625e9c74df1a5
> The text as it was before that commit doesn't make any sense, the text
> as it is after the commit is not correct either.
>
> The issue here is that FLAC has a sample rate in the streaminfo
> metadata block, at the very start of the file. That one can
> accommodate sample rates up to 2^20-1. The frame headers repeat the
> sample rate every frame and can only accommodate up to 655350Hz, but
> they can also reference the streaminfo metadata block. Because of the
> possibility to reference that 20 bit number, it is possible to store
> sample rates up to 1048575Hz. You can see this patch only touches the
> encoder: the FFmpeg decoder has already been equipped to deal with
> this since its inception in 2004.
>
> There is some kind of limitation to sample rates above 655350Hz, or
> samplerates between 65535Hz and 655350Hz that are not a multiple of 10
> though: a FLAC file with such a sample rate cannot be multicast,
> because a decoder receiving a multicast stream does not receive the
> streaminfo metadata block, and thus cannot use it to figure out the
> correct sample rate.
>
> Please let me know when this explanation falls short.
>
> Kind regards, Martijn van Beurden

Hi all,

With this email, I would like to renew the attention of the mailing
list for this patch.

Kind regards, Martijn van Beurden
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [FFmpeg-devel] [PATCH] libavcodec/flacenc: Enable sample rates > 655350 Hz
  2022-11-15 16:14     ` Martijn van Beurden
@ 2022-11-15 21:56       ` Michael Niedermayer
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Niedermayer @ 2022-11-15 21:56 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 2716 bytes --]

On Tue, Nov 15, 2022 at 05:14:26PM +0100, Martijn van Beurden wrote:
> Op ma 31 okt. 2022 om 19:33 schreef Martijn van Beurden <mvanb1@gmail.com>:
> >
> > Op ma 31 okt. 2022 om 17:58 schreef Derek Buitenhuis
> > <derek.buitenhuis@gmail.com>:
> > >
> > > It is interesting that the IETF RFC and the Xiph spec disagree on whether this is allowed.
> > >
> >
> > The Xiph spec also says the IETF spec is better, and it remains as
> > historical reference and overview :)
> >
> > > The Xiph spec says:
> > >
> > >     Sample rate in Hz. Though 20 bits are available, the maximum sample rate is limited by the
> > >     structure of frame headers to 655350Hz. Also, a value of 0 is invalid.
> > >
> > > The RFC just says:
> > >
> > >    Sample rate in Hz.
> > >
> >
> > The spec as it is on the FLAC website (which is being "preserved") is
> > wrong. I don't know how this came to be, I think it was at first
> > poorly worded and later incorrectly fixed. See this commit:
> > https://github.com/xiph/flac/commit/96534bb5f35eb9c2f6f393dc470625e9c74df1a5
> > The text as it was before that commit doesn't make any sense, the text
> > as it is after the commit is not correct either.
> >
> > The issue here is that FLAC has a sample rate in the streaminfo
> > metadata block, at the very start of the file. That one can
> > accommodate sample rates up to 2^20-1. The frame headers repeat the
> > sample rate every frame and can only accommodate up to 655350Hz, but
> > they can also reference the streaminfo metadata block. Because of the
> > possibility to reference that 20 bit number, it is possible to store
> > sample rates up to 1048575Hz. You can see this patch only touches the
> > encoder: the FFmpeg decoder has already been equipped to deal with
> > this since its inception in 2004.
> >
> > There is some kind of limitation to sample rates above 655350Hz, or
> > samplerates between 65535Hz and 655350Hz that are not a multiple of 10
> > though: a FLAC file with such a sample rate cannot be multicast,
> > because a decoder receiving a multicast stream does not receive the
> > streaminfo metadata block, and thus cannot use it to figure out the
> > correct sample rate.
> >
> > Please let me know when this explanation falls short.
> >
> > Kind regards, Martijn van Beurden
> 
> Hi all,
> 
> With this email, I would like to renew the attention of the mailing
> list for this patch.

will apply

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In fact, the RIAA has been known to suggest that students drop out
of college or go to community college in order to be able to afford
settlements. -- The RIAA

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-11-15 21:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-31 16:09 [FFmpeg-devel] [PATCH] libavcodec/flacenc: Enable sample rates > 655350 Hz Martijn van Beurden
2022-10-31 16:58 ` Derek Buitenhuis
2022-10-31 18:33   ` Martijn van Beurden
2022-10-31 21:25     ` Derek Buitenhuis
2022-11-15 16:14     ` Martijn van Beurden
2022-11-15 21:56       ` Michael Niedermayer

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git