annotate libmpcodecs/vd.h @ 32972:fbaae7fe1a13

Fix several issues with Translate(). 1. The "Unsafe!" comment has been removed, because the strings passed to the function are strcpy'd. 2. The needless memsets (one of which with wrong size) have been removed in favor of a sufficiently simple initialization of trbuf. 3. The array indices are unsigned now, and the manual optimization of having strlen() outside the for loop has been removed in favor of optimization performed by the compiler. 4. There is a check now to prevent an out-of-bounds array access.
author ib
date Tue, 08 Mar 2011 20:56:51 +0000
parents 6e8f3cbab5f4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30421
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
1 /*
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
2 * This file is part of MPlayer.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
3 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
5 * it under the terms of the GNU General Public License as published by
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
7 * (at your option) any later version.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
8 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
12 * GNU General Public License for more details.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
13 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
14 * You should have received a copy of the GNU General Public License along
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
17 */
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 28826
diff changeset
18
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
19 #ifndef MPLAYER_VD_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
20 #define MPLAYER_VD_H
5323
a2bd4e930d59 common stuff moved to mpc_info.h
arpi
parents: 5003
diff changeset
21
31457
6e8f3cbab5f4 Move video decoder option array extern declarations to vd.h.
diego
parents: 31172
diff changeset
22 #include "m_option.h"
7471
5e56ce70b551 wine headers cleanup
arpi
parents: 7220
diff changeset
23 #include "mp_image.h"
5323
a2bd4e930d59 common stuff moved to mpc_info.h
arpi
parents: 5003
diff changeset
24 #include "mpc_info.h"
26147
41652035483c Add necessary header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
25 #include "libmpdemux/stheader.h"
41652035483c Add necessary header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
26
5323
a2bd4e930d59 common stuff moved to mpc_info.h
arpi
parents: 5003
diff changeset
27 typedef mp_codec_info_t vd_info_t;
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
28
4988
db591864d642 comments fixed
arpi
parents: 4957
diff changeset
29 /* interface of video decoder drivers */
31172
85219fe5960c cosmetics: Drop _s suffix from 'struct vd_functions'.
diego
parents: 30653
diff changeset
30 typedef struct vd_functions
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
31 {
30517
290e478b07cd Make vd_info_t const for pointer in vd_functions, avoids some warnings about
reimar
parents: 30421
diff changeset
32 const vd_info_t *info;
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
33 int (*init)(sh_video_t *sh);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
34 void (*uninit)(sh_video_t *sh);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
35 int (*control)(sh_video_t *sh,int cmd,void* arg, ...);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
36 mp_image_t* (*decode)(sh_video_t *sh,void* data,int len,int flags);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
37 } vd_functions_t;
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
38
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
39 // NULL terminated array of all drivers
28826
a72ddec9b027 Add some "const" to mpcodecs_vd_drivers
reimar
parents: 26147
diff changeset
40 extern const vd_functions_t * const mpcodecs_vd_drivers[];
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
41
30653
3d23e24c5c60 Declare externally used variables from vd.c as extern in vd.h.
diego
parents: 30537
diff changeset
42 extern int flip;
3d23e24c5c60 Declare externally used variables from vd.c as extern in vd.h.
diego
parents: 30537
diff changeset
43 extern int fullscreen;
3d23e24c5c60 Declare externally used variables from vd.c as extern in vd.h.
diego
parents: 30537
diff changeset
44 extern int opt_screen_size_x;
3d23e24c5c60 Declare externally used variables from vd.c as extern in vd.h.
diego
parents: 30537
diff changeset
45 extern int opt_screen_size_y;
3d23e24c5c60 Declare externally used variables from vd.c as extern in vd.h.
diego
parents: 30537
diff changeset
46 extern int softzoom;
5483
d2fbd113008e global var for option -slices
arpi
parents: 5323
diff changeset
47 extern int vd_use_slices;
30653
3d23e24c5c60 Declare externally used variables from vd.c as extern in vd.h.
diego
parents: 30537
diff changeset
48 extern int vidmode;
30537
7bebe34b6ad2 Move movie_aspect extern declaration to libmpcodecs/vd.h.
diego
parents: 30517
diff changeset
49 extern float movie_aspect;
30653
3d23e24c5c60 Declare externally used variables from vd.c as extern in vd.h.
diego
parents: 30537
diff changeset
50 extern float screen_size_xy;
5483
d2fbd113008e global var for option -slices
arpi
parents: 5323
diff changeset
51
31457
6e8f3cbab5f4 Move video decoder option array extern declarations to vd.h.
diego
parents: 31172
diff changeset
52 extern const m_option_t lavc_decode_opts_conf[];
6e8f3cbab5f4 Move video decoder option array extern declarations to vd.h.
diego
parents: 31172
diff changeset
53 extern const m_option_t xvid_dec_opts[];
6e8f3cbab5f4 Move video decoder option array extern declarations to vd.h.
diego
parents: 31172
diff changeset
54
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
55 #define VDCTRL_QUERY_FORMAT 3 /* test for availabilty of a format */
4957
2826b2e5cbd3 new controls added for query/set pp level
arpi
parents: 4883
diff changeset
56 #define VDCTRL_QUERY_MAX_PP_LEVEL 4 /* test for postprocessing support (max level) */
4988
db591864d642 comments fixed
arpi
parents: 4957
diff changeset
57 #define VDCTRL_SET_PP_LEVEL 5 /* set postprocessing level */
5003
88481d4b9e0e divx_quality and equalizer support done
arpi
parents: 4988
diff changeset
58 #define VDCTRL_SET_EQUALIZER 6 /* set color options (brightness,contrast etc) */
6780
5bf3ed8a17c4 equalizer reworked
alex
parents: 6709
diff changeset
59 #define VDCTRL_GET_EQUALIZER 7 /* get color options (brightness,contrast etc) */
11977
efb37725d616 flushing stuff after seeking (finally we can view MPEG without thouse blocks after seeking with -vc ffmpeg12)
michael
parents: 7471
diff changeset
60 #define VDCTRL_RESYNC_STREAM 8 /* seeking */
18917
d9a75b26da6c Add a new video pts tracking mode, enabled by option -correct-pts.
uau
parents: 11977
diff changeset
61 #define VDCTRL_QUERY_UNSEEN_FRAMES 9 /* current decoder lag */
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
62
4883
1602b4fed5a1 callbacks added
arpi
parents: 4878
diff changeset
63 // callbacks:
1602b4fed5a1 callbacks added
arpi
parents: 4878
diff changeset
64 int mpcodecs_config_vo(sh_video_t *sh, int w, int h, unsigned int preferred_outfmt);
1602b4fed5a1 callbacks added
arpi
parents: 4878
diff changeset
65 mp_image_t* mpcodecs_get_image(sh_video_t *sh, int mp_imgtype, int mp_imgflag, int w, int h);
7220
e3ecccc7e505 warning fixes by Dominik Mierzejewski <dominik@rangers.eu.org>
arpi
parents: 6780
diff changeset
66 void mpcodecs_draw_slice(sh_video_t *sh, unsigned char** src, int* stride, int w,int h, int x, int y);
4883
1602b4fed5a1 callbacks added
arpi
parents: 4878
diff changeset
67
6708
8058078f1248 support for external pp by divx4. some fixes/cosmetics?
alex
parents: 5483
diff changeset
68 #define VDFLAGS_DROPFRAME 3
25553
6ac1ece1f9fe Add multiple inclusion guards to all header files that lack them.
diego
parents: 18917
diff changeset
69
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
70 #endif /* MPLAYER_VD_H */