blob: bf14e0a234143228b25b8c282655704e58e0e40d [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _UAPI_DVBVIDEO_H_
8#define _UAPI_DVBVIDEO_H_
9#include <linux/types.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070010#include <time.h>
11typedef enum {
Tao Baod7db5942015-01-28 10:07:51 -080012 VIDEO_FORMAT_4_3,
13 VIDEO_FORMAT_16_9,
Tao Baod7db5942015-01-28 10:07:51 -080014 VIDEO_FORMAT_221_1
Ben Cheng655a7c02013-10-16 16:09:24 -070015} video_format_t;
16typedef enum {
Tao Baod7db5942015-01-28 10:07:51 -080017 VIDEO_PAN_SCAN,
18 VIDEO_LETTER_BOX,
19 VIDEO_CENTER_CUT_OUT
Ben Cheng655a7c02013-10-16 16:09:24 -070020} video_displayformat_t;
21typedef struct {
Tao Baod7db5942015-01-28 10:07:51 -080022 int w;
23 int h;
Tao Baod7db5942015-01-28 10:07:51 -080024 video_format_t aspect_ratio;
Ben Cheng655a7c02013-10-16 16:09:24 -070025} video_size_t;
26typedef enum {
Tao Baod7db5942015-01-28 10:07:51 -080027 VIDEO_SOURCE_DEMUX,
Tao Baod7db5942015-01-28 10:07:51 -080028 VIDEO_SOURCE_MEMORY
Ben Cheng655a7c02013-10-16 16:09:24 -070029} video_stream_source_t;
30typedef enum {
Tao Baod7db5942015-01-28 10:07:51 -080031 VIDEO_STOPPED,
Tao Baod7db5942015-01-28 10:07:51 -080032 VIDEO_PLAYING,
33 VIDEO_FREEZED
Ben Cheng655a7c02013-10-16 16:09:24 -070034} video_play_state_t;
35#define VIDEO_CMD_PLAY (0)
Ben Cheng655a7c02013-10-16 16:09:24 -070036#define VIDEO_CMD_STOP (1)
37#define VIDEO_CMD_FREEZE (2)
38#define VIDEO_CMD_CONTINUE (3)
39#define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0)
Ben Cheng655a7c02013-10-16 16:09:24 -070040#define VIDEO_CMD_STOP_TO_BLACK (1 << 0)
41#define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1)
42#define VIDEO_PLAY_FMT_NONE (0)
43#define VIDEO_PLAY_FMT_GOP (1)
Ben Cheng655a7c02013-10-16 16:09:24 -070044struct video_command {
Tao Baod7db5942015-01-28 10:07:51 -080045 __u32 cmd;
46 __u32 flags;
47 union {
Tao Baod7db5942015-01-28 10:07:51 -080048 struct {
49 __u64 pts;
50 } stop;
51 struct {
Tao Baod7db5942015-01-28 10:07:51 -080052 __s32 speed;
53 __u32 format;
54 } play;
55 struct {
Tao Baod7db5942015-01-28 10:07:51 -080056 __u32 data[16];
57 } raw;
58 };
Ben Cheng655a7c02013-10-16 16:09:24 -070059};
Ben Cheng655a7c02013-10-16 16:09:24 -070060#define VIDEO_VSYNC_FIELD_UNKNOWN (0)
61#define VIDEO_VSYNC_FIELD_ODD (1)
62#define VIDEO_VSYNC_FIELD_EVEN (2)
63#define VIDEO_VSYNC_FIELD_PROGRESSIVE (3)
Ben Cheng655a7c02013-10-16 16:09:24 -070064struct video_event {
Tao Baod7db5942015-01-28 10:07:51 -080065 __s32 type;
Ben Cheng655a7c02013-10-16 16:09:24 -070066#define VIDEO_EVENT_SIZE_CHANGED 1
67#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
Ben Cheng655a7c02013-10-16 16:09:24 -070068#define VIDEO_EVENT_DECODER_STOPPED 3
69#define VIDEO_EVENT_VSYNC 4
Christopher Ferris1308ad32017-11-14 17:32:13 -080070 long timestamp;
Tao Baod7db5942015-01-28 10:07:51 -080071 union {
Tao Baod7db5942015-01-28 10:07:51 -080072 video_size_t size;
73 unsigned int frame_rate;
74 unsigned char vsync_field;
75 } u;
Ben Cheng655a7c02013-10-16 16:09:24 -070076};
77struct video_status {
Tao Baod7db5942015-01-28 10:07:51 -080078 int video_blank;
79 video_play_state_t play_state;
Tao Baod7db5942015-01-28 10:07:51 -080080 video_stream_source_t stream_source;
81 video_format_t video_format;
82 video_displayformat_t display_format;
Ben Cheng655a7c02013-10-16 16:09:24 -070083};
Ben Cheng655a7c02013-10-16 16:09:24 -070084struct video_still_picture {
Elliott Hughes0f0c18f2023-03-29 15:53:31 -070085 char * iFrame;
Tao Baod7db5942015-01-28 10:07:51 -080086 __s32 size;
Ben Cheng655a7c02013-10-16 16:09:24 -070087};
Ben Cheng655a7c02013-10-16 16:09:24 -070088typedef __u16 video_attributes_t;
89#define VIDEO_CAP_MPEG1 1
Ben Cheng655a7c02013-10-16 16:09:24 -070090#define VIDEO_CAP_MPEG2 2
91#define VIDEO_CAP_SYS 4
92#define VIDEO_CAP_PROG 8
93#define VIDEO_CAP_SPU 16
Ben Cheng655a7c02013-10-16 16:09:24 -070094#define VIDEO_CAP_NAVI 32
95#define VIDEO_CAP_CSS 64
96#define VIDEO_STOP _IO('o', 21)
97#define VIDEO_PLAY _IO('o', 22)
Ben Cheng655a7c02013-10-16 16:09:24 -070098#define VIDEO_FREEZE _IO('o', 23)
99#define VIDEO_CONTINUE _IO('o', 24)
100#define VIDEO_SELECT_SOURCE _IO('o', 25)
101#define VIDEO_SET_BLANK _IO('o', 26)
Ben Cheng655a7c02013-10-16 16:09:24 -0700102#define VIDEO_GET_STATUS _IOR('o', 27, struct video_status)
103#define VIDEO_GET_EVENT _IOR('o', 28, struct video_event)
104#define VIDEO_SET_DISPLAY_FORMAT _IO('o', 29)
105#define VIDEO_STILLPICTURE _IOW('o', 30, struct video_still_picture)
Ben Cheng655a7c02013-10-16 16:09:24 -0700106#define VIDEO_FAST_FORWARD _IO('o', 31)
107#define VIDEO_SLOWMOTION _IO('o', 32)
108#define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int)
109#define VIDEO_CLEAR_BUFFER _IO('o', 34)
Ben Cheng655a7c02013-10-16 16:09:24 -0700110#define VIDEO_SET_STREAMTYPE _IO('o', 36)
111#define VIDEO_SET_FORMAT _IO('o', 37)
Ben Cheng655a7c02013-10-16 16:09:24 -0700112#define VIDEO_GET_SIZE _IOR('o', 55, video_size_t)
Ben Cheng655a7c02013-10-16 16:09:24 -0700113#define VIDEO_GET_PTS _IOR('o', 57, __u64)
Ben Cheng655a7c02013-10-16 16:09:24 -0700114#define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64)
115#define VIDEO_COMMAND _IOWR('o', 59, struct video_command)
116#define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command)
117#endif