annotate libmpcodecs/vd.h @ 22616:09dc129234a0

Matroska seeking fixes If a relative seek forward went past the last index position the Matroska demuxer did not seek to any index position. It did however set the mkv_d->skip_to_timecode variable which meant that the next fill_buffer() call would read from the current position until the target position (probably the end of the file). Fix this by changing the code to seek to the last index position if that is between the current and target positions. Also change backwards relative seek to accept an exactly matching index position (<= vs <) and reorganize the seeking conditionals to allow making the above change without turning the code into a complete mess.
author uau
date Fri, 16 Mar 2007 14:55:41 +0000
parents d9a75b26da6c
children 6ac1ece1f9fe
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5323
a2bd4e930d59 common stuff moved to mpc_info.h
arpi
parents: 5003
diff changeset
1
7471
5e56ce70b551 wine headers cleanup
arpi
parents: 7220
diff changeset
2 #include "mp_image.h"
5323
a2bd4e930d59 common stuff moved to mpc_info.h
arpi
parents: 5003
diff changeset
3 #include "mpc_info.h"
a2bd4e930d59 common stuff moved to mpc_info.h
arpi
parents: 5003
diff changeset
4 typedef mp_codec_info_t vd_info_t;
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
5
4988
db591864d642 comments fixed
arpi
parents: 4957
diff changeset
6 /* interface of video decoder drivers */
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
7 typedef struct vd_functions_s
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
8 {
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
9 vd_info_t *info;
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
10 int (*init)(sh_video_t *sh);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
11 void (*uninit)(sh_video_t *sh);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
12 int (*control)(sh_video_t *sh,int cmd,void* arg, ...);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
13 mp_image_t* (*decode)(sh_video_t *sh,void* data,int len,int flags);
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
14 } vd_functions_t;
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
15
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
16 // NULL terminated array of all drivers
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
17 extern vd_functions_t* mpcodecs_vd_drivers[];
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
18
5483
d2fbd113008e global var for option -slices
arpi
parents: 5323
diff changeset
19 extern int vd_use_slices;
d2fbd113008e global var for option -slices
arpi
parents: 5323
diff changeset
20
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
21 #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
22 #define VDCTRL_QUERY_MAX_PP_LEVEL 4 /* test for postprocessing support (max level) */
4988
db591864d642 comments fixed
arpi
parents: 4957
diff changeset
23 #define VDCTRL_SET_PP_LEVEL 5 /* set postprocessing level */
5003
88481d4b9e0e divx_quality and equalizer support done
arpi
parents: 4988
diff changeset
24 #define VDCTRL_SET_EQUALIZER 6 /* set color options (brightness,contrast etc) */
6780
5bf3ed8a17c4 equalizer reworked
alex
parents: 6709
diff changeset
25 #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
26 #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
27 #define VDCTRL_QUERY_UNSEEN_FRAMES 9 /* current decoder lag */
4878
eff8a76e515f libmpcodecs core - initial version
arpi
parents:
diff changeset
28
4883
1602b4fed5a1 callbacks added
arpi
parents: 4878
diff changeset
29 // callbacks:
1602b4fed5a1 callbacks added
arpi
parents: 4878
diff changeset
30 int mpcodecs_config_vo(sh_video_t *sh, int w, int h, unsigned int preferred_outfmt);
1602b4fed5a1 callbacks added
arpi
parents: 4878
diff changeset
31 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
32 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
33
6708
8058078f1248 support for external pp by divx4. some fixes/cosmetics?
alex
parents: 5483
diff changeset
34 #define VDFLAGS_DROPFRAME 3