[FFmpeg-devel] [PATCH 001/293 v8] avutil/channel_layout: Add a new channel layout API

James Almer jamrial at gmail.com
Thu Mar 17 21:46:26 EET 2022



On 3/17/2022 4:39 PM, Michael Niedermayer wrote:
> On Tue, Mar 15, 2022 at 11:00:02PM -0300, James Almer wrote:
>> On 3/15/2022 9:41 PM, Michael Niedermayer wrote:
>>> On Mon, Jan 24, 2022 at 05:46:56PM -0300, James Almer wrote:
>>>> From: Anton Khirnov <anton at khirnov.net>
>>>>
>>>> The new API is more extensible and allows for custom layouts.
>>>> More accurate information is exported, eg for decoders that do not
>>>> set a channel layout, lavc will not make one up for them.
>>>>
>>>> Deprecate the old API working with just uint64_t bitmasks.
>>>>
>>>> Expanded and completed by Vittorio Giovara <vittorio.giovara at gmail.com>
>>>> and James Almer <jamrial at gmail.com>.
>>>> Signed-off-by: Vittorio Giovara <vittorio.giovara at gmail.com>
>>>> Signed-off-by: James Almer <jamrial at gmail.com>
>>>> ---
>>>> Changes since last version:
>>>>
>>>> *Both av_channel_layout_describe() and av_channel_layout_from_string() now
>>>>    support a "2 channels (FL+LFE)" syntax, to signal native (usually
>>>>    non-standard) or custom order layouts.
>>>> *a single decimal value is now interpreted as a mask by
>>>>    av_channel_layout_from_string(), same as a single hexadecimal value.
>>>> *De-duplicated code by simplifying av_channel_layout_channel_from_string().
>>>>
>>>> The entire set can still be found in
>>>> https://github.com/jamrial/FFmpeg/commits/channel_layout4
>>>>
>>>>    libavutil/channel_layout.c | 661 +++++++++++++++++++++++++++++++++----
>>>>    libavutil/channel_layout.h | 551 +++++++++++++++++++++++++++++--
>>>>    libavutil/version.h        |   1 +
>>>>    3 files changed, 1110 insertions(+), 103 deletions(-)
>>>
>>> didnt bisect but
>>>
>>> this
>>> ./ffmpeg -i ~/tickets/3542/out.mov -channel_layout stereo -acodec pcm_s16be file.mov
>>> fails after the patchset but not before
>>>
>>> [graph_0_in_0_0 @ 0x5642d659ec40] filter context - fmt: s16 r: 44100 layout: 3 ch: 2, incoming frame - fmt: s16 r: 44100 layout: 60000000 ch: 2 pts_time: 0
>>> [graph_0_in_0_0 @ 0x5642d659ec40] Changing audio frame properties on the fly is not supported.
>>> Error while filtering: Invalid argument
>>> Failed to inject frame into filter network: Invalid argument
>>> Error while processing the decoded data for stream #0:0
>>> Conversion failed!
>>
>> Should be fixed.
> 
> Heres another which broke around the channel change
> ./ffmpeg -i tickets//2064/mus_sympathy_for_the_devil_l.wav file.wav
> 
> "tickets//2064/mus_sympathy_for_the_devil_l.wav: Function not implemented"
> 
> file seems here:
> https://www.djxmmx.net/ffmpeg/2064/

What was this file read as before the set? Ticket 2064 mentions a file 
with a wav extension that's an "unknown container", and then the ticket 
was closed as fixed without referencing a commit.


More information about the ffmpeg-devel mailing list