[CherryPick] Regression(r138786): Causes webaudio tests to crash
authorchristophe.dumez@intel.com <christophe.dumez@intel.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 7 Jan 2013 13:26:13 +0000 (13:26 +0000)
committerGerrit Code Review <gerrit2@kim11>
Mon, 25 Mar 2013 23:53:26 +0000 (08:53 +0900)
[Title] [CherryPick] Regression(r138786): Causes webaudio tests to crash
[Issues] N/A
[Problem] WebAudio Intel TCs hang during regression test
[Solution] Cherry picked.
[Cherry-Picker] Praveen R Jadhav <praveen.j@samsung.com>

https://bugs.webkit.org/show_bug.cgi?id=106182

Reviewed by Philippe Normand.

Source/WebCore:

Partially revert r138786 since it causes crashes in webaudio
tests. The WebProcess would actually become unresponsive due
to source element never going to PLAYING state.

Only the changes to webKitWebAudioSrcChangeState() were reverted.

No new tests, already covered by existing tests.

* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcChangeState):

LayoutTests:

Unskip several webaudio tests for EFL WK2 now that the
regression was fixed.

* platform/efl-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138935 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Conflicts:

LayoutTests/ChangeLog
LayoutTests/platform/efl-wk2/TestExpectations
Source/WebCore/ChangeLog

Change-Id: I200bcba74492c4ad5af6b34e2d01b16645683968

Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp

index 218d728..33f359c 100755 (executable)
@@ -424,15 +424,11 @@ static GstStateChangeReturn webKitWebAudioSrcChangeState(GstElement* element, Gs
     switch (transition) {
     case GST_STATE_CHANGE_READY_TO_PAUSED:
         GST_DEBUG_OBJECT(src, "READY->PAUSED");
-        returnValue = GST_STATE_CHANGE_NO_PREROLL;
-        break;
-    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
-        GST_DEBUG_OBJECT(src, "PAUSED->PLAYING");
         if (!gst_task_start(src->priv->task.get()))
             returnValue = GST_STATE_CHANGE_FAILURE;
         break;
-    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
-        GST_DEBUG_OBJECT(src, "PLAYING->PAUSED");
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+        GST_DEBUG_OBJECT(src, "PAUSED->READY");
         if (!gst_task_join(src->priv->task.get()))
             returnValue = GST_STATE_CHANGE_FAILURE;
         break;