]> git.vomp.tv Git - vompclient.git/commitdiff
Fix fastforward and backward, some change to pause
authorMarten Richter <marten.richter@freenet.de>
Sun, 14 Oct 2012 10:32:40 +0000 (12:32 +0200)
committerMarten Richter <marten.richter@freenet.de>
Sun, 14 Oct 2012 10:32:40 +0000 (12:32 +0200)
audioomx.cc
audioomx.h
remotelinux.cc
videoomx.cc
videoomx.h

index 985ef930e42acd403463b18c5b32d9c843a64f57..e3bc9b5ea5aef1e67569372cd262f0f0760a1a39 100644 (file)
@@ -1181,6 +1181,9 @@ int AudioOMX::pause() {
                                                "OMX_Flush rend in failed %x", error);
 
                        }
+                       if (!vw->ChangeComponentState(omx_aud_rend,OMX_StateIdle)) {
+                               Log::getInstance()->log("Audio", Log::DEBUG, " pause aud_rend idle ChangeComponentState");
+                       }
                }
                vw->UnlockClock();
                vw->clockPause();
@@ -1194,6 +1197,11 @@ int AudioOMX::unPause()
   if (paused) {
          paused=false; // may be also change omx clock
         VideoOMX *vw = (VideoOMX*) Video::getInstance();
+        if (omx_running) {
+               if (!vw->ChangeComponentState(omx_aud_rend,OMX_StateExecuting)) {
+                       Log::getInstance()->log("Audio", Log::DEBUG, " unpause aud_rend idle ChangeComponentState");
+               }
+        }
          vw->clockUnpause();
   }
   return 1;
index 5eafae4b415ff9670623d3de0c22a339bc1a01a2..23f9b21251de2f0fd155afe83c59a7ce36077ffc 100644 (file)
@@ -40,6 +40,7 @@ extern "C" {
 \r
 class AudioOMX : public Audio\r
 {\r
+  friend class VideoOMX;\r
   public:\r
     AudioOMX();\r
     virtual ~AudioOMX();\r
index 01490261b300b17340b6dc21944ed6267b4bcf45..f604f9dc616fc8de76d58a50e4851cb13ede3a09 100644 (file)
@@ -428,7 +428,7 @@ void RemoteLinux::InitHWCListwithDefaults()
     translist[W_G_HCW(W_HCW_KC,KEY_FORWARD)] = FORWARD;
     translist[W_G_HCW(W_HCW_KC,KEY_F)] = FORWARD;
     translist[W_G_HCW(W_HCW_KC,KEY_BACK)] = REVERSE;
-    translist[W_G_HCW(W_HCW_KC,KEY_R)] = REVERSE;
+    translist[W_G_HCW(W_HCW_KC,KEY_T)] = REVERSE;
     translist[W_G_HCW(W_HCW_KC,KEY_MUTE)] = MUTE;
     translist[W_G_HCW(W_HCW_KC,KEY_F9)] = VOLUMEUP;
     translist[W_G_HCW(W_HCW_KC,KEY_F10)] = VOLUMEDOWN;
index 1b26dc375c35f999b1a49359afd9a09f186d5df8..5cee6fb3e73caad71b87482b7e507df2e29edbb2 100644 (file)
@@ -1476,6 +1476,15 @@ int VideoOMX::WaitForEvent(OMX_HANDLETYPE handle,OMX_U32 event) //needs to be ca
 
 }
 
+int VideoOMX::clearEvents()
+{
+       omx_event_mutex.Lock();
+       omx_events.clear();
+       omx_event_mutex.Unlock();
+
+       return 1;
+}
+
 
 int VideoOMX::CommandFinished(OMX_HANDLETYPE handle,OMX_U32 command,OMX_U32 data2) //needs to be called with locked mutex
 {
@@ -1763,6 +1772,7 @@ int VideoOMX::DeAllocateCodecsOMX()
                cur_input_buf_omx=NULL;//write out old data
        }
    clock_mutex.Lock();
+   clearEvents();
        if (omx_vid_dec) {
                // first stop the omx elements
                if (!ChangeComponentState(omx_vid_dec,OMX_StateIdle)) {
@@ -2799,9 +2809,9 @@ int VideoOMX::EnterIframePlayback()
        input_bufs_omx_mutex.Unlock();
        Log::getInstance()->log("Video", Log::DEBUG,
                                                        "EnterIframePlayback 2");
-       clock_mutex.Lock();
-       FlushRenderingPipe();
-       clock_mutex.Unlock();
+       ((AudioOMX*)Audio::getInstance())->DeAllocateCodecsOMX();
+       DeAllocateCodecsOMX();
+       AllocateCodecsOMX();
        Log::getInstance()->log("Video", Log::DEBUG,
                                                        "leave IframePlayback");
 
index 5effb86eb8136b686a2ba6775c56231092fdd426..ffb4e2c08b7130865bc819ef5d83c2e9371e2fff 100644 (file)
@@ -194,6 +194,7 @@ class VideoOMX : public Video, public Thread_TYPE
           int WaitForEvent(OMX_HANDLETYPE handle,OMX_U32 event);\r
           int EnablePort(OMX_HANDLETYPE handle,OMX_U32 port,bool wait);\r
           int DisablePort(OMX_HANDLETYPE handle,OMX_U32 port,bool wait=true);\r
+          int clearEvents();\r
 \r
 \r
        int setClockExecutingandRunning();\r