v4l2sink: fix for PAUSED->READY->PAUSED state transitions

When v4l2sink goes to PAUSED->READY it only stops streaming, so the state
should be set to STATE_PENDING_STREAMON in case the element transitions
back to PLAYING.
This commit is contained in:
Rob Clark 2010-12-25 11:52:36 -06:00
parent 61db502a12
commit 417b899c44

View file

@ -472,7 +472,7 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
if (!gst_v4l2_object_stop_streaming (v4l2sink->v4l2object)) { if (!gst_v4l2_object_stop_streaming (v4l2sink->v4l2object)) {
return GST_STATE_CHANGE_FAILURE; return GST_STATE_CHANGE_FAILURE;
} }
v4l2sink->state = STATE_OFF; v4l2sink->state = STATE_PENDING_STREAMON;
} }
break; break;
case GST_STATE_CHANGE_READY_TO_NULL: case GST_STATE_CHANGE_READY_TO_NULL:
@ -482,6 +482,7 @@ gst_v4l2sink_change_state (GstElement * element, GstStateChange transition)
/* close the device */ /* close the device */
if (!gst_v4l2_object_stop (v4l2sink->v4l2object)) if (!gst_v4l2_object_stop (v4l2sink->v4l2object))
return GST_STATE_CHANGE_FAILURE; return GST_STATE_CHANGE_FAILURE;
v4l2sink->state = STATE_OFF;
break; break;
default: default:
break; break;