annotate vidix/vidixlib.h @ 15533:ddf15d233d58

Do not switch to audio tracks whose codec private data differs from the main audio track's as this will most likely result in messed up audio output. Patch by Michael Behrisch <list () behrisch ! de>
author mosu
date Sat, 21 May 2005 06:50:08 +0000
parents 62a6135d090e
children 77def5093daf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
1 /*
dcc632dd2097 preliminary version
nick
parents:
diff changeset
2 * vidixlib.h
dcc632dd2097 preliminary version
nick
parents:
diff changeset
3 * VIDIXLib - Library for VIDeo Interface for *niX
dcc632dd2097 preliminary version
nick
parents:
diff changeset
4 * This interface is introduced as universal one to MPEG decoder,
dcc632dd2097 preliminary version
nick
parents:
diff changeset
5 * BES == Back End Scaler and YUV2RGB hw accelerators.
dcc632dd2097 preliminary version
nick
parents:
diff changeset
6 * In the future it may be expanded up to capturing and audio things.
dcc632dd2097 preliminary version
nick
parents:
diff changeset
7 * Main goal of this this interface imlpementation is providing DGA
dcc632dd2097 preliminary version
nick
parents:
diff changeset
8 * everywhere where it's possible (unlike X11 and other).
dcc632dd2097 preliminary version
nick
parents:
diff changeset
9 * Copyright 2002 Nick Kurshev
dcc632dd2097 preliminary version
nick
parents:
diff changeset
10 * Licence: GPL
dcc632dd2097 preliminary version
nick
parents:
diff changeset
11 * This interface is based on v4l2, fbvid.h, mga_vid.h projects
dcc632dd2097 preliminary version
nick
parents:
diff changeset
12 * and personally my ideas.
dcc632dd2097 preliminary version
nick
parents:
diff changeset
13 * NOTE: This interface is introduces as APP interface.
dcc632dd2097 preliminary version
nick
parents:
diff changeset
14 * Don't use it for driver.
dcc632dd2097 preliminary version
nick
parents:
diff changeset
15 * It provides multistreaming. This mean that APP can handle
dcc632dd2097 preliminary version
nick
parents:
diff changeset
16 * several streams simultaneously. (Example: Video capturing and video
dcc632dd2097 preliminary version
nick
parents:
diff changeset
17 * playback or capturing, video playback, audio encoding and so on).
dcc632dd2097 preliminary version
nick
parents:
diff changeset
18 */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
19 #ifndef VIDIXLIB_H
dcc632dd2097 preliminary version
nick
parents:
diff changeset
20 #define VIDIXLIB_H
dcc632dd2097 preliminary version
nick
parents:
diff changeset
21
dcc632dd2097 preliminary version
nick
parents:
diff changeset
22 #ifdef __cplusplus
dcc632dd2097 preliminary version
nick
parents:
diff changeset
23 extern "C" {
dcc632dd2097 preliminary version
nick
parents:
diff changeset
24 #endif
dcc632dd2097 preliminary version
nick
parents:
diff changeset
25
dcc632dd2097 preliminary version
nick
parents:
diff changeset
26 #include "vidix.h"
dcc632dd2097 preliminary version
nick
parents:
diff changeset
27
dcc632dd2097 preliminary version
nick
parents:
diff changeset
28 typedef void * VDL_HANDLE;
dcc632dd2097 preliminary version
nick
parents:
diff changeset
29
dcc632dd2097 preliminary version
nick
parents:
diff changeset
30 /* returns library version */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
31 extern unsigned vdlGetVersion( void );
dcc632dd2097 preliminary version
nick
parents:
diff changeset
32
dcc632dd2097 preliminary version
nick
parents:
diff changeset
33 /* Opens corresponded video driver and returns handle
dcc632dd2097 preliminary version
nick
parents:
diff changeset
34 of associated stream.
dcc632dd2097 preliminary version
nick
parents:
diff changeset
35 path - specifies path where drivers are located.
dcc632dd2097 preliminary version
nick
parents:
diff changeset
36 name - specifies prefered driver name (can be NULL).
dcc632dd2097 preliminary version
nick
parents:
diff changeset
37 cap - specifies driver capability (TYPE_* constants).
3995
0d9de811e312 minor interface changing
nick
parents: 3991
diff changeset
38 verbose - specifies verbose level
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
39 returns !0 if ok else NULL.
dcc632dd2097 preliminary version
nick
parents:
diff changeset
40 */
3995
0d9de811e312 minor interface changing
nick
parents: 3991
diff changeset
41 extern VDL_HANDLE vdlOpen(const char *path,const char *name,unsigned cap,int verbose);
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
42 /* Closes stream and corresponded driver. */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
43 extern void vdlClose(VDL_HANDLE stream);
dcc632dd2097 preliminary version
nick
parents:
diff changeset
44
dcc632dd2097 preliminary version
nick
parents:
diff changeset
45 /* Queries driver capabilities. Return 0 if ok else errno */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
46 extern int vdlGetCapability(VDL_HANDLE, vidix_capability_t *);
dcc632dd2097 preliminary version
nick
parents:
diff changeset
47
dcc632dd2097 preliminary version
nick
parents:
diff changeset
48 /* Queries support for given fourcc. Returns 0 if ok else errno */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
49 extern int vdlQueryFourcc(VDL_HANDLE,vidix_fourcc_t *);
dcc632dd2097 preliminary version
nick
parents:
diff changeset
50
dcc632dd2097 preliminary version
nick
parents:
diff changeset
51 /* Returns 0 if ok else errno */
3995
0d9de811e312 minor interface changing
nick
parents: 3991
diff changeset
52 extern int vdlConfigPlayback(VDL_HANDLE, vidix_playback_t *);
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
53
dcc632dd2097 preliminary version
nick
parents:
diff changeset
54 /* Returns 0 if ok else errno */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
55 extern int vdlPlaybackOn(VDL_HANDLE);
dcc632dd2097 preliminary version
nick
parents:
diff changeset
56
dcc632dd2097 preliminary version
nick
parents:
diff changeset
57 /* Returns 0 if ok else errno */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
58 extern int vdlPlaybackOff(VDL_HANDLE);
dcc632dd2097 preliminary version
nick
parents:
diff changeset
59
dcc632dd2097 preliminary version
nick
parents:
diff changeset
60 /* Returns 0 if ok else errno */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
61 extern int vdlPlaybackFrameSelect(VDL_HANDLE, unsigned frame_idx );
dcc632dd2097 preliminary version
nick
parents:
diff changeset
62
dcc632dd2097 preliminary version
nick
parents:
diff changeset
63 /* Returns 0 if ok else errno */
4070
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 3995
diff changeset
64 extern int vdlGetGrKeys(VDL_HANDLE, vidix_grkey_t * );
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 3995
diff changeset
65
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 3995
diff changeset
66 /* Returns 0 if ok else errno */
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 3995
diff changeset
67 extern int vdlSetGrKeys(VDL_HANDLE, const vidix_grkey_t * );
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 3995
diff changeset
68
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 3995
diff changeset
69 /* Returns 0 if ok else errno */
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
70 extern int vdlPlaybackGetEq(VDL_HANDLE, vidix_video_eq_t * );
dcc632dd2097 preliminary version
nick
parents:
diff changeset
71
dcc632dd2097 preliminary version
nick
parents:
diff changeset
72 /* Returns 0 if ok else errno */
dcc632dd2097 preliminary version
nick
parents:
diff changeset
73 extern int vdlPlaybackSetEq(VDL_HANDLE, const vidix_video_eq_t * );
dcc632dd2097 preliminary version
nick
parents:
diff changeset
74
dcc632dd2097 preliminary version
nick
parents:
diff changeset
75 /* Returns 0 if ok else errno */
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
76 extern int vdlPlaybackGetDeint(VDL_HANDLE, vidix_deinterlace_t * );
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
77
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
78 /* Returns 0 if ok else errno */
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
79 extern int vdlPlaybackSetDeint(VDL_HANDLE, const vidix_deinterlace_t * );
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
80
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
81 /* Returns 0 if ok else errno */
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
82 extern int vdlQueryNumOemEffects(VDL_HANDLE, unsigned * number );
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
83
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
84 /* Returns 0 if ok else errno */
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
85 extern int vdlGetOemEffect(VDL_HANDLE, vidix_oem_fx_t * );
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
86
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
87 /* Returns 0 if ok else errno */
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
88 extern int vdlSetOemEffect(VDL_HANDLE, const vidix_oem_fx_t * );
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
89
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
90
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
91 /* Returns 0 if ok else errno */
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
92 extern int vdlPlaybackCopyFrame(VDL_HANDLE, const vidix_dma_t * );
dcc632dd2097 preliminary version
nick
parents:
diff changeset
93
dcc632dd2097 preliminary version
nick
parents:
diff changeset
94 #ifdef __cplusplus
dcc632dd2097 preliminary version
nick
parents:
diff changeset
95 }
dcc632dd2097 preliminary version
nick
parents:
diff changeset
96 #endif
dcc632dd2097 preliminary version
nick
parents:
diff changeset
97
dcc632dd2097 preliminary version
nick
parents:
diff changeset
98 #endif