[mythtv] KernelDeint update, NuppelVideoRecorder question
Andrew Mahone
andrewmahone at eml.cc
Mon Nov 10 10:28:13 EST 2003
I have KernelDeint running (barely) on my system. There's no ghosting, as
seen with linearblend, but there is some loss of vertical resolution (try
postprocess=ci or postprocess=li for an idea of how this looks). The lost
resolution is not as severe as with simple interpolation, and I expect it to
be better once I implement the other filter kernel. It's completely
unoptimized now, and very, very slow. Once I tackle the problems mentioned
below, I'll redo it in MMX.
I had some minor issues with the NVR class getting this to work. Capture
format selection "works" now, and it captures in the format requested by the
filter chain, but there are some ugly hacks that I'm looking to improve on.
Because InitBuffers is called before the filter chain is set up, it doesn't
know what pixel format to use, and therefore it doesn't know how much space
to allocate per frame. To get it to work so that I can test, I edited
InitBuffers to always allocate enough space for YUV422P frames. See why I
called it ugly?
To fix the problem, it looks like I'd need to add a ReInitBuffers method to
check the buffer size and allocate larger buffers if necessary.
StartRecording would set inpixfmt to FMT_NONE, and call InitFilters to reload
the filter chain and get the selected capture format. InitFilters would call
ReInitBuffers if necessary to make sure the capture buffers were large
enough. This seems like best way to make it work to me. I'll also need to
fix FilterManager so it doesn't break things when LoadFilters is called with
an empty string and inpixfmt=FM_NONE, so that setting inpixfmt=FMT_NONE in
NVR won't break things when there are no filters selected (I think I see why
Isaac reverted that part of the patch, now). Anyone else have some thoughts
on whether this is the right way to make this work?
--
Andrew Mahone
andrewmahone AT eml DOT cc
More information about the mythtv-dev
mailing list