{"action":"created","issue":{"url":"https://api.github.com/repos/raspberrypi/firmware/issues/472","labels_url":"https://api.github.com/repos/raspberrypi/firmware/issues/472/labels{/name}","comments_url":"https://api.github.com/repos/raspberrypi/firmware/issues/472/comments","events_url":"https://api.github.com/repos/raspberrypi/firmware/issues/472/events","html_url":"https://github.com/raspberrypi/firmware/issues/472","id":105091218,"number":472,"title":"Using deinterlacer with egl_render OpenMAX component","user":{"login":"carlonluca","id":3678828,"avatar_url":"https://avatars.githubusercontent.com/u/3678828?v=3","gravatar_id":"","url":"https://api.github.com/users/carlonluca","html_url":"https://github.com/carlonluca","followers_url":"https://api.github.com/users/carlonluca/followers","following_url":"https://api.github.com/users/carlonluca/following{/other_user}","gists_url":"https://api.github.com/users/carlonluca/gists{/gist_id}","starred_url":"https://api.github.com/users/carlonluca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carlonluca/subscriptions","organizations_url":"https://api.github.com/users/carlonluca/orgs","repos_url":"https://api.github.com/users/carlonluca/repos","events_url":"https://api.github.com/users/carlonluca/events{/privacy}","received_events_url":"https://api.github.com/users/carlonluca/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-09-06T12:15:16Z","updated_at":"2015-09-06T14:45:16Z","closed_at":null,"body":"I tried to enable deinterlacer while using the egl_render OpenMAX component. What I found out is that the resulting frame rate of the component seems low. I'm trying to find out if there is a mistake in my code, but I also tried to use the vcdbg hist command, which seems to track the GPU usage if I'm not mistaken. The results are reported here:\r\n\r\nThese were taken with my code running:\r\ndeinterlacer on: http://pastebin.com/PpMJnYc8\r\ndeinterlacer off: http://pastebin.com/kGw9mkVn\r\n\r\nThis was taken with omxplayer running with the same video file (interlacer seems to be enabled):\r\ndeinterlacer on: http://pastebin.com/cprs2KJs\r\n\r\nWhat I notice is that in the omxplayer case ILVRender is 0.71% and ILImageFX is 28.8% (I suppose ILImageFX is the component executing the deinterlacing algorithm itself) while in my code LEGLRender is taking 86.1% while ILImageFX is still around 24.9%. LEGLRender is saturating the core. This may be my fault, but during a regular playback (same video file but with deinterlacing off) ILEGLRender is around 23.0%, which leaves some idle time for the core. Any idea what may be happening here? Can someone else reproduce this behaviour with another implementation?"},"comment":{"url":"https://api.github.com/repos/raspberrypi/firmware/issues/comments/138090628","html_url":"https://github.com/raspberrypi/firmware/issues/472#issuecomment-138090628","issue_url":"https://api.github.com/repos/raspberrypi/firmware/issues/472","id":138090628,"user":{"login":"6by9","id":5822349,"avatar_url":"https://avatars.githubusercontent.com/u/5822349?v=3","gravatar_id":"","url":"https://api.github.com/users/6by9","html_url":"https://github.com/6by9","followers_url":"https://api.github.com/users/6by9/followers","following_url":"https://api.github.com/users/6by9/following{/other_user}","gists_url":"https://api.github.com/users/6by9/gists{/gist_id}","starred_url":"https://api.github.com/users/6by9/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/6by9/subscriptions","organizations_url":"https://api.github.com/users/6by9/orgs","repos_url":"https://api.github.com/users/6by9/repos","events_url":"https://api.github.com/users/6by9/events{/privacy}","received_events_url":"https://api.github.com/users/6by9/received_events","type":"User","site_admin":false},"created_at":"2015-09-06T14:45:16Z","updated_at":"2015-09-06T14:45:16Z","body":"Image_fx is the component doing deinterlacing - yes.\r\nEGLRender has to do a format conversion to an image format that EGL can consume - IIRC that also includes a conversion from YUV to RGB, so is moderately compute intensive. VideoRender just passes frames to the hardware composition engine, so has minimal actual work to do.\r\n\r\nDeinterlacing doubles the framerate, so EGLRender is now seeing twice the load.\r\nI couldn't say off the top of my head how EGLRender deals with frame drops, but it sounds like you are hitting the compute limit and frames are being dropped.\r\n(Surprised vcdbg hist is in there - I didn't think there were sufficient symbols exported for that. Makes me want to go and look again, as the updated version could also export to HTML!)"}}