On Fri, 04 Feb 2005 18:11:37 -0500, Jelle wrote:
>
> Thanks for the prep_frame/vsync tip John, I hope I have some time this
> week-end to give it a try.
Ahh, much better. It looks almost perfect now. The video playback is
very smooth, especially compared to what it looked like before. Sometimes
frames appear to be skipped, but that is gone when I change mythtv
playback to 'use video as timebase' (so maybe it's an audio sample rate
mismatch thing).
Two relatively minor issues remain:
1) Once or twice I found that the video did look a bit jittery. Stopping
the playback and restarting it solved it. I could not reproduce the
behaviour later.
2) Sometimes there seems to be some tearing in the top half of the screen.
It's not always visible and not as disturbing (to me) as the
tearing with the unpatched driver, but I sometimes see it and it does look
like it shouldn't be there. Maybe the vsync arrives a little late
sometimes?
Patch below. It this safe to do? Why is the transfer chopped up to
begin with? Was it a stability issue or something?
(ps: I had to do some other patch stuff to compile the 0.8.0 driver,
because it didn't know the uin32_t and uint64_t types used in the ivtv.h
and including linux/types.h didn't help...)
Jelle.
-----------
--- ivtv/ivtvhw.c 2004-12-15 16:04:27.000000000 -0500
+++ ivtv.patched/ivtvhw.c 2005-02-05 20:46:26.000000000 -0500
@@ -750,8 +754,8 @@
unsigned long totalData =
endOffset - startOffset;
-
- if (totalData > 64 *1024 *4)
+#if 0
+ if (totalData > 64 *1024 *4)
{
/* This is a bigger lump so send in 2 bits */
totalData /= 2;
@@ -759,15 +763,20 @@
secondOffset = endOffset - totalData;
} else
{
- totalData = (totalData + 65535) & ~65535;
+#endif
+ if (totalData <= 64 *1024 *21) /* otherwise we get "Count 1441792
Offset -59392 is greater than buffer" fro
+ {
+ totalData = (totalData + 65535) & ~65535;
+ }
if ((startOffset + totalData) > totalScreenSize)
{
startOffset -= (startOffset + totalData) - totalScreenSize;
}
+#if 0
}
-
+#endif
args.source = ((char *)ptr+startOffset);
args.dest_offset = startOffset;
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
ivtv-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ivtv-devel