summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosep Torra <n770galaxy@gmail.com>2014-03-26 11:31:46 +0100
committerJosep Torra <n770galaxy@gmail.com>2014-03-26 11:31:46 +0100
commitc269c64c624c5c69e8e977c65df950285966ea32 (patch)
treec84e1c7578225481972e517ccf21e893b3548834
parent2a9846138a14c819fe6ebef2e1be9e44c5296eb4 (diff)
Drop clock and video scheduler components
-rw-r--r--video.c50
1 files changed, 14 insertions, 36 deletions
diff --git a/video.c b/video.c
index 6da0493..2bf8795 100644
--- a/video.c
+++ b/video.c
@@ -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");