linux/include/uapi/linux/dvb/video.h

/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
/*
 * video.h - DEPRECATED MPEG-TS video decoder API
 *
 * NOTE: should not be used on future drivers
 *
 * Copyright (C) 2000 Marcus Metzler <[email protected]>
 *                  & Ralph  Metzler <[email protected]>
 *                    for convergence integrated media GmbH
 */

#ifndef _UAPI_DVBVIDEO_H_
#define _UAPI_DVBVIDEO_H_

#include <linux/types.h>
#ifndef __KERNEL__
#include <time.h>
#endif

video_format_t;


video_displayformat_t;

video_size_t;

video_stream_source_t;


video_play_state_t;


/* Decoder commands */
#define VIDEO_CMD_PLAY
#define VIDEO_CMD_STOP
#define VIDEO_CMD_FREEZE
#define VIDEO_CMD_CONTINUE

/* Flags for VIDEO_CMD_FREEZE */
#define VIDEO_CMD_FREEZE_TO_BLACK

/* Flags for VIDEO_CMD_STOP */
#define VIDEO_CMD_STOP_TO_BLACK
#define VIDEO_CMD_STOP_IMMEDIATELY

/* Play input formats: */
/* The decoder has no special format requirements */
#define VIDEO_PLAY_FMT_NONE
/* The decoder requires full GOPs */
#define VIDEO_PLAY_FMT_GOP

/* The structure must be zeroed before use by the application
   This ensures it can be extended safely in the future. */
struct video_command {};

/* FIELD_UNKNOWN can be used if the hardware does not know whether
   the Vsync is for an odd, even or progressive (i.e. non-interlaced)
   field. */
#define VIDEO_VSYNC_FIELD_UNKNOWN
#define VIDEO_VSYNC_FIELD_ODD
#define VIDEO_VSYNC_FIELD_EVEN
#define VIDEO_VSYNC_FIELD_PROGRESSIVE

struct video_event {};


struct video_status {};


struct video_still_picture {};


video_attributes_t;
/*   bits: descr. */
/*   15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */
/*   13-12 TV system (0=525/60, 1=625/50) */
/*   11-10 Aspect ratio (0=4:3, 3=16:9) */
/*    9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca */
/*    7    line 21-1 data present in GOP (1=yes, 0=no) */
/*    6    line 21-2 data present in GOP (1=yes, 0=no) */
/*    5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 */
/*    2    source letterboxed (1=yes, 0=no) */
/*    0    film/camera mode (0=
 *camera, 1=film (625/50 only)) */


/* bit definitions for capabilities: */
/* can the hardware decode MPEG1 and/or MPEG2? */
#define VIDEO_CAP_MPEG1
#define VIDEO_CAP_MPEG2
/* can you send a system and/or program stream to video device?
   (you still have to open the video and the audio device but only
    send the stream to the video device) */
#define VIDEO_CAP_SYS
#define VIDEO_CAP_PROG
/* can the driver also handle SPU, NAVI and CSS encoded data?
   (CSS API is not present yet) */
#define VIDEO_CAP_SPU
#define VIDEO_CAP_NAVI
#define VIDEO_CAP_CSS


#define VIDEO_STOP
#define VIDEO_PLAY
#define VIDEO_FREEZE
#define VIDEO_CONTINUE
#define VIDEO_SELECT_SOURCE
#define VIDEO_SET_BLANK
#define VIDEO_GET_STATUS
#define VIDEO_GET_EVENT
#define VIDEO_SET_DISPLAY_FORMAT
#define VIDEO_STILLPICTURE
#define VIDEO_FAST_FORWARD
#define VIDEO_SLOWMOTION
#define VIDEO_GET_CAPABILITIES
#define VIDEO_CLEAR_BUFFER
#define VIDEO_SET_STREAMTYPE
#define VIDEO_SET_FORMAT
#define VIDEO_GET_SIZE

/**
 * VIDEO_GET_PTS
 *
 * Read the 33 bit presentation time stamp as defined
 * in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
 *
 * The PTS should belong to the currently played
 * frame if possible, but may also be a value close to it
 * like the PTS of the last decoded frame or the last PTS
 * extracted by the PES parser.
 */
#define VIDEO_GET_PTS

/* Read the number of displayed frames since the decoder was started */
#define VIDEO_GET_FRAME_COUNT

#define VIDEO_COMMAND
#define VIDEO_TRY_COMMAND

#endif /* _UAPI_DVBVIDEO_H_ */