annotate libmpcodecs/vd.h @ 30088:4977e04f3a18

Add support for parsing audio streams (though should be easy to extend to video) via libavcodec. Parsing can be done at the demuxer stage (currently disabled) or at the decoder (ad_ffmpeg, enabled). Should allow using the libavcodec AAC, DTS, ... decoders independent of container format.
author reimar
date Sun, 27 Dec 2009 15:28:01 +0000
parents a72ddec9b027
children bbb6ebec87a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
1 #ifndef MPLAYER_VD_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
2 #define MPLAYER_VD_H
5323
a2bd4e930d59 common stuff moved to mpc_info.h
arpi
parents: 5003
diff changeset
3
7471
5e56ce70b551 wine headers cleanup
arpi
parents: 7220
diff changeset
4 #include "mp_image.h"
5323
a2bd4e930d59 common stuff moved to mpc_info.h
arpi
parents: 5003
diff changeset
5 #include "mpc_info.h"
26147
41652035483c Add necessary header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
6 #include "libmpdemux/stheader.h"
41652035483c Add necessary header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
7
5323
a2bd4e930d59 common stuff moved to mpc_info.h
arpi
parents: 5003
diff changeset
8 typedef mp_codec_info_t vd_info_t;
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
9
4988
db591864d642 comments fixed
arpi
parents: 4957
diff changeset
10 /* interface of video decoder drivers */
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
11 typedef struct vd_functions_s
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
12 {
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
13 vd_info_t *info;
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
14 int (*init)(sh_video_t *sh);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
15 void (*uninit)(sh_video_t *sh);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
16 int (*control)(sh_video_t *sh,int cmd,void* arg, ...);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
17 mp_image_t* (*decode)(sh_video_t *sh,void* data,int len,int flags);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
18 } vd_functions_t;
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
19
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
20 // NULL terminated array of all drivers
28826
a72ddec9b027 Add some "const" to mpcodecs_vd_drivers
reimar
parents: 26147
diff changeset
21 extern const vd_functions_t * const mpcodecs_vd_drivers[];
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
22
5483
d2fbd113008e global var for option -slices
arpi
parents: 5323
diff changeset
23 extern int vd_use_slices;
d2fbd113008e global var for option -slices
arpi
parents: 5323
diff changeset
24
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
25 #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
26 #define VDCTRL_QUERY_MAX_PP_LEVEL 4 /* test for postprocessing support (max level) */
4988
db591864d642 comments fixed
arpi
parents: 4957
diff changeset
27 #define VDCTRL_SET_PP_LEVEL 5 /* set postprocessing level */
5003
88481d4b9e0e divx_quality and equalizer support done
arpi
parents: 4988
diff changeset
28 #define VDCTRL_SET_EQUALIZER 6 /* set color options (brightness,contrast etc) */
6780
5bf3ed8a17c4 equalizer reworked
alex
parents: 6709
diff changeset
29 #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
30 #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
31 #define VDCTRL_QUERY_UNSEEN_FRAMES 9 /* current decoder lag */
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
32
4883
1602b4fed5a1 callbacks added
arpi
parents: 4878
diff changeset
33 // callbacks:
1602b4fed5a1 callbacks added
arpi
parents: 4878
diff changeset
34 int mpcodecs_config_vo(sh_video_t *sh, int w, int h, unsigned int preferred_outfmt);
1602b4fed5a1 callbacks added
arpi
parents: 4878
diff changeset
35 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
36 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
37
6708
8058078f1248 support for external pp by divx4. some fixes/cosmetics?
alex
parents: 5483
diff changeset
38 #define VDFLAGS_DROPFRAME 3
25553
6ac1ece1f9fe Add multiple inclusion guards to all header files that lack them.
diego
parents: 18917
diff changeset
39
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
40 #endif /* MPLAYER_VD_H */