diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | doc/README.solaris | 5 | ||||
-rw-r--r-- | src/video_out/video_out_pgx64.c | 22 |
4 files changed, 17 insertions, 13 deletions
@@ -27,6 +27,7 @@ * native MacOSX video and audio output plugins * DXR3: fix slight shaking in lower third of the image on TV out with some MPEG material + * fix falling back from multi-buffering in video_out_pgx64 xine-lib (1-rc4a) * audio out now uses a more user friendly "Speaker arrangement" config item; diff --git a/configure.ac b/configure.ac index c5ee64f76..adac266a3 100644 --- a/configure.ac +++ b/configure.ac @@ -2303,7 +2303,7 @@ if test x"$no_x" != "xyes"; then fi if test x$ac_have_sunfb = "xyes"; then if test x$ac_have_sundga = "xyes"; then - echo " - PGX64 (for Sun PGX64/PGX24 cards)" + echo " - PGX64 (for Sun XVR100/PGX64/PGX24 cards)" echo " - PGX32 (for Sun PGX32 cards)" fi fi diff --git a/doc/README.solaris b/doc/README.solaris index 858910076..dbc9d8743 100644 --- a/doc/README.solaris +++ b/doc/README.solaris @@ -85,7 +85,8 @@ Known Problems feature.shm = 0 - - configure and build xine-ui with option "--disable-shm" + - configure and build xine-ui with option "--disable-shm" or + "--disable-shm-default" - increase shmsys:shminfo_shmseg to at least 768 @@ -132,4 +133,4 @@ Known Problems --- version of this file: - $Id: README.solaris,v 1.13 2003/01/05 13:11:53 guenter Exp $ + $Id: README.solaris,v 1.14 2004/06/19 14:51:31 komadori Exp $ 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; i<frame->planes; 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; i<frame->planes; 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; i<frame->planes; 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")); |