// SPDX-License-Identifier: GPL-2.0-or-later /* * cx18 Vertical Blank Interval support functions * * Derived from ivtv-vbi.c * * Copyright (C) 2007 Hans Verkuil <[email protected]> */ #include "cx18-driver.h" #include "cx18-vbi.h" #include "cx18-ioctl.h" #include "cx18-queue.h" /* * Raster Reference/Protection (RP) bytes, used in Start/End Active * Video codes emitted from the digitzer in VIP 1.x mode, that flag the start * of VBI sample or VBI ancillary data regions in the digital ratser line. * * Task FieldEven VerticalBlank HorizontalBlank 0 0 0 0 */ static const u8 raw_vbi_sav_rp[2] = …; /* __V_, _FV_ */ static const u8 sliced_vbi_eav_rp[2] = …; /* T_VH, TFVH */ static void copy_vbi_data(struct cx18 *cx, int lines, u32 pts_stamp) { … } /* Compress raw VBI format, removes leading SAV codes and surplus space after the frame. Returns new compressed size. */ /* FIXME - this function ignores the input size. */ static u32 compress_raw_buf(struct cx18 *cx, u8 *buf, u32 size, u32 hdr_size) { … } static u32 compress_sliced_buf(struct cx18 *cx, u8 *buf, u32 size, const u32 hdr_size) { … } static void _cx18_process_vbi_data(struct cx18 *cx, struct cx18_buffer *buf) { … } void cx18_process_vbi_data(struct cx18 *cx, struct cx18_mdl *mdl, int streamtype) { … }