On Wed, 20 Nov 2024, martin schitter wrote:



On 19.11.24 22:47, Marton Balint wrote:
 The current parser does things which a parser should not, like skipping
 parts
 of the packet header, but it does not actually able to packetize a raw
 DNXUC
 bitstream.

You're right! I simply can't reject this judgment about the obvious flaws of the current implementation.

Although I see significant improvements in your rewrite attempt, I'm still unsure, if it really solves the main issue.

Your design makes a lot of sense, if someone wants to copy the DNxUC video stream without any additional de-/encoding by just passing through this kind of unprocessed 'pack'-box data. That's a very efficient kind of handling for some cases.

But I'm still not completely satisfied by this solution, because I'm skeptical, that it builds a suitable solution for multi-component cases (RGB + alpha or multiple FX/rendering layers) as well. And that's IMHO the much more puzzling open problem.

The layering issue is for the decoder to take care of, not the parser. The parser's primary job is to packetize a non-packetized stream and maybe get some basic information about the packets which normally the container has.

This patch fixing the parser should not be contriversal, because it only changes how the parser behaves, there is no argument about that as far as I know.


This kind of layered content should be perhaps split immediately within the MXF demuxer and generate multiple video streams very early. But unfortunately this doesn't quite fit into the current MFX demuxer design. Otherwise, we will have to divide the video stream at a later stage, where such changes are usually not expected anymore.

How do you think about this difficulty?

I personally still don't have any convincing solution for this quest.

Some cases the decoder can support, maybe some cases it can't. Let's focus on the ones which it can. E.g. planar formats can be used for multiple icmp boxes.


 Rework the parser logic to work similar to other parsers and be able to
 correctly packetize raw DNXUC bitstreams.

In principle, I appreciate your rewrite. It's definitely an improvement, and it's perfectly acceptable to shift all further packet processing into the decoder module.

Honestly I'm rather surprised, that someone still wants to improve this DNxUC related code, because I'm personally more in the mood to ask for reverting the already merged parts. I simply don't want to waste my time on useless fights...

I get it, reaching a consensus is not always possible and the debate can be demoralizing. But that is how it is, if you want to contribute to open source, you have to accept that. Some patches may get rejected today, maybe they will get accepted in a year with no fuss. It happens.

Regarding DNXUC and the MXF demuxer the main question is not even about the DNXUC decoder, but the MXF demuxer, if it should output RAWVIDEO codec (where possible) or always DNXUC codec. Deciding on this should not delay the inclusion of the DNXUC decoder the way I see it. And in my opinion the DNXUC decoder should support everything the format supports regardless of what the MXF demuxer does. (A library user might use his own demuxer and only the DNXUC decoder from ffmpeg).

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

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

Reply via email to