
2006/6/24, Michael Niedermayer <michaelni@gmx.at>:
Hi
On Fri, Jun 23, 2006 at 10:17:58PM +0200, Luca Barbato wrote:
Michael Niedermayer wrote:
please forget it! send a path to libnut and you will see its not feasable
Well I believe you even if I'm missing why
randomcodec_init(int workarounds) won't work
the call would be something like codecs[tag].init(hints)
i have not the faintest clue what you are talking about but storing workarund hints in nut would need you to solve the following 1. the muxer has a packet and some codec identifer (fourcc, string or other) next the muxer must find the workaround hints, this requires decoding several frames (the muxer needs at least a mpeg4 decoder and possible some parsers for various headers of other codecs
are you suggesting that the nut muxer should decode frames? yes ? no ? if no then from where do you want to find these hints? the muxer has a bunch of "opaque" bytes which are an encoded video frame and a codec id, things like width and height ...
2. the demuxer passes the hints to the codec, no codec in existance can make any sense of such hints, they either can detect the buggy encoder and deal with it or they cant, if half of the info has been butchered (fourcc changed from xvid to mp4v) then chances are _slightly_ lower that the detecton will work, most of the time it will, but not always
you can of coarse just store the fourcc either alone or in addition to another identifer, that of coarse will help the decoder but i wouldnt call that "hints"
XviD stores bitstream version id. It is just number that is increased every time and encoder bug that affects decoding is fixed. If you have this number you can set workaround for all bugs even before the first decoded frame. (I guess this is not available for the oldest xvid streams, but still...) We have the trend to use tags/4cc that are format specific only, without any codec information. If we have codec information a player could prefer to decode the content with the same codec. For sure it would be able to workaround its own bugs.