annotate libvo/videodev_mjpeg.h @ 34175:a345e7162d0a

Move TranslateFilename() to util/string.c. Now that the Win32 GUI uses symbolic constants for its messages, the code of TranslateFilename() both GUIs use is almost identical. So, share the code.
author ib
date Wed, 26 Oct 2011 15:14:06 +0000
parents 0f1b5b68af32
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28446
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
1 /*
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
2 * MJPEG API extensions for the Video4Linux API, first introduced by the
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
3 * Iomega Buz driver by Rainer Johanni <rainer@johanni.de>.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
4 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
5 * This file is part of MPlayer.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
6 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
7 * MPlayer is free software; you can redistribute it and/or modify
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
8 * it under the terms of the GNU General Public License as published by
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
10 * (at your option) any later version.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
11 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
12 * MPlayer is distributed in the hope that it will be useful,
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
15 * GNU General Public License for more details.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
16 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
17 * You should have received a copy of the GNU General Public License along
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
18 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 26162
diff changeset
20 */
4669
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
21
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
22 #ifndef MPLAYER_VIDEODEV_MJPEG_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
23 #define MPLAYER_VIDEODEV_MJPEG_H
25553
6ac1ece1f9fe Add multiple inclusion guards to all header files that lack them.
diego
parents: 4669
diff changeset
24
26162
0585db9f5b32 Add missing header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
25 #include <stdlib.h>
0585db9f5b32 Add missing header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
26
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28446
diff changeset
27 /* This is identical with the mgavideo internal params struct,
4669
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
28 please tell me if you change this struct here ! <gz@lysator.liu.se) */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
29 struct mjpeg_params
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
30 {
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
31
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
32 /* The following parameters can only be queried */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
33
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
34 int major_version; /* Major version number of driver */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
35 int minor_version; /* Minor version number of driver */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
36
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
37 /* Main control parameters */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
38
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
39 int input; /* Input channel: 0 = Composite, 1 = S-VHS */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
40 int norm; /* Norm: VIDEO_MODE_PAL or VIDEO_MODE_NTSC */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
41 int decimation; /* decimation of captured video,
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
42 enlargement of video played back.
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
43 Valid values are 1, 2, 4 or 0.
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
44 0 is a special value where the user
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
45 has full control over video scaling */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
46
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
47 /* The following parameters only have to be set if decimation==0,
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
48 for other values of decimation they provide the data how the image is captured */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
49
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
50 int HorDcm; /* Horizontal decimation: 1, 2 or 4 */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
51 int VerDcm; /* Vertical decimation: 1 or 2 */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
52 int TmpDcm; /* Temporal decimation: 1 or 2,
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
53 if TmpDcm==2 in capture every second frame is dropped,
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
54 in playback every frame is played twice */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
55 int field_per_buff; /* Number of fields per buffer: 1 or 2 */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
56 int img_x; /* start of image in x direction */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
57 int img_y; /* start of image in y direction */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
58 int img_width; /* image width BEFORE decimation,
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
59 must be a multiple of HorDcm*16 */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
60 int img_height; /* image height BEFORE decimation,
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
61 must be a multiple of VerDcm*8 */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
62
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
63 /* --- End of parameters for decimation==0 only --- */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
64
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
65 /* JPEG control parameters */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
66
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
67 int quality; /* Measure for quality of compressed images.
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
68 Scales linearly with the size of the compressed images.
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
69 Must be beetween 0 and 100, 100 is a compression
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
70 ratio of 1:4 */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
71
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
72 int odd_even; /* Which field should come first ???
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
73 This is more aptly named "top_first",
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
74 i.e. (odd_even==1) --> top-field-first */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
75
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
76 int APPn; /* Number of APP segment to be written, must be 0..15 */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
77 int APP_len; /* Length of data in JPEG APPn segment */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
78 char APP_data[60]; /* Data in the JPEG APPn segment. */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
79
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
80 int COM_len; /* Length of data in JPEG COM segment */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
81 char COM_data[60]; /* Data in JPEG COM segment */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
82
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
83 unsigned long jpeg_markers; /* Which markers should go into the JPEG output.
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
84 Unless you exactly know what you do, leave them untouched.
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
85 Inluding less markers will make the resulting code
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
86 smaller, but there will be fewer aplications
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
87 which can read it.
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
88 The presence of the APP and COM marker is
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
89 influenced by APP0_len and COM_len ONLY! */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
90 #define JPEG_MARKER_DHT (1<<3) /* Define Huffman Tables */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
91 #define JPEG_MARKER_DQT (1<<4) /* Define Quantization Tables */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
92 #define JPEG_MARKER_DRI (1<<5) /* Define Restart Interval */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
93 #define JPEG_MARKER_COM (1<<6) /* Comment segment */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
94 #define JPEG_MARKER_APP (1<<7) /* App segment, driver will allways use APP0 */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
95
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
96 int VFIFO_FB; /* Flag for enabling Video Fifo Feedback.
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
97 If this flag is turned on and JPEG decompressing
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
98 is going to the screen, the decompress process
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
99 is stopped every time the Video Fifo is full.
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
100 This enables a smooth decompress to the screen
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
101 but the video output signal will get scrambled */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
102
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
103 /* Misc */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
104
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
105 char reserved[312]; /* Makes 512 bytes for this structure */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
106 };
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
107
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
108 struct mjpeg_requestbuffers
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
109 {
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
110 unsigned long count; /* Number of buffers for MJPEG grabbing */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
111 unsigned long size; /* Size PER BUFFER in bytes */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
112 };
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
113
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
114 struct mjpeg_sync
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
115 {
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
116 unsigned long frame; /* Frame (0 - n) for double buffer */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
117 unsigned long length; /* number of code bytes in buffer (capture only) */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
118 unsigned long seq; /* frame sequence number */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
119 struct timeval timestamp; /* timestamp */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
120 };
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
121
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
122 struct mjpeg_status
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
123 {
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
124 int input; /* Input channel, has to be set prior to BUZIOC_G_STATUS */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
125 int signal; /* Returned: 1 if valid video signal detected */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
126 int norm; /* Returned: VIDEO_MODE_PAL or VIDEO_MODE_NTSC */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
127 int color; /* Returned: 1 if color signal detected */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
128 };
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
129
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
130 /*
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
131 Private IOCTL to set up for displaying MJPEG
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
132 */
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
133 #define MJPIOC_G_PARAMS _IOR ('v', BASE_VIDIOCPRIVATE+0, struct mjpeg_params)
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
134 #define MJPIOC_S_PARAMS _IOWR('v', BASE_VIDIOCPRIVATE+1, struct mjpeg_params)
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
135 #define MJPIOC_REQBUFS _IOWR('v', BASE_VIDIOCPRIVATE+2, struct mjpeg_requestbuffers)
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
136 #define MJPIOC_QBUF_CAPT _IOW ('v', BASE_VIDIOCPRIVATE+3, int)
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
137 #define MJPIOC_QBUF_PLAY _IOW ('v', BASE_VIDIOCPRIVATE+4, int)
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
138 #define MJPIOC_SYNC _IOR ('v', BASE_VIDIOCPRIVATE+5, struct mjpeg_sync)
176046e35fb2 this file obsoletes zoran.h and contains the Recommended interface definition for zr devices
rik
parents:
diff changeset
139 #define MJPIOC_G_STATUS _IOWR('v', BASE_VIDIOCPRIVATE+6, struct mjpeg_status)
25553
6ac1ece1f9fe Add multiple inclusion guards to all header files that lack them.
diego
parents: 4669
diff changeset
140
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
141 #endif /* MPLAYER_VIDEODEV_MJPEG_H */