AW: Very strange problems with my Lifeview FlyDVB-T Carbus card
- From: Hartmut Hackmann <hartmut.hackmann (at) t-online.de>
- Date: Sat, 01 Apr 2006 23:51:11 +0200
Hi, again
Hi,
peter.missel (at) onlinehome.de wrote:
The Playstation is known to do very funny things with the video signal,
especially it sometimes generates non interlaced signals and this
screws up
the video DMA. Please try to load the saa7134 module with the additional
option "noninterlaced=1". This should do the trick since it forces the
odd/even bit to toggle. We might decide to make this the standard
setting.
PLease don't forget to report the result.
Remember how I had the very same problem with the Atari Jaguar
console, one frame sampled and then nothing, with the plain LifeView
FlyTV Platinum?
Sorry, I don't
I'll try the noninterlaced=1 option when I get back home ... exactly
what does that do, technically?
I think it makes sense to spend the effort to explain this in detail. I
will
do that later.
Ok, lets start..
To get in sync:
You know that all current TV systems use interlace, At PAL, a picture (frame)
consists of 2 fields, both 312.5 lines long. The first (odd) filed provides
the line numbers 1,3,5,... while the second field provides the line 2,4,6...
Both fields together provide the full vertical resolution of 625 lines
(576) active. The field sequence is fixed, an odd field is always followed
by an even field.
The odd/even field information is provided by the start position of the
vertitical sync pulse, at the beginning of an odd field, ther vertical sync
starts at the beginning of a line, for the even filed, it starts after
1/2 line.
At non-interlace, the field length is a multiple of the line length. This
actually means half the vertical resolution, but the line flickering is
gone. The vertical sync always has the same position, normally at the
beginning of the line. So there are only odd fields.
The sync engine of the SAA713x detects odd and even fields and provides
this information to the DMA engine.
The DMA engine operates field based and - like many other streaming engines -
it has 2 register sets defining base address, line pitch etc. When one buffer
is filled, the engine generates an interrupt and automatically switches to
the other register set and thus to the next buffer. The PC has the full buffer
length time to service the interrupt and to set up the register set for the
next buffer.
The video DMA engine has one special behaviour: The selection of the DMA
buffer is controlled by the odd/even info from the decoder:
- The vertical sync causes the "buffer ready" interrupt
- The odd / even selects register set 1 or 2
At interlace, things work exactly as desired, the engine alters between
the register sets. But at non interlace, only the first buffer is
used and the fact thet there never is an even field, this might break
the entire buffer handling in the driver.
The saa713x has a "force odd / even toggle" option. If this is active, the
DMA engine will always alter between the register sets, even if there are
only odd fields. If there is a transition from even to odd, this toggling
gets resynchronized.
The noninterlaced option sets the force odd/even bit on, so capturing non
interlaced signals should work. The only disadvantage i can imagine is that
if you try to capture single frames, the field order might be inverse if
the odd even bit is not yet resynchonized.
Best regards
Hartmut
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request (at) redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list