"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();
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;
\r
class AudioOMX : public Audio\r
{\r
+ friend class VideoOMX;\r
public:\r
AudioOMX();\r
virtual ~AudioOMX();\r
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;
}
+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
{
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)) {
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");
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