From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH 6/6 v2] avformat/movenc: add support for Immersive Audio Model and Formats in ISOBMFF
Date: Mon, 5 Feb 2024 17:18:01 +0100
Message-ID: <AS8P250MB074406713939E688E2076BC48F472@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <9ae35670-f7bb-4f8d-ac4e-bb144883bbe6@gmail.com>
James Almer:
> On 2/5/2024 12:28 PM, Andreas Rheinhardt wrote:
>> James Almer:
>>> On 2/5/2024 12:12 PM, Andreas Rheinhardt wrote:
>>>> James Almer:
>>>>> On 2/3/2024 11:50 AM, Andreas Rheinhardt wrote:
>>>>>>> diff --git a/libavformat/movenc.h b/libavformat/movenc.h
>>>>>>> index 60363198c9..fee3e759e0 100644
>>>>>>> --- a/libavformat/movenc.h
>>>>>>> +++ b/libavformat/movenc.h
>>>>>>> @@ -25,7 +25,9 @@
>>>>>>> #define AVFORMAT_MOVENC_H
>>>>>>> #include "avformat.h"
>>>>>>> +#include "iamf.h"
>>>>>>> #include "movenccenc.h"
>>>>>>> +#include "libavcodec/bsf.h"
>>>>>>
>>>>>> There is no need to include these here, as you don't need complete
>>>>>> types. This has the added benefit of forcing you to actually include
>>>>>> the
>>>>>> files where you are using them (namely in movenc.c, where you
>>>>>> forgot to
>>>>>> include bsf.h).
>>>>>
>>>>> Ok, fixed locally.
>>>>>
>>>>> Will push the set soon.
>>>>
>>>> It seems you have not noticed my objection to the first version of
>>>> your set.
>>>>
>>>> - Andreas
>>>
>>> Can you link to it?
>>
>> Sorry, it was v2:
>> https://ffmpeg.org/pipermail/ffmpeg-devel/2024-February/320722.html
>>
>> - Andreas
>
> I removed the codec list from the split bsf like you asked, and
> explained what the bsfs do in the documentation.
For those few codecs where different framings are common and supported
by us, the muxers convert the given framing to the needs of the output
format; decoders also support the various framings. This of course only
works if they can decide which packetization the input uses; it is
possible for the cases we support.
If you allow that packets can contain OBU encapsulated data for
arbitrary codec ids (even if only intended for a few of them), then this
packetization would become officially allowed and we would have to adapt
our muxers and decoders accordingly. Which is just not possible, because
there is just no information available to base this decision on.
There is a second complication with iamf_frame_split_bsf: Up until now,
BSFs only passed the stream index value through. But with this BSF the
output may have multiple ids even when the input only had one. I am
pretty sure that this will surprise and break many users. I don't know
whether ffmpeg is among them (if a user inserts the BSF manually).
In fact, for this BSF the stream_index that the output packet gets is
determined by the offset as well as the packet data alone. The only way
for the demuxer to know these numbers is if it has already parsed the
packet data before and added streams according to this. Looking at 3/6
it seems that this is indeed what's happening (which is wasteful). But
only partially: The iamf_descriptors data is checked and streams are
created according to it, but the data read via av_append_packet() is not
checked at all. What guarantees that it can't contain
IAMF_OBU_IA_AUDIO_ELEMENT elements (which trigger adding new ids and
therefore lead to an increment in the potential output stream_index)?
Also notice that your 3/6 uses the pkt's stream_index coming out of the
BSF without any check.
- Andreas
_______________________________________________
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".
next prev parent reply other threads:[~2024-02-05 16:16 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-31 17:26 [FFmpeg-devel] [PATCH 1/6 v3] avcodec: add an Immersive Audio Model and Formats frame split bsf James Almer
2024-01-31 17:26 ` [FFmpeg-devel] [PATCH 2/6 v3] avformat/demux: support inserting bitstream filters in demuxing scenarios James Almer
2024-01-31 17:26 ` [FFmpeg-devel] [PATCH 3/6 v3] avformat/mov: make MOVStreamContext refcounted James Almer
2024-01-31 17:26 ` [FFmpeg-devel] [PATCH 4/6 v3] avformat/mov: add support for Immersive Audio Model and Formats in ISOBMFF James Almer
2024-01-31 17:26 ` [FFmpeg-devel] [PATCH 5/6 v2] avcodec: add an Immersive Audio Model and Formats frame merge bsf James Almer
2024-01-31 17:26 ` [FFmpeg-devel] [PATCH 6/6 v2] avformat/movenc: add support for Immersive Audio Model and Formats in ISOBMFF James Almer
2024-02-03 14:50 ` Andreas Rheinhardt
2024-02-05 15:08 ` James Almer
2024-02-05 15:12 ` Andreas Rheinhardt
2024-02-05 15:12 ` James Almer
2024-02-05 15:28 ` Andreas Rheinhardt
2024-02-05 15:28 ` James Almer
2024-02-05 16:18 ` Andreas Rheinhardt [this message]
2024-02-05 16:51 ` James Almer
2024-02-05 17:06 ` Andreas Rheinhardt
2024-02-05 17:25 ` James Almer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=AS8P250MB074406713939E688E2076BC48F472@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM \
--to=andreas.rheinhardt@outlook.com \
--cc=ffmpeg-devel@ffmpeg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
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