summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/video_out/video_out_vdpau.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/video_out/video_out_vdpau.c b/src/video_out/video_out_vdpau.c
index 5be71ceae..e85e31545 100644
--- a/src/video_out/video_out_vdpau.c
+++ b/src/video_out/video_out_vdpau.c
@@ -1319,7 +1319,7 @@ static int vdpau_get_property (vo_driver_t *this_gen, int property)
switch (property) {
case VO_PROP_MAX_NUM_FRAMES:
- return 22;
+ return 30;
case VO_PROP_WINDOW_WIDTH:
return this->sc.gui_width;
case VO_PROP_WINDOW_HEIGHT:
@@ -1926,6 +1926,19 @@ static vo_driver_t *vdpau_open_plugin (video_driver_class_t *class_gen, const vo
"This flag is not always reliable.\n\n"),
10, vdpau_honor_progressive_flag, this );
+ /* number of video frames from config - register it with the default value. */
+ int frame_num = config->register_num (config, "engine.buffers.video_num_frames", 15, /* default */
+ _("default number of video frames"),
+ _("The default number of video frames to request "
+ "from xine video out driver. Some drivers will "
+ "override this setting with their own values."),
+ 20, NULL, this);
+
+ /* now make sure we have at least 22 frames, to prevent
+ * locks with vdpau_h264 */
+ if(frame_num < 22)
+ config->update_num(config,"engine.buffers.video_num_frames",22);
+
this->capabilities = VO_CAP_YV12 | VO_CAP_YUY2 | VO_CAP_CROP | VO_CAP_UNSCALED_OVERLAY | VO_CAP_CUSTOM_EXTENT_OVERLAY | VO_CAP_ARGB_LAYER_OVERLAY;
ok = 0;
uint32_t mw, mh, ml, mr;