{"action":"created","issue":{"url":"https://api.github.com/repos/ata4/minema/issues/3","repository_url":"https://api.github.com/repos/ata4/minema","labels_url":"https://api.github.com/repos/ata4/minema/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/ata4/minema/issues/3/comments","events_url":"https://api.github.com/repos/ata4/minema/issues/3/events","html_url":"https://github.com/ata4/minema/pull/3","id":150533708,"number":3,"title":"Pixel buffer object capturer","user":{"login":"daipenger","id":7696458,"avatar_url":"https://avatars.githubusercontent.com/u/7696458?v=3","gravatar_id":"","url":"https://api.github.com/users/daipenger","html_url":"https://github.com/daipenger","followers_url":"https://api.github.com/users/daipenger/followers","following_url":"https://api.github.com/users/daipenger/following{/other_user}","gists_url":"https://api.github.com/users/daipenger/gists{/gist_id}","starred_url":"https://api.github.com/users/daipenger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daipenger/subscriptions","organizations_url":"https://api.github.com/users/daipenger/orgs","repos_url":"https://api.github.com/users/daipenger/repos","events_url":"https://api.github.com/users/daipenger/events{/privacy}","received_events_url":"https://api.github.com/users/daipenger/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-04-23T08:51:43Z","updated_at":"2016-05-01T00:38:15Z","closed_at":"2016-05-01T00:22:44Z","pull_request":{"url":"https://api.github.com/repos/ata4/minema/pulls/3","html_url":"https://github.com/ata4/minema/pull/3","diff_url":"https://github.com/ata4/minema/pull/3.diff","patch_url":"https://github.com/ata4/minema/pull/3.patch"},"body":"Here I am again :)\r\n\r\nAn overview:\r\n\r\n- Heavy memory optimization while recording:\r\nYou copied the ByteBuffer on the client memory side before giving it to the Exporter (not necessary)\r\n\r\n- New PBOCapturer using two alternating pixel buffers for readback when supported by the GPU (Readback speed increased by about 8 times on a GTX 750 Ti)\r\nThis is a good ressource: http://www.songho.ca/opengl/gl_pbo.html\r\n\r\n- New generalized ACapturer abstract class\r\n\r\n- Using BGR color format for PipeExporter now, too\r\n-> Internal OpenGL format\r\n-> Stabilizes readback and ffmpeg handles it well\r\nRequires new encoder arguments:\r\nLossy H264: \"-f rawvideo -pix_fmt bgr24 -s %WIDTH%x%HEIGHT% -r %FPS% -i - -an -c:v libx264 -preset medium -qp 10 video.mp4\""},"comment":{"url":"https://api.github.com/repos/ata4/minema/issues/comments/216005250","html_url":"https://github.com/ata4/minema/pull/3#issuecomment-216005250","issue_url":"https://api.github.com/repos/ata4/minema/issues/3","id":216005250,"user":{"login":"ata4","id":1200105,"avatar_url":"https://avatars.githubusercontent.com/u/1200105?v=3","gravatar_id":"","url":"https://api.github.com/users/ata4","html_url":"https://github.com/ata4","followers_url":"https://api.github.com/users/ata4/followers","following_url":"https://api.github.com/users/ata4/following{/other_user}","gists_url":"https://api.github.com/users/ata4/gists{/gist_id}","starred_url":"https://api.github.com/users/ata4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ata4/subscriptions","organizations_url":"https://api.github.com/users/ata4/orgs","repos_url":"https://api.github.com/users/ata4/repos","events_url":"https://api.github.com/users/ata4/events{/privacy}","received_events_url":"https://api.github.com/users/ata4/received_events","type":"User","site_admin":false},"created_at":"2016-05-01T00:38:15Z","updated_at":"2016-05-01T00:38:15Z","body":"Are you sure I created a copy of the byte buffer? IIRC, I used `ByteBuffer.duplicate()`, which actually just creates a new view of the original buffer, so there's barely any memory overhead. I used it to make sure the other modules don't interfere with the position of the buffer."}}