mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 04:33:26 +02:00
Reapply "media: bttv: add back vbi hack"
This reverts commit ac24c93aa4
.
This commit is contained in:
@@ -2772,6 +2772,27 @@ bttv_irq_wakeup_vbi(struct bttv *btv, struct bttv_buffer *wakeup,
|
|||||||
return;
|
return;
|
||||||
wakeup->vbuf.vb2_buf.timestamp = ktime_get_ns();
|
wakeup->vbuf.vb2_buf.timestamp = ktime_get_ns();
|
||||||
wakeup->vbuf.sequence = btv->field_count >> 1;
|
wakeup->vbuf.sequence = btv->field_count >> 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Ugly hack for backwards compatibility.
|
||||||
|
* Some applications expect that the last 4 bytes of
|
||||||
|
* the VBI data contains the sequence number.
|
||||||
|
*
|
||||||
|
* This makes it possible to associate the VBI data
|
||||||
|
* with the video frame if you use read() to get the
|
||||||
|
* VBI data.
|
||||||
|
*/
|
||||||
|
if (vb2_fileio_is_active(wakeup->vbuf.vb2_buf.vb2_queue)) {
|
||||||
|
u32 *vaddr = vb2_plane_vaddr(&wakeup->vbuf.vb2_buf, 0);
|
||||||
|
unsigned long size =
|
||||||
|
vb2_get_plane_payload(&wakeup->vbuf.vb2_buf, 0) / 4;
|
||||||
|
|
||||||
|
if (vaddr && size) {
|
||||||
|
vaddr += size - 1;
|
||||||
|
*vaddr = wakeup->vbuf.sequence;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
vb2_buffer_done(&wakeup->vbuf.vb2_buf, state);
|
vb2_buffer_done(&wakeup->vbuf.vb2_buf, state);
|
||||||
if (btv->field_count == 0)
|
if (btv->field_count == 0)
|
||||||
btor(BT848_INT_VSYNC, BT848_INT_MASK);
|
btor(BT848_INT_VSYNC, BT848_INT_MASK);
|
||||||
|
Reference in New Issue
Block a user