From: Gyan Doshi <ffmpeg@gyani.pro>
To: ffmpeg-devel@ffmpeg.org, tc@ffmpeg.org
Subject: Re: [FFmpeg-devel] FFmpeg TC input needed
Date: Mon, 8 Apr 2024 18:42:36 +0530
Message-ID: <bfebb9be-b3ba-4cab-9edb-065fc2985131@gyani.pro> (raw)
In-Reply-To: <b2444758-c209-4886-b1d9-fe4f0a784329@gyani.pro>
Ping x2.
On 2024-04-02 10:55 am, Gyan Doshi wrote:
> Ping.
>
> As the TC rules matter has been concluded, this should go ahead.
>
> Regards,
> Gyan
>
>
> On 2024-02-17 05:15 pm, Gyan Doshi wrote:
>> Issue:
>>
>> Patch: avcodec/s302m: enable non-PCM decoding
>> URL:
>> https://patchwork.ffmpeg.org/project/ffmpeg/patch/20240127103854.9971-1-ffmpeg@gyani.pro/
>>
>> The issue needing resolution is whether the patch should be added to
>> the existing s302m decoder or should that decoder
>> be removed and all old and new patched features inlined into the
>> mpeg-ts demuxer.
>>
>> Summary:
>>
>> SMPTE ST 302 specifies for carriage of LPCM media in MPEG-TS. SMPTE
>> ST 337 enables this for non-PCM codecs. The payload
>> has a custom layout so it can't be directly processed hence
>> lavc/s302m decodes the packet data to yield LPCM media. But
>> it can only deal at present with LPCM payloads, meaning that non-PCM
>> payloads need to be exported to a raw bytestream
>> format and then decoded in a 2nd step, which prohibits direct
>> transcoding of live/streaming inputs. This patch corrects
>> the identification process for non-PCM payloads, reformats the
>> payload and then carries out in-place decoding by calling
>> a nested decoder similar to the ftr or imm5 decoders in lavc.
>>
>> In the v1 patch review, Andreas, in response to the proposed doc
>> entry describing the feature capability of multiple
>> or differing payloads in a s302m stream, suggested[1] that s302m
>> should be a bitstream filter instead, but I did not
>> see that as an actionable suggestion as he immediately listed the bsf
>> limitations preventing the possibility. I also
>> had not seen an actual sample of s302m with multiple embedded
>> streams. Kieran also observed[2] that he had not seen
>> such a stream in the wild. So the added features of this patch,
>> wherever they are ultimately located, shall not yield
>> more than one media stream. Anton suggested[3] that the decoder
>> should instead be a demuxer. I saw no other objections
>> to the architecture of the patch.
>>
>> I posted the v2 patch, incorporating some changes suggested by
>> Andreas, 4 days later. This had gone uncommented for
>> over two weeks when I posted a notice stating an intention to push.
>> Anton posted[4] a new objection that "If it
>> dynamically generates nested decoders, then it's not a proper codec
>> in our model". This new objection is not connected
>> to multiple streams but only to a codec 'model' that I don't see
>> described anywhere and which contradicts the
>> implementations of multiple decoders with a nested decoder, including
>> the ftr and imm5 decoders, which are most similar
>> in design to the patched s302m decoder. Anton later on mentioned[5]
>> that nested decoders are "a constant source of
>> issues". However, I didn't find anything on trac reporting an issue
>> with the nested decoders of ftr and imm5 nor
>> anything on ffmpeg-devel-ml or ffmpeg-user-ml. Nothing in their
>> commit history either points to architectural bugs.
>> These decoders have been around for 6 years among themselves. The
>> testing of the patched s302m decoder over the past
>> month by myself, an OTT provider and others shows no issues either.
>> Finally, Anton speculates[6] that the burden of
>> fixes will likely fall upon him. In none of his objections, till the
>> time of writing, did I see specific concerns with
>> the patch.
>>
>> There are some limitations in shifting this decoder wholesale to
>> inside the MPEG-TS demuxer. A s302m stream may contain
>> some non-media payload accompanying non-PCM media i.e. S-ADM
>> metadata. At present, I have neither the samples nor the
>> specification needed in order to locate and extract or parse this
>> metadata. Formatting the payload data inside the
>> demuxer will lead to irrevocable loss of such metadata if present.
>> However, a decoder patch allows simultaneuous output
>> of both a decoded stream alongside a copied stream. The end-user can
>> then do with the raw data whatever they wish.
>>
>> Ultimately, s302m is specified an an elementary stream inside a
>> MPEG-TS container. Its internal handling is better left
>> to a dedicated module like a decoder. A bitstream filter might be a
>> better fit if s302m streams with multiple media
>> payloads ever start appearing - none have, so far - but for single
>> media payloads, a decoder remains the best place.
>>
>> Regards,
>> Gyan
>>
>> [1]: https://ffmpeg.org/pipermail/ffmpeg-devel/2024-January/320119.html
>> [2]: https://ffmpeg.org/pipermail/ffmpeg-devel/2024-January/320321.html
>> [3]: https://ffmpeg.org/pipermail/ffmpeg-devel/2024-January/320258.html
>> [4]: https://ffmpeg.org/pipermail/ffmpeg-devel/2024-February/321514.html
>> [5]: https://ffmpeg.org/pipermail/ffmpeg-devel/2024-February/321523.html
>> [6]: https://ffmpeg.org/pipermail/ffmpeg-devel/2024-February/321539.html
>>
>> _______________________________________________
>> 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".
_______________________________________________
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-04-08 13:12 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-17 11:45 Gyan Doshi
2024-02-17 12:01 ` Kieran Kunhya
2024-02-17 13:15 ` Gyan Doshi
2024-02-17 13:42 ` Niklas Haas
2024-02-17 15:09 ` Gyan Doshi
2024-02-17 15:59 ` Kieran Kunhya
2024-02-17 17:31 ` Michael Niedermayer
2024-04-02 5:25 ` Gyan Doshi
2024-04-08 13:12 ` Gyan Doshi [this message]
2024-04-08 14:16 ` Paul B Mahol
2024-04-12 10:29 ` [FFmpeg-devel] [TC] Technical decision on S302M non-PCM decoding Niklas Haas
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=bfebb9be-b3ba-4cab-9edb-065fc2985131@gyani.pro \
--to=ffmpeg@gyani.pro \
--cc=ffmpeg-devel@ffmpeg.org \
--cc=tc@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