summaryrefslogtreecommitdiffstats
path: root/video/decode/vd.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-01-10 16:19:57 +0100
committerwm4 <wm4@nowhere>2017-01-10 16:20:02 +0100
commited937b6eca269c653fcaa39db14c2623dd3d2862 (patch)
tree461d31459f6ee3e14e95ce1b71e78e86d275444b /video/decode/vd.h
parent4e25feda0d5e084761a9935de7c1e592e86de94f (diff)
downloadmpv-ed937b6eca269c653fcaa39db14c2623dd3d2862.tar.bz2
mpv-ed937b6eca269c653fcaa39db14c2623dd3d2862.tar.xz
video: restructure decode loop
Basically change everything. Why does the code get larger? No idea.
Diffstat (limited to 'video/decode/vd.h')
-rw-r--r--video/decode/vd.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/video/decode/vd.h b/video/decode/vd.h
index c4b77f31f1..4702b77860 100644
--- a/video/decode/vd.h
+++ b/video/decode/vd.h
@@ -33,8 +33,9 @@ typedef struct vd_functions
int (*init)(struct dec_video *vd, const char *decoder);
void (*uninit)(struct dec_video *vd);
int (*control)(struct dec_video *vd, int cmd, void *arg);
- struct mp_image *(*decode)(struct dec_video *vd, struct demux_packet *pkt,
- int flags);
+ // Return whether or not the packet has been consumed.
+ bool (*send_packet)(struct dec_video *vd, struct demux_packet *pkt);
+ struct mp_image *(*receive_frame)(struct dec_video *vd);
} vd_functions_t;
// NULL terminated array of all drivers
@@ -46,6 +47,8 @@ enum vd_ctrl {
VDCTRL_GET_HWDEC,
VDCTRL_REINIT,
VDCTRL_GET_BFRAMES,
+ // framedrop mode: 0=none, 1=standard, 2=hrseek
+ VDCTRL_SET_FRAMEDROP,
};
#endif /* MPLAYER_VD_H */