diff options
author | Josep Torra <n770galaxy@gmail.com> | 2014-03-26 11:31:46 +0100 |
---|---|---|
committer | Josep Torra <n770galaxy@gmail.com> | 2014-03-26 11:31:46 +0100 |
commit | c269c64c624c5c69e8e977c65df950285966ea32 (patch) | |
tree | c84e1c7578225481972e517ccf21e893b3548834 | |
parent | 2a9846138a14c819fe6ebef2e1be9e44c5296eb4 (diff) |
Drop clock and video scheduler components
-rw-r--r-- | video.c | 50 |
1 files changed, 14 insertions, 36 deletions
@@ -66,8 +66,7 @@ void *video_decode_test(void* arg) } OMX_VIDEO_PARAM_PORTFORMATTYPE format; - OMX_TIME_CONFIG_CLOCKSTATETYPE cstate; - COMPONENT_T *video_decode = NULL, *video_scheduler = NULL, *clock = NULL; + COMPONENT_T *video_decode = NULL; COMPONENT_T *list[5]; TUNNEL_T tunnel[4]; ILCLIENT_T *client; @@ -107,33 +106,8 @@ void *video_decode_test(void* arg) status = -14; list[1] = egl_render; - // create clock - if(status == 0 && ilclient_create_component(client, &clock, "clock", ILCLIENT_DISABLE_ALL_PORTS) != 0) - status = -14; - list[2] = clock; - - memset(&cstate, 0, sizeof(cstate)); - cstate.nSize = sizeof(cstate); - cstate.nVersion.nVersion = OMX_VERSION; - cstate.eState = OMX_TIME_ClockStateWaitingForStartTime; - cstate.nWaitMask = 1; - if(clock != NULL && OMX_SetParameter(ILC_GET_HANDLE(clock), OMX_IndexConfigTimeClockState, &cstate) != OMX_ErrorNone) - status = -13; - - // create video_scheduler - if(status == 0 && ilclient_create_component(client, &video_scheduler, "video_scheduler", ILCLIENT_DISABLE_ALL_PORTS) != 0) - status = -14; - list[3] = video_scheduler; - set_tunnel(tunnel, video_decode, 131, video_scheduler, 10); - set_tunnel(tunnel+1, video_scheduler, 11, egl_render, 220); - set_tunnel(tunnel+2, clock, 80, video_scheduler, 12); - - // setup clock tunnel first - if(status == 0 && ilclient_setup_tunnel(tunnel+2, 0, 0) != 0) - status = -15; - else - ilclient_change_component_state(clock, OMX_StateExecuting); + set_tunnel(tunnel, video_decode, 131, egl_render, 220); if(status == 0) ilclient_change_component_state(video_decode, OMX_StateIdle); @@ -173,18 +147,24 @@ void *video_decode_test(void* arg) { port_settings_changed = 1; - if(ilclient_setup_tunnel(tunnel, 0, 0) != 0) { +#define OMX_IndexParamBrcmVideoEGLRenderDiscardMode 0x7f0000db + OMX_CONFIG_PORTBOOLEANTYPE discardMode; + memset (&discardMode, 0, sizeof (discardMode)); + discardMode.nSize = sizeof (discardMode); + discardMode.nPortIndex = 220; + discardMode.nVersion.nVersion = OMX_VERSION; + discardMode.bEnabled = OMX_FALSE; + if (OMX_SetParameter(ILC_GET_HANDLE(egl_render), OMX_IndexParamBrcmVideoEGLRenderDiscardMode, &discardMode) != OMX_ErrorNone) { status = -7; break; + } +#undef OMX_IndexParamBrcmVideoEGLRenderDiscardMode } - ilclient_change_component_state(video_scheduler, OMX_StateExecuting); - - // now setup tunnel to egl_render - if(ilclient_setup_tunnel(tunnel+1, 0, 1000) != 0) + if(ilclient_setup_tunnel(tunnel, 0, 0) != 0) { - status = -12; + status = -7; break; } @@ -261,8 +241,6 @@ void *video_decode_test(void* arg) printf ("Disable tunnels\n"); ilclient_disable_tunnel(tunnel); - ilclient_disable_tunnel(tunnel+1); - ilclient_disable_tunnel(tunnel+2); ilclient_teardown_tunnels(tunnel); printf ("release components\n"); |