From 63af1d1a064fb92f28334917497c5561153cc005 Mon Sep 17 00:00:00 2001 From: Robin KAY Date: Sat, 19 Jun 2004 14:51:31 +0000 Subject: Fix falling back from multi-buffering in video_out_pgx64. Add XVR100 to configure script status output. Add --disable-shm-default to README.solaris. CVS patchset: 6705 CVS date: 2004/06/19 14:51:31 --- src/video_out/video_out_pgx64.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/video_out/video_out_pgx64.c b/src/video_out/video_out_pgx64.c index bed231d46..039a60811 100644 --- a/src/video_out/video_out_pgx64.c +++ b/src/video_out/video_out_pgx64.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out_pgx64.c,v 1.67 2004/06/18 23:52:15 komadori Exp $ + * $Id: video_out_pgx64.c,v 1.68 2004/06/19 14:51:31 komadori Exp $ * * video_out_pgx64.c, Sun XVR100/PGX64/PGX24 output plugin for xine * @@ -187,7 +187,7 @@ typedef enum { typedef enum { BUF_MODE_MULTI, - BUF_MODE_NOT_MULTI, + BUF_MODE_MULTI_FAILED, BUF_MODE_SINGLE, BUF_MODE_DOUBLE } buf_mode_t; @@ -654,7 +654,7 @@ static void pgx64_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen) this->buf_mode = BUF_MODE_MULTI; } else { - this->buf_mode = BUF_MODE_NOT_MULTI; + this->buf_mode = BUF_MODE_MULTI_FAILED; } } @@ -790,7 +790,7 @@ static void pgx64_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen) if (this->buf_mode == BUF_MODE_MULTI) { int i; - if (frame->vo_frame.proc_slice != pgx64_frame_proc_slice) { + if (frame->vo_frame.proc_frame != pgx64_frame_proc_frame) { for (i=0; iplanes; i++) { if ((frame->buffers[i] = vram_alloc(this, frame->lengths[i])) < 0) { if (this->detained_frames < MAX_DETAINED_FRAMES) { @@ -800,7 +800,7 @@ static void pgx64_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen) else { xprintf(this->class->xine, XINE_VERBOSITY_LOG, _("video_out_pgx64: Warning: low video memory, multi-buffering disabled\n")); vram_reset(this); - this->buf_mode = BUF_MODE_NOT_MULTI; + this->buf_mode = BUF_MODE_MULTI_FAILED; break; } } @@ -810,10 +810,12 @@ static void pgx64_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen) } } - frame->vo_frame.proc_frame = pgx64_frame_proc_frame; - frame->vo_frame.proc_slice = pgx64_frame_proc_slice; - _x_assert(this->multibuf_frames < MAX_MULTIBUF_FRAMES); - this->multibuf[this->multibuf_frames++] = frame; + if (this->buf_mode == BUF_MODE_MULTI) { + frame->vo_frame.proc_frame = pgx64_frame_proc_frame; + frame->vo_frame.proc_slice = pgx64_frame_proc_slice; + _x_assert(this->multibuf_frames < MAX_MULTIBUF_FRAMES); + this->multibuf[this->multibuf_frames++] = frame; + } } for (i=0; iplanes; i++) { @@ -824,7 +826,7 @@ static void pgx64_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen) if (this->buf_mode != BUF_MODE_MULTI) { int i; - if (this->buf_mode == BUF_MODE_NOT_MULTI) { + if (this->buf_mode == BUF_MODE_MULTI_FAILED) { for (i=0; iplanes; i++) { if ((this->buffers[0][i] = vram_alloc(this, frame->lengths[i])) < 0) { xprintf(this->class->xine, XINE_VERBOSITY_LOG, _("video_out_pgx64: Error: insuffucient video memory\n")); -- cgit v1.2.3