diff --git a/amp_wrapper.c b/amp_wrapper.c old mode 100644 new mode 100755 index c4ce741..0a59606 --- a/amp_wrapper.c +++ b/amp_wrapper.c @@ -25,6 +25,17 @@ extern "C" { #include +struct AMP_CALL_TRACE{ + UINT32 call_create_top; + UINT32 call_create_bottom; + UINT32 call_start; + UINT32 call_stop; + UINT32 call_destroy_bottom; + UINT32 call_destroy_top; +}; + +struct AMP_CALL_TRACE gAmpCallTrace_main, gAmpCallTrace_pip; + #ifdef AMP_LOG_WRITE_FILE FILE *logFp[2] = { NULL, NULL }; #endif @@ -394,9 +405,9 @@ HRESULT amp_dmx_event_handler(HANDLE hListener, AMP_EVENT *pEvent, VOID *pUserDa ALOGD("++amp_dmx_event_handler AMP_EVENT_DMX_INBUFF_OVERFLOW (handle=0x%x, fulness=0x%x, size=0x%x)", pBuffState->hHandle, pBuffState->uFullness, pBuffState->uSize ); - amp_stop_pipeline(player); + //amp_stop_pipeline(player); - amp_start_pipeline(player); + //amp_start_pipeline(player); } break; case AMP_EVENT_DMX_INBUFF_UNDERFLOW: @@ -405,8 +416,8 @@ HRESULT amp_dmx_event_handler(HANDLE hListener, AMP_EVENT *pEvent, VOID *pUserDa ALOGD("++amp_dmx_event_handler AMP_EVENT_DMX_INBUFF_UNDERFLOW (handle=0x%x, fulness=0x%x, size=0x%x)", pBuffState->hHandle, pBuffState->uFullness, pBuffState->uSize ); if(socPlayerInfo->playerConfig.clock_recovery_enable == AVP_IPTV) { - amp_stop_pipeline(player); - amp_start_pipeline(player); + //amp_stop_pipeline(player); + //amp_start_pipeline(player); } } break; default: @@ -763,6 +774,17 @@ void amp_create_pipeline_top_half(AVP_HANDLE *player, bool isPip) { synaptics_player_info *socPlayerInfo = (synaptics_player_info *) player; ALOGD("++%s[%s][%0xd] ", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", (unsigned int)socPlayerInfo->ampFactory); + if( !socPlayerInfo->pip ){ + gAmpCallTrace_main.call_create_top++; + ALOGD("++%s[%s] create_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_main.call_create_top, gAmpCallTrace_main.call_create_top - gAmpCallTrace_main.call_destroy_top ); + }else{ + gAmpCallTrace_pip.call_create_top++; + ALOGD("++%s[%s] create_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_pip.call_create_top, gAmpCallTrace_pip.call_create_top - gAmpCallTrace_pip.call_destroy_top ); + } + + HRESULT ret; AMP_COMPONENT_CONFIG amp_config; @@ -1018,6 +1040,16 @@ void amp_create_pipeline_bottom_half(AVP_HANDLE *player, BOOL enableCloseCaption synaptics_player_info *socPlayerInfo = (synaptics_player_info *) player; ALOGD("++%s[%s][%0xd] ", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", (unsigned int)socPlayerInfo->ampFactory); + if( !socPlayerInfo->pip ){ + gAmpCallTrace_main.call_create_bottom++; + ALOGD("++%s[%s] create_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_main.call_create_bottom, gAmpCallTrace_main.call_create_bottom - gAmpCallTrace_main.call_destroy_bottom ); + }else{ + gAmpCallTrace_pip.call_create_bottom++; + ALOGD("++%s[%s] create_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_pip.call_create_bottom, gAmpCallTrace_pip.call_create_bottom - gAmpCallTrace_pip.call_destroy_bottom ); + } + HRESULT ret; AMP_COMPONENT_CONFIG amp_config; AMP_DMX_CH_CFG output_config; @@ -1328,6 +1360,15 @@ void amp_start_pipeline(AVP_HANDLE *player) { } synaptics_player_info *socPlayerInfo = (synaptics_player_info *) player; + if( !socPlayerInfo->pip ){ + gAmpCallTrace_main.call_start++; + ALOGD("++%s[%s] start_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_main.call_start, gAmpCallTrace_main.call_start - gAmpCallTrace_main.call_stop ); + }else{ + gAmpCallTrace_pip.call_start++; + ALOGD("++%s[%s] start_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_pip.call_start, gAmpCallTrace_pip.call_start - gAmpCallTrace_pip.call_stop ); + } ALOGD("++%s[%s][%0xd] ", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", (unsigned int)socPlayerInfo->ampFactory); HRESULT ret; @@ -1538,6 +1579,17 @@ void amp_destroy_pipeline_top_half(AVP_HANDLE *player) { amp_log(socPlayerInfo->pip ? 1:0, "AMP_DMX_Destroy, socPlayerInfo->amp_dmx in"); AMP_RPC(ret, AMP_DMX_Destroy, socPlayerInfo->amp_dmx); assert(ret == SUCCESS); + + if( !socPlayerInfo->pip ){ + gAmpCallTrace_main.call_destroy_top++; + ALOGD("++%s[%s] destroy_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_main.call_destroy_top, gAmpCallTrace_main.call_create_top - gAmpCallTrace_main.call_destroy_top ); + }else{ + gAmpCallTrace_pip.call_start++; + ALOGD("++%s[%s] destroy_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_pip.call_destroy_top, gAmpCallTrace_pip.call_create_top - gAmpCallTrace_pip.call_destroy_top ); + } + } void amp_destroy_pipeline_bottom_half(AVP_HANDLE *player) { @@ -1681,6 +1733,17 @@ void amp_destroy_pipeline_bottom_half(AVP_HANDLE *player) { assert(ret == SUCCESS); // <------------------------- video } + + if( !socPlayerInfo->pip ){ + gAmpCallTrace_main.call_destroy_bottom++; + ALOGD("++%s[%s] destroy_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_main.call_destroy_bottom, gAmpCallTrace_main.call_create_bottom - gAmpCallTrace_main.call_destroy_bottom ); + }else{ + gAmpCallTrace_pip.call_destroy_bottom++; + ALOGD("++%s[%s] destroy_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_pip.call_destroy_bottom, gAmpCallTrace_pip.call_create_bottom - gAmpCallTrace_pip.call_destroy_bottom ); + } + } void amp_destroy_pipeline_tail(AVP_HANDLE *player) { @@ -1775,6 +1838,16 @@ void amp_stop_pipeline(AVP_HANDLE *player) { assert(ret == SUCCESS); // <------------------------- video } + + if( !socPlayerInfo->pip ){ + gAmpCallTrace_main.call_stop++; + ALOGD("++%s[%s] stop_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_main.call_stop, gAmpCallTrace_main.call_start - gAmpCallTrace_main.call_stop ); + }else{ + gAmpCallTrace_pip.call_stop++; + ALOGD("++%s[%s] stop_count(%u,%u)", __FUNCTION__, socPlayerInfo->pip ? "PIP":"MAIN", + gAmpCallTrace_pip.call_stop, gAmpCallTrace_pip.call_start - gAmpCallTrace_pip.call_stop ); + } } HRESULT amp_zapping_mgr_stop_service(AVP_HANDLE *player) {