mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
sys/: Clear window on PAUSED->READY instead of READY->PAUSED. Stop
Original commit message from CVS: * 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).
This commit is contained in:
parent
6c57765f2d
commit
6adb32adc4
3 changed files with 16 additions and 4 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
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>
|
2005-02-05 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
||||||
|
|
||||||
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_getcaps):
|
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_getcaps):
|
||||||
|
|
|
@ -1034,8 +1034,6 @@ gst_ximagesink_change_state (GstElement * element)
|
||||||
XSynchronize (ximagesink->xcontext->disp, ximagesink->synchronous);
|
XSynchronize (ximagesink->xcontext->disp, ximagesink->synchronous);
|
||||||
break;
|
break;
|
||||||
case GST_STATE_READY_TO_PAUSED:
|
case GST_STATE_READY_TO_PAUSED:
|
||||||
if (ximagesink->xwindow)
|
|
||||||
gst_ximagesink_xwindow_clear (ximagesink, ximagesink->xwindow);
|
|
||||||
ximagesink->time = 0;
|
ximagesink->time = 0;
|
||||||
break;
|
break;
|
||||||
case GST_STATE_PAUSED_TO_PLAYING:
|
case GST_STATE_PAUSED_TO_PLAYING:
|
||||||
|
@ -1043,6 +1041,8 @@ gst_ximagesink_change_state (GstElement * element)
|
||||||
case GST_STATE_PLAYING_TO_PAUSED:
|
case GST_STATE_PLAYING_TO_PAUSED:
|
||||||
break;
|
break;
|
||||||
case GST_STATE_PAUSED_TO_READY:
|
case GST_STATE_PAUSED_TO_READY:
|
||||||
|
if (ximagesink->xwindow)
|
||||||
|
gst_ximagesink_xwindow_clear (ximagesink, ximagesink->xwindow);
|
||||||
ximagesink->framerate = 0;
|
ximagesink->framerate = 0;
|
||||||
ximagesink->sw_scaling_failed = FALSE;
|
ximagesink->sw_scaling_failed = FALSE;
|
||||||
GST_VIDEOSINK_WIDTH (ximagesink) = 0;
|
GST_VIDEOSINK_WIDTH (ximagesink) = 0;
|
||||||
|
|
|
@ -497,6 +497,9 @@ gst_xvimagesink_xwindow_clear (GstXvImageSink * xvimagesink,
|
||||||
|
|
||||||
g_mutex_lock (xvimagesink->x_lock);
|
g_mutex_lock (xvimagesink->x_lock);
|
||||||
|
|
||||||
|
XvStopVideo (xvimagesink->xcontext->disp, xvimagesink->xcontext->xv_port_id,
|
||||||
|
xwindow->win);
|
||||||
|
|
||||||
XSetForeground (xvimagesink->xcontext->disp, xwindow->gc,
|
XSetForeground (xvimagesink->xcontext->disp, xwindow->gc,
|
||||||
xvimagesink->xcontext->black);
|
xvimagesink->xcontext->black);
|
||||||
|
|
||||||
|
@ -1340,8 +1343,6 @@ gst_xvimagesink_change_state (GstElement * element)
|
||||||
gst_xvimagesink_update_colorbalance (xvimagesink);
|
gst_xvimagesink_update_colorbalance (xvimagesink);
|
||||||
break;
|
break;
|
||||||
case GST_STATE_READY_TO_PAUSED:
|
case GST_STATE_READY_TO_PAUSED:
|
||||||
if (xvimagesink->xwindow)
|
|
||||||
gst_xvimagesink_xwindow_clear (xvimagesink, xvimagesink->xwindow);
|
|
||||||
xvimagesink->time = 0;
|
xvimagesink->time = 0;
|
||||||
break;
|
break;
|
||||||
case GST_STATE_PAUSED_TO_PLAYING:
|
case GST_STATE_PAUSED_TO_PLAYING:
|
||||||
|
@ -1349,6 +1350,8 @@ gst_xvimagesink_change_state (GstElement * element)
|
||||||
case GST_STATE_PLAYING_TO_PAUSED:
|
case GST_STATE_PLAYING_TO_PAUSED:
|
||||||
break;
|
break;
|
||||||
case GST_STATE_PAUSED_TO_READY:
|
case GST_STATE_PAUSED_TO_READY:
|
||||||
|
if (xvimagesink->xwindow)
|
||||||
|
gst_xvimagesink_xwindow_clear (xvimagesink, xvimagesink->xwindow);
|
||||||
xvimagesink->framerate = 0;
|
xvimagesink->framerate = 0;
|
||||||
GST_VIDEOSINK_WIDTH (xvimagesink) = 0;
|
GST_VIDEOSINK_WIDTH (xvimagesink) = 0;
|
||||||
GST_VIDEOSINK_HEIGHT (xvimagesink) = 0;
|
GST_VIDEOSINK_HEIGHT (xvimagesink) = 0;
|
||||||
|
|
Loading…
Reference in a new issue