Re: [PATCH v2 13/13] media: bttv: convert to vb2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Deb,

When testing this I was wondering why the sequence counter didn't detect dropped
frames (which happens when you start/stop a vbi stream while streaming video).

On 02/05/2023 05:27, Deborah Brouwer wrote:
> -static void bttv_field_count(struct bttv *btv)
> -{
> -	int need_count = 0;
> -
> -	if (btv->users)
> -		need_count++;
> -
> -	if (need_count) {
> -		/* start field counter */
> -		btor(BT848_INT_VSYNC,BT848_INT_MASK);
> -	} else {
> -		/* stop field counter */
> -		btand(~BT848_INT_VSYNC,BT848_INT_MASK);
> -		btv->field_count = 0;
> -	}
> -}

This is the root cause: this function is used to turn on VSYNC interrupts
and in the interrupt handler the field_count is incremented.

In the vb1 version of this driver this field_count is passed on to vb1, which
uses it to set the sequence counter to field_count / 2.

By removing this function the VSYNC irq is never enabled and so field_count is
always 0. So I think in bttv the seqnr field should be dropped and the field_count
mechanism re-instated.

Comparing the number of dropped frames when starting/stopping vbi it looks like
in both cases (vb1 and vb2) one frame is dropped when starting vbi. But when
stopping vbi no frames are dropped in the vb1 case, but 3 in the vb2 case.

Another thing I discovered is that for PAL the vcr_hack control has to be enabled,
otherwise the video is full of glitches. This was present before your series, and
happens even with a video signal from a proper PAL video generator, so this is really
strange. I can't remember that I needed this in the past, but it has been years
since I last tested it.

PAL capture is fine for Top/Bottom/Alternate settings, it only fails for Interlaced
and Sequential Top/Bottom capture modes.

When I have more time I will dig into this a bit more.

Regards,

	Hans



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux