playback: manage the auto-pause in fffb [1/1]

PD#SWPL-161006

Problem:
1. pause in FB is not catched by wrapper
FB -> pause(reach end)
-> set speed(100)(pause not checked, due to race)
-> still pause

2. condition race
the extra logic in wrapper
should be locked with player inner logic.

Solution:
1. correct the mutex location,
make the pause state notified.
2. move the extra logic in set_playback_speed,
they should be inner logic, and should be locked.

Verify:
PB

Change-Id: Ib57f74772d380b56779330d1b0306409b65c3c01
Signed-off-by: Zhiqiang Han <zhiqiang.han@amlogic.com>
diff --git a/src/dvr_playback.c b/src/dvr_playback.c
index 341bb81..9c658f9 100644
--- a/src/dvr_playback.c
+++ b/src/dvr_playback.c
@@ -3837,6 +3837,10 @@
       player->speed = (float)speed.speed.speed/(float)100;
       player->cmd.cur_cmd = DVR_PLAYBACK_CMD_AV_RESTART;
       player->fffb_play = DVR_FALSE;
+
+      /*paused in fffb and set speed(>0), resume the playback*/
+      dvr_playback_resume(player);
+
       DVR_PB_DEBUG("unlock ---\r\n");
       dvr_mutex_unlock(&player->lock);
       return DVR_SUCCESS;
diff --git a/src/dvr_wrapper.c b/src/dvr_wrapper.c
index b571219..9c0a5ef 100644
--- a/src/dvr_wrapper.c
+++ b/src/dvr_wrapper.c
@@ -2216,19 +2216,6 @@
 
   error = dvr_playback_set_speed(ctx->playback.player, dvr_speed);
 
-  if (ctx->playback.speed != 0.0f && ctx->playback.speed != 100.0f
-      && ctx->playback.last_event == DVR_PLAYBACK_EVENT_REACHED_BEGIN
-      && ctx->playback.seg_status.state == DVR_PLAYBACK_STATE_PAUSE) {
-    DVR_WRAPPER_INFO("x%f -> x%f, paused, do resume first\n", ctx->playback.speed, speed);
-    error = dvr_playback_resume(ctx->playback.player);
-  } else if (ctx->playback.speed == 0.0f
-      && speed != 0.0f
-      && speed != 100.0f) {
-    /*libdvr do not support pause with speed=0, will not be here*/
-    DVR_WRAPPER_INFO("x%f -> x%f, do resume first\n", ctx->playback.speed, speed);
-    error = dvr_playback_resume(ctx->playback.player);
-  }
-
   ctx->playback.speed = speed;
 
   DVR_WRAPPER_INFO("playback(sn:%ld) speeded(x%f) (%d)\n",