[Ffmpeg-devel] Post processing of codecs which require it. (original) (raw)
Michael Niedermayer michaelni
Sat Feb 4 02:32:39 CET 2006
- Previous message: [Ffmpeg-devel] Post processing of codecs which require it.
- Next message: [Ffmpeg-devel] Post processing of codecs which require it.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi
On Fri, Feb 03, 2006 at 07:07:09PM -0500, Debabrata Banerjee wrote:
Short explanation: I believe that avcodecdecodevideo is incomplete
Long explanation: I started out by trying to add a decoding feature to MythTV. For a long time now MythTV mpeg-4 playback has not had post-processing at all. This results in very nasty macroblocking, even at high-bit rates - which were really unnecessary if post-processed correctly. It does have it's own filter-plugin mechanism, however only raw frames are available to the output filter. Qscaletable and qstride are really necessary in order to properly post-process and mpeg-4 frame. There was an effort more than a year ago to push these out with each frame into the buffer and then into the filter plugins - and it never worked. So I sat down and decided to try and fix this, except I wasn't going to bother trying to buffer these values, but rather post-process directly after the decoded frame was received as it was codec specific -who wants to (or should) deblock/dering mpeg2/rtjpeg/HD/etc video?? Having never seen
well, i do sometimes ...
exactly how this is done and with little documentation, I noticed there are a lot of internal variables that I shouldn't really have to be concerned with or know what they do when using ffmpeg as a library. The call should be simple and abstract. I believe when you call avcodecdecodevideo() to get a frame, this frame should be fully processed when you get it back,
NO! avcodec_decode_video() decodes the video, postprocessing is a seperate thing, not only conceptually but also implementation wise
theres nothing wrong with adding avcodec_decode_and_process_video() though if you want to contribute something ...
and the proper place to make a code change is not MythTV, but ffmpeg. Right now conceptually we are only getting half-decoded frames back, as mpeg-4 decoding involves a post-processing stage to really be mpeg-4. This applies to all the other codecs that need post-processing as well.
post-processing is not part of mpeg-anything, sorry its a non-normative thing you can if you want do after decoding (dont hesitate to look it up in the mpeg vido spec if you dont agree)
What do you guys think?
i would suggest you look at mplayers vd_ffmpeg.c and vf_pp.c maybe ...
Also if you disagree - it would be nice to update apiexample.c with how to do this properly for us n00bs :)
yes it would be nice, patch welcome :)
[...]
Michael
- Previous message: [Ffmpeg-devel] Post processing of codecs which require it.
- Next message: [Ffmpeg-devel] Post processing of codecs which require it.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]