2005-02-05 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
+ * sys/ximage/ximagesink.c: (gst_ximagesink_change_state):
+ * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_clear),
+ (gst_xvimagesink_change_state):
+ Clear window on PAUSED->READY instead of READY->PAUSED. Stop
+ Xv video (and thereby regenerate Xv colourkey) in clear() so
+ that PLAY -> READY -> PLAY works (fixes #162504).
+
+2005-02-05 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
+
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_getcaps):
Switch to list instead of range, since MJPEG-devices really just
support decimations, not any size.
XSynchronize (ximagesink->xcontext->disp, ximagesink->synchronous);
break;
case GST_STATE_READY_TO_PAUSED:
- if (ximagesink->xwindow)
- gst_ximagesink_xwindow_clear (ximagesink, ximagesink->xwindow);
ximagesink->time = 0;
break;
case GST_STATE_PAUSED_TO_PLAYING:
case GST_STATE_PLAYING_TO_PAUSED:
break;
case GST_STATE_PAUSED_TO_READY:
+ if (ximagesink->xwindow)
+ gst_ximagesink_xwindow_clear (ximagesink, ximagesink->xwindow);
ximagesink->framerate = 0;
ximagesink->sw_scaling_failed = FALSE;
GST_VIDEOSINK_WIDTH (ximagesink) = 0;
g_mutex_lock (xvimagesink->x_lock);
+ XvStopVideo (xvimagesink->xcontext->disp, xvimagesink->xcontext->xv_port_id,
+ xwindow->win);
+
XSetForeground (xvimagesink->xcontext->disp, xwindow->gc,
xvimagesink->xcontext->black);
gst_xvimagesink_update_colorbalance (xvimagesink);
break;
case GST_STATE_READY_TO_PAUSED:
- if (xvimagesink->xwindow)
- gst_xvimagesink_xwindow_clear (xvimagesink, xvimagesink->xwindow);
xvimagesink->time = 0;
break;
case GST_STATE_PAUSED_TO_PLAYING:
case GST_STATE_PLAYING_TO_PAUSED:
break;
case GST_STATE_PAUSED_TO_READY:
+ if (xvimagesink->xwindow)
+ gst_xvimagesink_xwindow_clear (xvimagesink, xvimagesink->xwindow);
xvimagesink->framerate = 0;
GST_VIDEOSINK_WIDTH (xvimagesink) = 0;
GST_VIDEOSINK_HEIGHT (xvimagesink) = 0;