omxvideo{enc,dec}: Only set/unset flushing state on ports if they were created already
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 25 Jul 2011 11:19:06 +0000 (13:19 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 25 Jul 2011 11:19:06 +0000 (13:19 +0200)
omx/gstomxvideodec.c
omx/gstomxvideoenc.c

index 8eca754..644129e 100644 (file)
@@ -317,14 +317,18 @@ gst_omx_video_dec_change_state (GstElement * element, GstStateChange transition)
         ret = GST_STATE_CHANGE_FAILURE;
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
-      gst_omx_port_set_flushing (self->out_port, FALSE);
-      gst_omx_port_set_flushing (self->in_port, FALSE);
+      if (self->in_port)
+        gst_omx_port_set_flushing (self->in_port, FALSE);
+      if (self->out_port)
+        gst_omx_port_set_flushing (self->out_port, FALSE);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
-      gst_omx_port_set_flushing (self->out_port, TRUE);
-      gst_omx_port_set_flushing (self->in_port, TRUE);
+      if (self->in_port)
+        gst_omx_port_set_flushing (self->in_port, TRUE);
+      if (self->out_port)
+        gst_omx_port_set_flushing (self->out_port, TRUE);
       break;
     default:
       break;
index eb7564e..99c4801 100644 (file)
@@ -312,14 +312,18 @@ gst_omx_video_enc_change_state (GstElement * element, GstStateChange transition)
         ret = GST_STATE_CHANGE_FAILURE;
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
-      gst_omx_port_set_flushing (self->out_port, FALSE);
-      gst_omx_port_set_flushing (self->in_port, FALSE);
+      if (self->in_port)
+        gst_omx_port_set_flushing (self->in_port, FALSE);
+      if (self->out_port)
+        gst_omx_port_set_flushing (self->out_port, FALSE);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
-      gst_omx_port_set_flushing (self->out_port, TRUE);
-      gst_omx_port_set_flushing (self->in_port, TRUE);
+      if (self->in_port)
+        gst_omx_port_set_flushing (self->in_port, TRUE);
+      if (self->out_port)
+        gst_omx_port_set_flushing (self->out_port, TRUE);
       break;
     default:
       break;