2009-11-29, 20:16
I seriously miss the post-processing ability from my old mplayer based setup (I have a lot of low quality movies), so I put a few hours into implementing it in XBMC's dvdplayer. It's working very well, but there are a few things I feel need discussion.
User interface
This kind of post-processing has two downsides: (a) the image gets blurred, and (b) it eats CPU cycles. As such, there needs to be an on/off switch.
Since low-resolution and overly compressed tend to go hand in hand, I copied the design from the software scaler and made the configuration tri-state (off/SD only/everything).
One thing I'd like to improve is the naming of the category. "Post-processing" is not very descriptive to those not in the know, and I think we should separate function from implementation (so that we can change the implementation in the future). Basically I'd like something that says "Clean up your crappy videos".
Configuration
The current configuration for post-processing is very messy. There are currently two things in the configuration named "postprocessing":
1. The mplayer code, documented here http://wiki.xbmc.org/?title=Advancedsett...cessing.3E
2. Deinterlacing control, stored as <video><postprocessing> in advancedsettings (but not documented unfortunately)
My code stores in guisettings under videoplayer.postprocess, but I'm not happy with the name for the same reason I don't want the GUI to be labeled "post-processing".
Patch
Make sure we keep the qscale data as the filters need this to do the right thing:
xbmc-qscale.patch
The actual post-processing patch:
xbmc-postproc.patch
Result
Many of you are probably eager to see what this does.
Before:
After:
Diff (changed pixels are white):
User interface
This kind of post-processing has two downsides: (a) the image gets blurred, and (b) it eats CPU cycles. As such, there needs to be an on/off switch.
Since low-resolution and overly compressed tend to go hand in hand, I copied the design from the software scaler and made the configuration tri-state (off/SD only/everything).
One thing I'd like to improve is the naming of the category. "Post-processing" is not very descriptive to those not in the know, and I think we should separate function from implementation (so that we can change the implementation in the future). Basically I'd like something that says "Clean up your crappy videos".
Configuration
The current configuration for post-processing is very messy. There are currently two things in the configuration named "postprocessing":
1. The mplayer code, documented here http://wiki.xbmc.org/?title=Advancedsett...cessing.3E
2. Deinterlacing control, stored as <video><postprocessing> in advancedsettings (but not documented unfortunately)
My code stores in guisettings under videoplayer.postprocess, but I'm not happy with the name for the same reason I don't want the GUI to be labeled "post-processing".
Patch
Make sure we keep the qscale data as the filters need this to do the right thing:
xbmc-qscale.patch
The actual post-processing patch:
xbmc-postproc.patch
Result
Many of you are probably eager to see what this does.
Before:
After:
Diff (changed pixels are white):