Edit File by line
/home/barbar84/public_h.../wp-conte.../plugins/sujqvwi/ShExBy/shex_roo.../usr/include/linux/dvb
File: video.h
/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
[0] Fix | Delete
/*
[1] Fix | Delete
* video.h
[2] Fix | Delete
*
[3] Fix | Delete
* Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
[4] Fix | Delete
* & Ralph Metzler <ralph@convergence.de>
[5] Fix | Delete
* for convergence integrated media GmbH
[6] Fix | Delete
*
[7] Fix | Delete
* This program is free software; you can redistribute it and/or
[8] Fix | Delete
* modify it under the terms of the GNU Lesser General Public License
[9] Fix | Delete
* as published by the Free Software Foundation; either version 2.1
[10] Fix | Delete
* of the License, or (at your option) any later version.
[11] Fix | Delete
*
[12] Fix | Delete
* This program is distributed in the hope that it will be useful,
[13] Fix | Delete
* but WITHOUT ANY WARRANTY; without even the implied warranty of
[14] Fix | Delete
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[15] Fix | Delete
* GNU General Public License for more details.
[16] Fix | Delete
*
[17] Fix | Delete
* You should have received a copy of the GNU Lesser General Public License
[18] Fix | Delete
* along with this program; if not, write to the Free Software
[19] Fix | Delete
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
[20] Fix | Delete
*
[21] Fix | Delete
*/
[22] Fix | Delete
[23] Fix | Delete
#ifndef _DVBVIDEO_H_
[24] Fix | Delete
#define _DVBVIDEO_H_
[25] Fix | Delete
[26] Fix | Delete
#include <linux/types.h>
[27] Fix | Delete
#include <time.h>
[28] Fix | Delete
[29] Fix | Delete
typedef enum {
[30] Fix | Delete
VIDEO_FORMAT_4_3, /* Select 4:3 format */
[31] Fix | Delete
VIDEO_FORMAT_16_9, /* Select 16:9 format. */
[32] Fix | Delete
VIDEO_FORMAT_221_1 /* 2.21:1 */
[33] Fix | Delete
} video_format_t;
[34] Fix | Delete
[35] Fix | Delete
[36] Fix | Delete
typedef enum {
[37] Fix | Delete
VIDEO_SYSTEM_PAL,
[38] Fix | Delete
VIDEO_SYSTEM_NTSC,
[39] Fix | Delete
VIDEO_SYSTEM_PALN,
[40] Fix | Delete
VIDEO_SYSTEM_PALNc,
[41] Fix | Delete
VIDEO_SYSTEM_PALM,
[42] Fix | Delete
VIDEO_SYSTEM_NTSC60,
[43] Fix | Delete
VIDEO_SYSTEM_PAL60,
[44] Fix | Delete
VIDEO_SYSTEM_PALM60
[45] Fix | Delete
} video_system_t;
[46] Fix | Delete
[47] Fix | Delete
[48] Fix | Delete
typedef enum {
[49] Fix | Delete
VIDEO_PAN_SCAN, /* use pan and scan format */
[50] Fix | Delete
VIDEO_LETTER_BOX, /* use letterbox format */
[51] Fix | Delete
VIDEO_CENTER_CUT_OUT /* use center cut out format */
[52] Fix | Delete
} video_displayformat_t;
[53] Fix | Delete
[54] Fix | Delete
typedef struct {
[55] Fix | Delete
int w;
[56] Fix | Delete
int h;
[57] Fix | Delete
video_format_t aspect_ratio;
[58] Fix | Delete
} video_size_t;
[59] Fix | Delete
[60] Fix | Delete
typedef enum {
[61] Fix | Delete
VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */
[62] Fix | Delete
VIDEO_SOURCE_MEMORY /* If this source is selected, the stream
[63] Fix | Delete
comes from the user through the write
[64] Fix | Delete
system call */
[65] Fix | Delete
} video_stream_source_t;
[66] Fix | Delete
[67] Fix | Delete
[68] Fix | Delete
typedef enum {
[69] Fix | Delete
VIDEO_STOPPED, /* Video is stopped */
[70] Fix | Delete
VIDEO_PLAYING, /* Video is currently playing */
[71] Fix | Delete
VIDEO_FREEZED /* Video is freezed */
[72] Fix | Delete
} video_play_state_t;
[73] Fix | Delete
[74] Fix | Delete
[75] Fix | Delete
/* Decoder commands */
[76] Fix | Delete
#define VIDEO_CMD_PLAY (0)
[77] Fix | Delete
#define VIDEO_CMD_STOP (1)
[78] Fix | Delete
#define VIDEO_CMD_FREEZE (2)
[79] Fix | Delete
#define VIDEO_CMD_CONTINUE (3)
[80] Fix | Delete
[81] Fix | Delete
/* Flags for VIDEO_CMD_FREEZE */
[82] Fix | Delete
#define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0)
[83] Fix | Delete
[84] Fix | Delete
/* Flags for VIDEO_CMD_STOP */
[85] Fix | Delete
#define VIDEO_CMD_STOP_TO_BLACK (1 << 0)
[86] Fix | Delete
#define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1)
[87] Fix | Delete
[88] Fix | Delete
/* Play input formats: */
[89] Fix | Delete
/* The decoder has no special format requirements */
[90] Fix | Delete
#define VIDEO_PLAY_FMT_NONE (0)
[91] Fix | Delete
/* The decoder requires full GOPs */
[92] Fix | Delete
#define VIDEO_PLAY_FMT_GOP (1)
[93] Fix | Delete
[94] Fix | Delete
/* The structure must be zeroed before use by the application
[95] Fix | Delete
This ensures it can be extended safely in the future. */
[96] Fix | Delete
struct video_command {
[97] Fix | Delete
__u32 cmd;
[98] Fix | Delete
__u32 flags;
[99] Fix | Delete
union {
[100] Fix | Delete
struct {
[101] Fix | Delete
__u64 pts;
[102] Fix | Delete
} stop;
[103] Fix | Delete
[104] Fix | Delete
struct {
[105] Fix | Delete
/* 0 or 1000 specifies normal speed,
[106] Fix | Delete
1 specifies forward single stepping,
[107] Fix | Delete
-1 specifies backward single stepping,
[108] Fix | Delete
>1: playback at speed/1000 of the normal speed,
[109] Fix | Delete
<-1: reverse playback at (-speed/1000) of the normal speed. */
[110] Fix | Delete
__s32 speed;
[111] Fix | Delete
__u32 format;
[112] Fix | Delete
} play;
[113] Fix | Delete
[114] Fix | Delete
struct {
[115] Fix | Delete
__u32 data[16];
[116] Fix | Delete
} raw;
[117] Fix | Delete
};
[118] Fix | Delete
};
[119] Fix | Delete
[120] Fix | Delete
/* FIELD_UNKNOWN can be used if the hardware does not know whether
[121] Fix | Delete
the Vsync is for an odd, even or progressive (i.e. non-interlaced)
[122] Fix | Delete
field. */
[123] Fix | Delete
#define VIDEO_VSYNC_FIELD_UNKNOWN (0)
[124] Fix | Delete
#define VIDEO_VSYNC_FIELD_ODD (1)
[125] Fix | Delete
#define VIDEO_VSYNC_FIELD_EVEN (2)
[126] Fix | Delete
#define VIDEO_VSYNC_FIELD_PROGRESSIVE (3)
[127] Fix | Delete
[128] Fix | Delete
struct video_event {
[129] Fix | Delete
__s32 type;
[130] Fix | Delete
#define VIDEO_EVENT_SIZE_CHANGED 1
[131] Fix | Delete
#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
[132] Fix | Delete
#define VIDEO_EVENT_DECODER_STOPPED 3
[133] Fix | Delete
#define VIDEO_EVENT_VSYNC 4
[134] Fix | Delete
/* unused, make sure to use atomic time for y2038 if it ever gets used */
[135] Fix | Delete
long timestamp;
[136] Fix | Delete
union {
[137] Fix | Delete
video_size_t size;
[138] Fix | Delete
unsigned int frame_rate; /* in frames per 1000sec */
[139] Fix | Delete
unsigned char vsync_field; /* unknown/odd/even/progressive */
[140] Fix | Delete
} u;
[141] Fix | Delete
};
[142] Fix | Delete
[143] Fix | Delete
[144] Fix | Delete
struct video_status {
[145] Fix | Delete
int video_blank; /* blank video on freeze? */
[146] Fix | Delete
video_play_state_t play_state; /* current state of playback */
[147] Fix | Delete
video_stream_source_t stream_source; /* current source (demux/memory) */
[148] Fix | Delete
video_format_t video_format; /* current aspect ratio of stream*/
[149] Fix | Delete
video_displayformat_t display_format;/* selected cropping mode */
[150] Fix | Delete
};
[151] Fix | Delete
[152] Fix | Delete
[153] Fix | Delete
struct video_still_picture {
[154] Fix | Delete
char *iFrame; /* pointer to a single iframe in memory */
[155] Fix | Delete
__s32 size;
[156] Fix | Delete
};
[157] Fix | Delete
[158] Fix | Delete
[159] Fix | Delete
typedef
[160] Fix | Delete
struct video_highlight {
[161] Fix | Delete
int active; /* 1=show highlight, 0=hide highlight */
[162] Fix | Delete
__u8 contrast1; /* 7- 4 Pattern pixel contrast */
[163] Fix | Delete
/* 3- 0 Background pixel contrast */
[164] Fix | Delete
__u8 contrast2; /* 7- 4 Emphasis pixel-2 contrast */
[165] Fix | Delete
/* 3- 0 Emphasis pixel-1 contrast */
[166] Fix | Delete
__u8 color1; /* 7- 4 Pattern pixel color */
[167] Fix | Delete
/* 3- 0 Background pixel color */
[168] Fix | Delete
__u8 color2; /* 7- 4 Emphasis pixel-2 color */
[169] Fix | Delete
/* 3- 0 Emphasis pixel-1 color */
[170] Fix | Delete
__u32 ypos; /* 23-22 auto action mode */
[171] Fix | Delete
/* 21-12 start y */
[172] Fix | Delete
/* 9- 0 end y */
[173] Fix | Delete
__u32 xpos; /* 23-22 button color number */
[174] Fix | Delete
/* 21-12 start x */
[175] Fix | Delete
/* 9- 0 end x */
[176] Fix | Delete
} video_highlight_t;
[177] Fix | Delete
[178] Fix | Delete
[179] Fix | Delete
typedef struct video_spu {
[180] Fix | Delete
int active;
[181] Fix | Delete
int stream_id;
[182] Fix | Delete
} video_spu_t;
[183] Fix | Delete
[184] Fix | Delete
[185] Fix | Delete
typedef struct video_spu_palette { /* SPU Palette information */
[186] Fix | Delete
int length;
[187] Fix | Delete
__u8 *palette;
[188] Fix | Delete
} video_spu_palette_t;
[189] Fix | Delete
[190] Fix | Delete
[191] Fix | Delete
typedef struct video_navi_pack {
[192] Fix | Delete
int length; /* 0 ... 1024 */
[193] Fix | Delete
__u8 data[1024];
[194] Fix | Delete
} video_navi_pack_t;
[195] Fix | Delete
[196] Fix | Delete
[197] Fix | Delete
typedef __u16 video_attributes_t;
[198] Fix | Delete
/* bits: descr. */
[199] Fix | Delete
/* 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */
[200] Fix | Delete
/* 13-12 TV system (0=525/60, 1=625/50) */
[201] Fix | Delete
/* 11-10 Aspect ratio (0=4:3, 3=16:9) */
[202] Fix | Delete
/* 9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca */
[203] Fix | Delete
/* 7 line 21-1 data present in GOP (1=yes, 0=no) */
[204] Fix | Delete
/* 6 line 21-2 data present in GOP (1=yes, 0=no) */
[205] Fix | Delete
/* 5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 */
[206] Fix | Delete
/* 2 source letterboxed (1=yes, 0=no) */
[207] Fix | Delete
/* 0 film/camera mode (0=
[208] Fix | Delete
*camera, 1=film (625/50 only)) */
[209] Fix | Delete
[210] Fix | Delete
[211] Fix | Delete
/* bit definitions for capabilities: */
[212] Fix | Delete
/* can the hardware decode MPEG1 and/or MPEG2? */
[213] Fix | Delete
#define VIDEO_CAP_MPEG1 1
[214] Fix | Delete
#define VIDEO_CAP_MPEG2 2
[215] Fix | Delete
/* can you send a system and/or program stream to video device?
[216] Fix | Delete
(you still have to open the video and the audio device but only
[217] Fix | Delete
send the stream to the video device) */
[218] Fix | Delete
#define VIDEO_CAP_SYS 4
[219] Fix | Delete
#define VIDEO_CAP_PROG 8
[220] Fix | Delete
/* can the driver also handle SPU, NAVI and CSS encoded data?
[221] Fix | Delete
(CSS API is not present yet) */
[222] Fix | Delete
#define VIDEO_CAP_SPU 16
[223] Fix | Delete
#define VIDEO_CAP_NAVI 32
[224] Fix | Delete
#define VIDEO_CAP_CSS 64
[225] Fix | Delete
[226] Fix | Delete
[227] Fix | Delete
#define VIDEO_STOP _IO('o', 21)
[228] Fix | Delete
#define VIDEO_PLAY _IO('o', 22)
[229] Fix | Delete
#define VIDEO_FREEZE _IO('o', 23)
[230] Fix | Delete
#define VIDEO_CONTINUE _IO('o', 24)
[231] Fix | Delete
#define VIDEO_SELECT_SOURCE _IO('o', 25)
[232] Fix | Delete
#define VIDEO_SET_BLANK _IO('o', 26)
[233] Fix | Delete
#define VIDEO_GET_STATUS _IOR('o', 27, struct video_status)
[234] Fix | Delete
#define VIDEO_GET_EVENT _IOR('o', 28, struct video_event)
[235] Fix | Delete
#define VIDEO_SET_DISPLAY_FORMAT _IO('o', 29)
[236] Fix | Delete
#define VIDEO_STILLPICTURE _IOW('o', 30, struct video_still_picture)
[237] Fix | Delete
#define VIDEO_FAST_FORWARD _IO('o', 31)
[238] Fix | Delete
#define VIDEO_SLOWMOTION _IO('o', 32)
[239] Fix | Delete
#define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int)
[240] Fix | Delete
#define VIDEO_CLEAR_BUFFER _IO('o', 34)
[241] Fix | Delete
#define VIDEO_SET_ID _IO('o', 35)
[242] Fix | Delete
#define VIDEO_SET_STREAMTYPE _IO('o', 36)
[243] Fix | Delete
#define VIDEO_SET_FORMAT _IO('o', 37)
[244] Fix | Delete
#define VIDEO_SET_SYSTEM _IO('o', 38)
[245] Fix | Delete
#define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t)
[246] Fix | Delete
#define VIDEO_SET_SPU _IOW('o', 50, video_spu_t)
[247] Fix | Delete
#define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t)
[248] Fix | Delete
#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t)
[249] Fix | Delete
#define VIDEO_SET_ATTRIBUTES _IO('o', 53)
[250] Fix | Delete
#define VIDEO_GET_SIZE _IOR('o', 55, video_size_t)
[251] Fix | Delete
#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int)
[252] Fix | Delete
[253] Fix | Delete
/**
[254] Fix | Delete
* VIDEO_GET_PTS
[255] Fix | Delete
*
[256] Fix | Delete
* Read the 33 bit presentation time stamp as defined
[257] Fix | Delete
* in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
[258] Fix | Delete
*
[259] Fix | Delete
* The PTS should belong to the currently played
[260] Fix | Delete
* frame if possible, but may also be a value close to it
[261] Fix | Delete
* like the PTS of the last decoded frame or the last PTS
[262] Fix | Delete
* extracted by the PES parser.
[263] Fix | Delete
*/
[264] Fix | Delete
#define VIDEO_GET_PTS _IOR('o', 57, __u64)
[265] Fix | Delete
[266] Fix | Delete
/* Read the number of displayed frames since the decoder was started */
[267] Fix | Delete
#define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64)
[268] Fix | Delete
[269] Fix | Delete
#define VIDEO_COMMAND _IOWR('o', 59, struct video_command)
[270] Fix | Delete
#define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command)
[271] Fix | Delete
[272] Fix | Delete
#endif /* _DVBVIDEO_H_ */
[273] Fix | Delete
[274] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function