diff mbox series

[FFmpeg-devel] avformat/matroska: Add support for A_ATRAC/AT1

Message ID C5bKAonDxDU4MqiYozbxUapBHMSM3vJvActGAyi41HIiybEKF2CrE0_tohKYBTrJSt9cgbij9g1xm9VYXkLwDRNUmILlDOwE6PCUhp6xgA4=@protonmail.com
State New
Headers show
Series [FFmpeg-devel] avformat/matroska: Add support for A_ATRAC/AT1 | expand

Checks

Context Check Description
yinshiyou/configure_loongarch64 warning Failed to apply patch

Commit Message

asivery March 6, 2023, 12:57 a.m. UTC
Signed-off-by: asivery <asivery@protonmail.com>
---
libavformat/matroska.c | 1 +
libavformat/matroskadec.c | 2 ++
2 files changed, 3 insertions(+)

--
2.34.1

Comments

Paul B Mahol March 6, 2023, 6:39 p.m. UTC | #1
On 3/6/23, asivery <asivery@protonmail.com> wrote:
> Signed-off-by: asivery <asivery@protonmail.com>
> ---
> libavformat/matroska.c | 1 +
> libavformat/matroskadec.c | 2 ++
> 2 files changed, 3 insertions(+)
>

where is this defined?


> diff --git a/libavformat/matroska.c b/libavformat/matroska.c
> index 90d94b65bf..37305a523c 100644
> --- a/libavformat/matroska.c
> +++ b/libavformat/matroska.c
> @@ -55,6 +55,7 @@ const CodecTags ff_mkv_codec_tags[]={
> {"A_REAL/ATRC" , AV_CODEC_ID_ATRAC3},
> {"A_REAL/COOK" , AV_CODEC_ID_COOK},
> {"A_REAL/SIPR" , AV_CODEC_ID_SIPR},
> + {"A_ATRAC/AT1" , AV_CODEC_ID_ATRAC1},
> {"A_TRUEHD" , AV_CODEC_ID_TRUEHD},
> {"A_TTA1" , AV_CODEC_ID_TTA},
> {"A_VORBIS" , AV_CODEC_ID_VORBIS},
> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> index d582f566a2..0aa8e6f3b3 100644
> --- a/libavformat/matroskadec.c
> +++ b/libavformat/matroskadec.c
> @@ -2795,6 +2795,8 @@ static int matroska_parse_tracks(AVFormatContext *s)
> track->audio.frame_size);
> if (!track->audio.buf)
> return AVERROR(ENOMEM);
> + } else if (codec_id == AV_CODEC_ID_ATRAC1) {
> + st->codecpar->block_align = track->audio.channels * 212; /* Constant ATRAC
> frame size */
> } else if (codec_id == AV_CODEC_ID_FLAC && track->codec_priv.size) {
> ret = matroska_parse_flac(s, track, &extradata_offset);
> if (ret < 0)
> --
> 2.34.1
> _______________________________________________
> 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".
>
asivery March 6, 2023, 6:51 p.m. UTC | #2
It's been added recently. Here's the definition: https://github.com/ietf-wg-cellar/matroska-specification/blob/master/codec_specs.md#a_atracat1


------- Original Message -------
On Monday, March 6th, 2023 at 7:39 PM, Paul B Mahol <onemda@gmail.com> wrote:


> On 3/6/23, asivery asivery@protonmail.com wrote:
> 
> > Signed-off-by: asivery asivery@protonmail.com
> > ---
> > libavformat/matroska.c | 1 +
> > libavformat/matroskadec.c | 2 ++
> > 2 files changed, 3 insertions(+)
> 
> 
> where is this defined?
> 
> > diff --git a/libavformat/matroska.c b/libavformat/matroska.c
> > index 90d94b65bf..37305a523c 100644
> > --- a/libavformat/matroska.c
> > +++ b/libavformat/matroska.c
> > @@ -55,6 +55,7 @@ const CodecTags ff_mkv_codec_tags[]={
> > {"A_REAL/ATRC" , AV_CODEC_ID_ATRAC3},
> > {"A_REAL/COOK" , AV_CODEC_ID_COOK},
> > {"A_REAL/SIPR" , AV_CODEC_ID_SIPR},
> > + {"A_ATRAC/AT1" , AV_CODEC_ID_ATRAC1},
> > {"A_TRUEHD" , AV_CODEC_ID_TRUEHD},
> > {"A_TTA1" , AV_CODEC_ID_TTA},
> > {"A_VORBIS" , AV_CODEC_ID_VORBIS},
> > diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> > index d582f566a2..0aa8e6f3b3 100644
> > --- a/libavformat/matroskadec.c
> > +++ b/libavformat/matroskadec.c
> > @@ -2795,6 +2795,8 @@ static int matroska_parse_tracks(AVFormatContext s)
> > track->audio.frame_size);
> > if (!track->audio.buf)
> > return AVERROR(ENOMEM);
> > + } else if (codec_id == AV_CODEC_ID_ATRAC1) {
> > + st->codecpar->block_align = track->audio.channels * 212; / Constant ATRAC
> > frame size */
> > } else if (codec_id == AV_CODEC_ID_FLAC && track->codec_priv.size) {
> > ret = matroska_parse_flac(s, track, &extradata_offset);
> > if (ret < 0)
> > --
> > 2.34.1
> > _______________________________________________
> > 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".
> 
> _______________________________________________
> 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".
asivery April 17, 2023, 12:27 a.m. UTC | #3
I'd appreciate it if someone took a look at this.
If there's anything I need to change to make this patch viable for merging, please let me know.

Best regards,
asivery
------- Original Message -------
On Monday, March 6th, 2023 at 7:51 PM, asivery <asivery@protonmail.com> wrote:


> It's been added recently. Here's the definition: https://github.com/ietf-wg-cellar/matroska-specification/blob/master/codec_specs.md#a_atracat1
> 
> 
> ------- Original Message -------
> On Monday, March 6th, 2023 at 7:39 PM, Paul B Mahol onemda@gmail.com wrote:
> 
> 
> 
> > On 3/6/23, asivery asivery@protonmail.com wrote:
> > 
> > > Signed-off-by: asivery asivery@protonmail.com
> > > ---
> > > libavformat/matroska.c | 1 +
> > > libavformat/matroskadec.c | 2 ++
> > > 2 files changed, 3 insertions(+)
> > 
> > where is this defined?
> > 
> > > diff --git a/libavformat/matroska.c b/libavformat/matroska.c
> > > index 90d94b65bf..37305a523c 100644
> > > --- a/libavformat/matroska.c
> > > +++ b/libavformat/matroska.c
> > > @@ -55,6 +55,7 @@ const CodecTags ff_mkv_codec_tags[]={
> > > {"A_REAL/ATRC" , AV_CODEC_ID_ATRAC3},
> > > {"A_REAL/COOK" , AV_CODEC_ID_COOK},
> > > {"A_REAL/SIPR" , AV_CODEC_ID_SIPR},
> > > + {"A_ATRAC/AT1" , AV_CODEC_ID_ATRAC1},
> > > {"A_TRUEHD" , AV_CODEC_ID_TRUEHD},
> > > {"A_TTA1" , AV_CODEC_ID_TTA},
> > > {"A_VORBIS" , AV_CODEC_ID_VORBIS},
> > > diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> > > index d582f566a2..0aa8e6f3b3 100644
> > > --- a/libavformat/matroskadec.c
> > > +++ b/libavformat/matroskadec.c
> > > @@ -2795,6 +2795,8 @@ static int matroska_parse_tracks(AVFormatContext s)
> > > track->audio.frame_size);
> > > if (!track->audio.buf)
> > > return AVERROR(ENOMEM);
> > > + } else if (codec_id == AV_CODEC_ID_ATRAC1) {
> > > + st->codecpar->block_align = track->audio.channels * 212; / Constant ATRAC
> > > frame size */
> > > } else if (codec_id == AV_CODEC_ID_FLAC && track->codec_priv.size) {
> > > ret = matroska_parse_flac(s, track, &extradata_offset);
> > > if (ret < 0)
> > > --
> > > 2.34.1
> > > _______________________________________________
> > > 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".
> > 
> > _______________________________________________
> > 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".
asivery June 17, 2023, 1:24 a.m. UTC | #4
Hello, apologies for bothering you all with this, but if anyone could take a look at this patch it would be great. The only other container that supports ATRAC1 is AEA, and it's not that good of a format since it has no magic number, and therefore is easily detected incorrectly.

Thank you in advance.

------- Original Message -------
On Monday, April 17th, 2023 at 2:27 AM, asivery <asivery@protonmail.com> wrote:


> I'd appreciate it if someone took a look at this.
> If there's anything I need to change to make this patch viable for merging, please let me know.
> 
> Best regards,
> asivery
> ------- Original Message -------
> On Monday, March 6th, 2023 at 7:51 PM, asivery asivery@protonmail.com wrote:
> 
> 
> 
> > It's been added recently. Here's the definition: https://github.com/ietf-wg-cellar/matroska-specification/blob/master/codec_specs.md#a_atracat1
> > 
> > ------- Original Message -------
> > On Monday, March 6th, 2023 at 7:39 PM, Paul B Mahol onemda@gmail.com wrote:
> > 
> > > On 3/6/23, asivery asivery@protonmail.com wrote:
> > > 
> > > > Signed-off-by: asivery asivery@protonmail.com
> > > > ---
> > > > libavformat/matroska.c | 1 +
> > > > libavformat/matroskadec.c | 2 ++
> > > > 2 files changed, 3 insertions(+)
> > > 
> > > where is this defined?
> > > 
> > > > diff --git a/libavformat/matroska.c b/libavformat/matroska.c
> > > > index 90d94b65bf..37305a523c 100644
> > > > --- a/libavformat/matroska.c
> > > > +++ b/libavformat/matroska.c
> > > > @@ -55,6 +55,7 @@ const CodecTags ff_mkv_codec_tags[]={
> > > > {"A_REAL/ATRC" , AV_CODEC_ID_ATRAC3},
> > > > {"A_REAL/COOK" , AV_CODEC_ID_COOK},
> > > > {"A_REAL/SIPR" , AV_CODEC_ID_SIPR},
> > > > + {"A_ATRAC/AT1" , AV_CODEC_ID_ATRAC1},
> > > > {"A_TRUEHD" , AV_CODEC_ID_TRUEHD},
> > > > {"A_TTA1" , AV_CODEC_ID_TTA},
> > > > {"A_VORBIS" , AV_CODEC_ID_VORBIS},
> > > > diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> > > > index d582f566a2..0aa8e6f3b3 100644
> > > > --- a/libavformat/matroskadec.c
> > > > +++ b/libavformat/matroskadec.c
> > > > @@ -2795,6 +2795,8 @@ static int matroska_parse_tracks(AVFormatContext s)
> > > > track->audio.frame_size);
> > > > if (!track->audio.buf)
> > > > return AVERROR(ENOMEM);
> > > > + } else if (codec_id == AV_CODEC_ID_ATRAC1) {
> > > > + st->codecpar->block_align = track->audio.channels * 212; / Constant ATRAC
> > > > frame size */
> > > > } else if (codec_id == AV_CODEC_ID_FLAC && track->codec_priv.size) {
> > > > ret = matroska_parse_flac(s, track, &extradata_offset);
> > > > if (ret < 0)
> > > > --
> > > > 2.34.1
> > > > _______________________________________________
> > > > 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".
> > > 
> > > _______________________________________________
> > > 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".
Andreas Rheinhardt June 17, 2023, 1:42 a.m. UTC | #5
asivery:
> Hello, apologies for bothering you all with this, but if anyone could take a look at this patch it would be great. The only other container that supports ATRAC1 is AEA, and it's not that good of a format since it has no magic number, and therefore is easily detected incorrectly.
> 
> Thank you in advance.

Sorry for having missed this. I will look at it tomorrow.

- Andreas

> 
> ------- Original Message -------
> On Monday, April 17th, 2023 at 2:27 AM, asivery <asivery@protonmail.com> wrote:
> 
> 
>> I'd appreciate it if someone took a look at this.
>> If there's anything I need to change to make this patch viable for merging, please let me know.
>>
>> Best regards,
>> asivery
>> ------- Original Message -------
>> On Monday, March 6th, 2023 at 7:51 PM, asivery asivery@protonmail.com wrote:
>>
>>
>>
>>> It's been added recently. Here's the definition: https://github.com/ietf-wg-cellar/matroska-specification/blob/master/codec_specs.md#a_atracat1
>>>
>>> ------- Original Message -------
>>> On Monday, March 6th, 2023 at 7:39 PM, Paul B Mahol onemda@gmail.com wrote:
>>>
>>>> On 3/6/23, asivery asivery@protonmail.com wrote:
>>>>
>>>>> Signed-off-by: asivery asivery@protonmail.com
>>>>> ---
>>>>> libavformat/matroska.c | 1 +
>>>>> libavformat/matroskadec.c | 2 ++
>>>>> 2 files changed, 3 insertions(+)
>>>>
>>>> where is this defined?
>>>>
>>>>> diff --git a/libavformat/matroska.c b/libavformat/matroska.c
>>>>> index 90d94b65bf..37305a523c 100644
>>>>> --- a/libavformat/matroska.c
>>>>> +++ b/libavformat/matroska.c
>>>>> @@ -55,6 +55,7 @@ const CodecTags ff_mkv_codec_tags[]={
>>>>> {"A_REAL/ATRC" , AV_CODEC_ID_ATRAC3},
>>>>> {"A_REAL/COOK" , AV_CODEC_ID_COOK},
>>>>> {"A_REAL/SIPR" , AV_CODEC_ID_SIPR},
>>>>> + {"A_ATRAC/AT1" , AV_CODEC_ID_ATRAC1},
>>>>> {"A_TRUEHD" , AV_CODEC_ID_TRUEHD},
>>>>> {"A_TTA1" , AV_CODEC_ID_TTA},
>>>>> {"A_VORBIS" , AV_CODEC_ID_VORBIS},
>>>>> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
>>>>> index d582f566a2..0aa8e6f3b3 100644
>>>>> --- a/libavformat/matroskadec.c
>>>>> +++ b/libavformat/matroskadec.c
>>>>> @@ -2795,6 +2795,8 @@ static int matroska_parse_tracks(AVFormatContext s)
>>>>> track->audio.frame_size);
>>>>> if (!track->audio.buf)
>>>>> return AVERROR(ENOMEM);
>>>>> + } else if (codec_id == AV_CODEC_ID_ATRAC1) {
>>>>> + st->codecpar->block_align = track->audio.channels * 212; / Constant ATRAC
>>>>> frame size */
>>>>> } else if (codec_id == AV_CODEC_ID_FLAC && track->codec_priv.size) {
>>>>> ret = matroska_parse_flac(s, track, &extradata_offset);
>>>>> if (ret < 0)
>>>>> --
>>>>> 2.34.1
asivery June 28, 2023, 1:27 p.m. UTC | #6
Hi, it's really not a problem. Thanks and please let me know if I need to change anything for this to be merged.

------- Original Message -------
On Saturday, June 17th, 2023 at 3:41 AM, Andreas Rheinhardt <andreas.rheinhardt@outlook.com> wrote:


> asivery:
> 
> > Hello, apologies for bothering you all with this, but if anyone could take a look at this patch it would be great. The only other container that supports ATRAC1 is AEA, and it's not that good of a format since it has no magic number, and therefore is easily detected incorrectly.
> > 
> > Thank you in advance.
> 
> 
> Sorry for having missed this. I will look at it tomorrow.
> 
> - Andreas
> 
> > ------- Original Message -------
> > On Monday, April 17th, 2023 at 2:27 AM, asivery asivery@protonmail.com wrote:
> > 
> > > I'd appreciate it if someone took a look at this.
> > > If there's anything I need to change to make this patch viable for merging, please let me know.
> > > 
> > > Best regards,
> > > asivery
> > > ------- Original Message -------
> > > On Monday, March 6th, 2023 at 7:51 PM, asivery asivery@protonmail.com wrote:
> > > 
> > > > It's been added recently. Here's the definition: https://github.com/ietf-wg-cellar/matroska-specification/blob/master/codec_specs.md#a_atracat1
> > > > 
> > > > ------- Original Message -------
> > > > On Monday, March 6th, 2023 at 7:39 PM, Paul B Mahol onemda@gmail.com wrote:
> > > > 
> > > > > On 3/6/23, asivery asivery@protonmail.com wrote:
> > > > > 
> > > > > > Signed-off-by: asivery asivery@protonmail.com
> > > > > > ---
> > > > > > libavformat/matroska.c | 1 +
> > > > > > libavformat/matroskadec.c | 2 ++
> > > > > > 2 files changed, 3 insertions(+)
> > > > > 
> > > > > where is this defined?
> > > > > 
> > > > > > diff --git a/libavformat/matroska.c b/libavformat/matroska.c
> > > > > > index 90d94b65bf..37305a523c 100644
> > > > > > --- a/libavformat/matroska.c
> > > > > > +++ b/libavformat/matroska.c
> > > > > > @@ -55,6 +55,7 @@ const CodecTags ff_mkv_codec_tags[]={
> > > > > > {"A_REAL/ATRC" , AV_CODEC_ID_ATRAC3},
> > > > > > {"A_REAL/COOK" , AV_CODEC_ID_COOK},
> > > > > > {"A_REAL/SIPR" , AV_CODEC_ID_SIPR},
> > > > > > + {"A_ATRAC/AT1" , AV_CODEC_ID_ATRAC1},
> > > > > > {"A_TRUEHD" , AV_CODEC_ID_TRUEHD},
> > > > > > {"A_TTA1" , AV_CODEC_ID_TTA},
> > > > > > {"A_VORBIS" , AV_CODEC_ID_VORBIS},
> > > > > > diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> > > > > > index d582f566a2..0aa8e6f3b3 100644
> > > > > > --- a/libavformat/matroskadec.c
> > > > > > +++ b/libavformat/matroskadec.c
> > > > > > @@ -2795,6 +2795,8 @@ static int matroska_parse_tracks(AVFormatContext s)
> > > > > > track->audio.frame_size);
> > > > > > if (!track->audio.buf)
> > > > > > return AVERROR(ENOMEM);
> > > > > > + } else if (codec_id == AV_CODEC_ID_ATRAC1) {
> > > > > > + st->codecpar->block_align = track->audio.channels * 212; / Constant ATRAC
> > > > > > frame size */
> > > > > > } else if (codec_id == AV_CODEC_ID_FLAC && track->codec_priv.size) {
> > > > > > ret = matroska_parse_flac(s, track, &extradata_offset);
> > > > > > if (ret < 0)
> > > > > > --
> > > > > > 2.34.1
> 
> 
> _______________________________________________
> 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".
Andreas Rheinhardt Aug. 4, 2023, 5:28 p.m. UTC | #7
asivery:
> Signed-off-by: asivery <asivery@protonmail.com>
> ---
> libavformat/matroska.c | 1 +
> libavformat/matroskadec.c | 2 ++
> 2 files changed, 3 insertions(+)
> 
> diff --git a/libavformat/matroska.c b/libavformat/matroska.c
> index 90d94b65bf..37305a523c 100644
> --- a/libavformat/matroska.c
> +++ b/libavformat/matroska.c
> @@ -55,6 +55,7 @@ const CodecTags ff_mkv_codec_tags[]={
> {"A_REAL/ATRC" , AV_CODEC_ID_ATRAC3},
> {"A_REAL/COOK" , AV_CODEC_ID_COOK},
> {"A_REAL/SIPR" , AV_CODEC_ID_SIPR},
> + {"A_ATRAC/AT1" , AV_CODEC_ID_ATRAC1},
> {"A_TRUEHD" , AV_CODEC_ID_TRUEHD},
> {"A_TTA1" , AV_CODEC_ID_TTA},
> {"A_VORBIS" , AV_CODEC_ID_VORBIS},
> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> index d582f566a2..0aa8e6f3b3 100644
> --- a/libavformat/matroskadec.c
> +++ b/libavformat/matroskadec.c
> @@ -2795,6 +2795,8 @@ static int matroska_parse_tracks(AVFormatContext *s)
> track->audio.frame_size);
> if (!track->audio.buf)
> return AVERROR(ENOMEM);
> + } else if (codec_id == AV_CODEC_ID_ATRAC1) {
> + st->codecpar->block_align = track->audio.channels * 212; /* Constant ATRAC frame size */
> } else if (codec_id == AV_CODEC_ID_FLAC && track->codec_priv.size) {
> ret = matroska_parse_flac(s, track, &extradata_offset);
> if (ret < 0)
> --
> 2.34.1

This patch is broken. The indentation is off.

- Andreas
Andreas Rheinhardt Aug. 4, 2023, 5:31 p.m. UTC | #8
Andreas Rheinhardt:
> asivery:
>> Signed-off-by: asivery <asivery@protonmail.com>
>> ---
>> libavformat/matroska.c | 1 +
>> libavformat/matroskadec.c | 2 ++
>> 2 files changed, 3 insertions(+)
>>
>> diff --git a/libavformat/matroska.c b/libavformat/matroska.c
>> index 90d94b65bf..37305a523c 100644
>> --- a/libavformat/matroska.c
>> +++ b/libavformat/matroska.c
>> @@ -55,6 +55,7 @@ const CodecTags ff_mkv_codec_tags[]={
>> {"A_REAL/ATRC" , AV_CODEC_ID_ATRAC3},
>> {"A_REAL/COOK" , AV_CODEC_ID_COOK},
>> {"A_REAL/SIPR" , AV_CODEC_ID_SIPR},
>> + {"A_ATRAC/AT1" , AV_CODEC_ID_ATRAC1},
>> {"A_TRUEHD" , AV_CODEC_ID_TRUEHD},
>> {"A_TTA1" , AV_CODEC_ID_TTA},
>> {"A_VORBIS" , AV_CODEC_ID_VORBIS},
>> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
>> index d582f566a2..0aa8e6f3b3 100644
>> --- a/libavformat/matroskadec.c
>> +++ b/libavformat/matroskadec.c
>> @@ -2795,6 +2795,8 @@ static int matroska_parse_tracks(AVFormatContext *s)
>> track->audio.frame_size);
>> if (!track->audio.buf)
>> return AVERROR(ENOMEM);
>> + } else if (codec_id == AV_CODEC_ID_ATRAC1) {
>> + st->codecpar->block_align = track->audio.channels * 212; /* Constant ATRAC frame size */
>> } else if (codec_id == AV_CODEC_ID_FLAC && track->codec_priv.size) {
>> ret = matroska_parse_flac(s, track, &extradata_offset);
>> if (ret < 0)
>> --
>> 2.34.1
> 
> This patch is broken. The indentation is off.
> 
> - Andreas
> 

Apart from this: The result of the multiplication may not fit into an
int; looking at the other atrac1 code it seems that we only support mono
and stereo files. Is this a limitation of FFmpeg or of the format?

- Andreas
asivery Feb. 12, 2024, 12:34 a.m. UTC | #9
I apologize for not having responded earlier.
I've attached the updated patch.


From 68c77320954e44a7f02e95537fc9a6436da7549c Mon Sep 17 00:00:00 2001
From: asivery <asivery@protonmail.com>
Date: Sun, 11 Feb 2024 23:13:07 +0100
Subject: [PATCH] avformat/matroska: Add support for A_ATRAC/AT1

Signed-off-by: asivery <asivery@protonmail.com>
---
 libavformat/matroska.c    | 1 +
 libavformat/matroskadec.c | 8 ++++++++
 libavformat/matroskaenc.c | 1 +
 3 files changed, 10 insertions(+)

diff --git a/libavformat/matroska.c b/libavformat/matroska.c
index 5878594e68..ae9ecc8207 100644
--- a/libavformat/matroska.c
+++ b/libavformat/matroska.c
@@ -53,6 +53,7 @@ const CodecTags ff_mkv_codec_tags[]={
     {"A_REAL/ATRC"      , AV_CODEC_ID_ATRAC3},
     {"A_REAL/COOK"      , AV_CODEC_ID_COOK},
     {"A_REAL/SIPR"      , AV_CODEC_ID_SIPR},
+    {"A_ATRAC/AT1"      , AV_CODEC_ID_ATRAC1},
     {"A_TRUEHD"         , AV_CODEC_ID_TRUEHD},
     {"A_TTA1"           , AV_CODEC_ID_TTA},
     {"A_VORBIS"         , AV_CODEC_ID_VORBIS},
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 8f000f86be..1bb6e8605a 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -2779,6 +2779,14 @@ static int mka_parse_audio_codec(MatroskaTrack *track, AVCodecParameters *par,
             return AVERROR(ENOMEM);
         break;
     }
+    case AV_CODEC_ID_ATRAC1:
+        /* ATRAC1 uses a constant frame size.
+         * Typical ATRAC1 streams are either mono or stereo.
+         * At most, ATRAC1 was used to store 8 channels of audio. */
+        if (track->audio.channels > 8)
+            return AVERROR_INVALIDDATA;
+        par->block_align = track->audio.channels * 212;
+        break;
     case AV_CODEC_ID_FLAC:
         if (track->codec_priv.size) {
             ret = matroska_parse_flac(s, track, extradata_offset);
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 1457a6890c..aa25657f8f 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -3483,6 +3483,7 @@ static const AVCodecTag additional_audio_tags[] = {
     { AV_CODEC_ID_QDM2,      0xFFFFFFFF },
     { AV_CODEC_ID_RA_144,    0xFFFFFFFF },
     { AV_CODEC_ID_TRUEHD,    0xFFFFFFFF },
+    { AV_CODEC_ID_ATRAC1,    0xFFFFFFFF },
     { AV_CODEC_ID_NONE,      0xFFFFFFFF }
 };
Andreas Rheinhardt Feb. 12, 2024, 10:55 a.m. UTC | #10
asivery via ffmpeg-devel:
> I apologize for not having responded earlier.
> I've attached the updated patch.
> 
> 
> From 68c77320954e44a7f02e95537fc9a6436da7549c Mon Sep 17 00:00:00 2001
> From: asivery <asivery@protonmail.com>
> Date: Sun, 11 Feb 2024 23:13:07 +0100
> Subject: [PATCH] avformat/matroska: Add support for A_ATRAC/AT1
> 
> Signed-off-by: asivery <asivery@protonmail.com>
> ---

Send your patch either via git send-email or as an attachment; if you
have comments for your patch (that are not supposed to be part of the
eventual commit and not its commit message), then put them here, in
between the --- and the affected files.

>  libavformat/matroska.c    | 1 +
>  libavformat/matroskadec.c | 8 ++++++++
>  libavformat/matroskaenc.c | 1 +
>  3 files changed, 10 insertions(+)
> 
> diff --git a/libavformat/matroska.c b/libavformat/matroska.c
> index 5878594e68..ae9ecc8207 100644
> --- a/libavformat/matroska.c
> +++ b/libavformat/matroska.c
> @@ -53,6 +53,7 @@ const CodecTags ff_mkv_codec_tags[]={
>      {"A_REAL/ATRC"      , AV_CODEC_ID_ATRAC3},
>      {"A_REAL/COOK"      , AV_CODEC_ID_COOK},
>      {"A_REAL/SIPR"      , AV_CODEC_ID_SIPR},
> +    {"A_ATRAC/AT1"      , AV_CODEC_ID_ATRAC1},

This audio part of this list is ordered by the Matroska CodecID (i.e.
the string on the left). Please keep it that way.

>      {"A_TRUEHD"         , AV_CODEC_ID_TRUEHD},
>      {"A_TTA1"           , AV_CODEC_ID_TTA},
>      {"A_VORBIS"         , AV_CODEC_ID_VORBIS},
> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> index 8f000f86be..1bb6e8605a 100644
> --- a/libavformat/matroskadec.c
> +++ b/libavformat/matroskadec.c
> @@ -2779,6 +2779,14 @@ static int mka_parse_audio_codec(MatroskaTrack *track, AVCodecParameters *par,
>              return AVERROR(ENOMEM);
>          break;
>      }
> +    case AV_CODEC_ID_ATRAC1:
> +        /* ATRAC1 uses a constant frame size.
> +         * Typical ATRAC1 streams are either mono or stereo.
> +         * At most, ATRAC1 was used to store 8 channels of audio. */
> +        if (track->audio.channels > 8)
> +            return AVERROR_INVALIDDATA;
> +        par->block_align = track->audio.channels * 212;
> +        break;
>      case AV_CODEC_ID_FLAC:
>          if (track->codec_priv.size) {
>              ret = matroska_parse_flac(s, track, extradata_offset);
> diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
> index 1457a6890c..aa25657f8f 100644
> --- a/libavformat/matroskaenc.c
> +++ b/libavformat/matroskaenc.c
> @@ -3483,6 +3483,7 @@ static const AVCodecTag additional_audio_tags[] = {
>      { AV_CODEC_ID_QDM2,      0xFFFFFFFF },
>      { AV_CODEC_ID_RA_144,    0xFFFFFFFF },
>      { AV_CODEC_ID_TRUEHD,    0xFFFFFFFF },
> +    { AV_CODEC_ID_ATRAC1,    0xFFFFFFFF },

Please keep this list sorted alphabetically.

>      { AV_CODEC_ID_NONE,      0xFFFFFFFF }
>  };
>
asivery Feb. 12, 2024, 6:05 p.m. UTC | #11
I've attached the updated patch. Both new entries are now placed in an alphabetically correct way in their appropriate lists.

On Monday, February 12th, 2024 at 11:53 AM, Andreas Rheinhardt <andreas.rheinhardt@outlook.com> wrote:

> asivery via ffmpeg-devel:
> 
> > I apologize for not having responded earlier.
> > I've attached the updated patch.
> > 
> > From 68c77320954e44a7f02e95537fc9a6436da7549c Mon Sep 17 00:00:00 2001
> > From: asivery asivery@protonmail.com
> > Date: Sun, 11 Feb 2024 23:13:07 +0100
> > Subject: [PATCH] avformat/matroska: Add support for A_ATRAC/AT1
> > 
> > Signed-off-by: asivery asivery@protonmail.com
> > ---
> 
> 
> Send your patch either via git send-email or as an attachment; if you
> have comments for your patch (that are not supposed to be part of the
> eventual commit and not its commit message), then put them here, in
> between the --- and the affected files.
> 
> > libavformat/matroska.c | 1 +
> > libavformat/matroskadec.c | 8 ++++++++
> > libavformat/matroskaenc.c | 1 +
> > 3 files changed, 10 insertions(+)
> > 
> > diff --git a/libavformat/matroska.c b/libavformat/matroska.c
> > index 5878594e68..ae9ecc8207 100644
> > --- a/libavformat/matroska.c
> > +++ b/libavformat/matroska.c
> > @@ -53,6 +53,7 @@ const CodecTags ff_mkv_codec_tags[]={
> > {"A_REAL/ATRC" , AV_CODEC_ID_ATRAC3},
> > {"A_REAL/COOK" , AV_CODEC_ID_COOK},
> > {"A_REAL/SIPR" , AV_CODEC_ID_SIPR},
> > + {"A_ATRAC/AT1" , AV_CODEC_ID_ATRAC1},
> 
> 
> This audio part of this list is ordered by the Matroska CodecID (i.e.
> the string on the left). Please keep it that way.
> 
> > {"A_TRUEHD" , AV_CODEC_ID_TRUEHD},
> > {"A_TTA1" , AV_CODEC_ID_TTA},
> > {"A_VORBIS" , AV_CODEC_ID_VORBIS},
> > diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> > index 8f000f86be..1bb6e8605a 100644
> > --- a/libavformat/matroskadec.c
> > +++ b/libavformat/matroskadec.c
> > @@ -2779,6 +2779,14 @@ static int mka_parse_audio_codec(MatroskaTrack *track, AVCodecParameters par,
> > return AVERROR(ENOMEM);
> > break;
> > }
> > + case AV_CODEC_ID_ATRAC1:
> > + / ATRAC1 uses a constant frame size.
> > + * Typical ATRAC1 streams are either mono or stereo.
> > + * At most, ATRAC1 was used to store 8 channels of audio. */
> > + if (track->audio.channels > 8)
> > + return AVERROR_INVALIDDATA;
> > + par->block_align = track->audio.channels * 212;
> > + break;
> > case AV_CODEC_ID_FLAC:
> > if (track->codec_priv.size) {
> > ret = matroska_parse_flac(s, track, extradata_offset);
> > diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
> > index 1457a6890c..aa25657f8f 100644
> > --- a/libavformat/matroskaenc.c
> > +++ b/libavformat/matroskaenc.c
> > @@ -3483,6 +3483,7 @@ static const AVCodecTag additional_audio_tags[] = {
> > { AV_CODEC_ID_QDM2, 0xFFFFFFFF },
> > { AV_CODEC_ID_RA_144, 0xFFFFFFFF },
> > { AV_CODEC_ID_TRUEHD, 0xFFFFFFFF },
> > + { AV_CODEC_ID_ATRAC1, 0xFFFFFFFF },
> 
> 
> Please keep this list sorted alphabetically.
> 
> > { AV_CODEC_ID_NONE, 0xFFFFFFFF }
> > };
> 
> 
> _______________________________________________
> 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".
Andreas Rheinhardt Feb. 13, 2024, 2:29 p.m. UTC | #12
asivery via ffmpeg-devel:
> I've attached the updated patch. Both new entries are now placed in an alphabetically correct way in their appropriate lists.
> 

Applied.

- Andreas
diff mbox series

Patch

diff --git a/libavformat/matroska.c b/libavformat/matroska.c
index 90d94b65bf..37305a523c 100644
--- a/libavformat/matroska.c
+++ b/libavformat/matroska.c
@@ -55,6 +55,7 @@  const CodecTags ff_mkv_codec_tags[]={
{"A_REAL/ATRC" , AV_CODEC_ID_ATRAC3},
{"A_REAL/COOK" , AV_CODEC_ID_COOK},
{"A_REAL/SIPR" , AV_CODEC_ID_SIPR},
+ {"A_ATRAC/AT1" , AV_CODEC_ID_ATRAC1},
{"A_TRUEHD" , AV_CODEC_ID_TRUEHD},
{"A_TTA1" , AV_CODEC_ID_TTA},
{"A_VORBIS" , AV_CODEC_ID_VORBIS},
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index d582f566a2..0aa8e6f3b3 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -2795,6 +2795,8 @@  static int matroska_parse_tracks(AVFormatContext *s)
track->audio.frame_size);
if (!track->audio.buf)
return AVERROR(ENOMEM);
+ } else if (codec_id == AV_CODEC_ID_ATRAC1) {
+ st->codecpar->block_align = track->audio.channels * 212; /* Constant ATRAC frame size */
} else if (codec_id == AV_CODEC_ID_FLAC && track->codec_priv.size) {
ret = matroska_parse_flac(s, track, &extradata_offset);
if (ret < 0)