[mythtv] Updated patch for directshow filters with MythTV (for CoreAVC)

Andrew Lyon andrew.lyon at gmail.com
Fri Feb 16 18:02:31 UTC 2007


On 2/16/07, Alan Nisota <alannisota at gmail.com> wrote:
> Andrew Lyon wrote:
> > On 2/15/07, Alan Nisota <alannisota at gmail.com> wrote:
> >> Andrew Lyon wrote:
> >> > The colour issue remains, "vertical, colour/chroma ghosting" is a good
> >> > description, alan do you see the same on the other sample I sent?
> >> I've been unable to see any chroma problems so far (but I haven't had a
> >> chance to look at the new sample I got from you).  However, I saw this
> >> on the Doom9 forum:
> >>
> >>     Has anybody tried setting the output color space to RGB32? I want to
> >>     use it because there are problems with the color range in YUV modes
> >>     on NVidia cards (16-235 instead of 0-255). The reason I need this is
> >>     because the Fix VMR9 color range is not working when DirectVobSub
> >>     (or any other postprocessing) is used.
> >>
> >> I'm not too familiar with the output formats, but we are using I420
> >> which is a 12bit format like the other YUV modes.  If this is the
> >> problem it would explain why I haven't seen the issue on the samples
> >> I've looked at.  You can try to fix it via:
> >> mythregistercodec -r ~/.mythtv/registry -k
> >> "HKCU\\Software\\CoreCodec\\CoreAVC Pro\\VMR9Fix" -v "1"
> >>
> >> It may or may not work though.  Currently we can only set string values
> >> for registry keys, and this would normally be a DWORD.  If it doesn't
> >> help, I'll put together a patch to allow setting the type.  It may be
> >> that I'm barking up the wrong tree here, too.
> >
> > Tried it, no change.
> Ok, one last msg, then I need to go to bed:
> This crude hack fixes the color problem for me, so it does show that it
> is an alignment issue:
> in avformatdecoder.cpp:
>     avctx->get_buffer(avctx, picture);
>     ret = DS_VideoDecoder_DecodeInternal(dshowdec, buf, len, 0, (char
> *)picture->data[0]);
> //    printf("\tret: %d\n", ret);
> //    frm->type    = FF_BUFFER_TYPE_USER;
> +    memmove(picture->data[0] + 1440*1088 + 1440 * 1088 / 4,
> picture->data[0] + 1440*1080 + 1440*1080 / 4, 1440*1080 / 4);
> +    memmove(picture->data[0] + 1440*1088, picture->data[0] + 1440*1080,
> 1440*1080 / 4);
>     *got_picture_ptr = 1;
>
>
> Note that I hardcoded the resolution so it'll only work for this one
> case, but it fixes the color offset on the samples I have.  Now that I
> know what is wrong, I'll clean it up so the res isn't hardcoded and add
> it to my patch tommorow.
> If one of you UK folks could verify it is ok, that would be helpful.
> I'll roll up all the patches I've posted and create a new CoreAVC patch
> from them.
>
>
>

Tested with UK BBC HD, image is perfect, playback is a little jittery
at times and cpu load is higher, I assume because of the extra
calculation added to correct the colours/alignment... I will get a
faster cpu if necessary.

Well done Alan.

Andy


More information about the mythtv-dev mailing list