summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--configure.ac2
-rw-r--r--doc/README.solaris5
-rw-r--r--src/video_out/video_out_pgx64.c22
4 files changed, 17 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 9ec183a6d..fdfb3ba0a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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"));