{"action":"created","issue":{"url":"https://api.github.com/repos/HandBrake/HandBrake/issues/988","repository_url":"https://api.github.com/repos/HandBrake/HandBrake","labels_url":"https://api.github.com/repos/HandBrake/HandBrake/issues/988/labels{/name}","comments_url":"https://api.github.com/repos/HandBrake/HandBrake/issues/988/comments","events_url":"https://api.github.com/repos/HandBrake/HandBrake/issues/988/events","html_url":"https://github.com/HandBrake/HandBrake/pull/988","id":272653740,"number":988,"title":"Auto-rotate video that has rotation tag","user":{"login":"jstebbins","id":709720,"avatar_url":"https://avatars0.githubusercontent.com/u/709720?v=4","gravatar_id":"","url":"https://api.github.com/users/jstebbins","html_url":"https://github.com/jstebbins","followers_url":"https://api.github.com/users/jstebbins/followers","following_url":"https://api.github.com/users/jstebbins/following{/other_user}","gists_url":"https://api.github.com/users/jstebbins/gists{/gist_id}","starred_url":"https://api.github.com/users/jstebbins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jstebbins/subscriptions","organizations_url":"https://api.github.com/users/jstebbins/orgs","repos_url":"https://api.github.com/users/jstebbins/repos","events_url":"https://api.github.com/users/jstebbins/events{/privacy}","received_events_url":"https://api.github.com/users/jstebbins/received_events","type":"User","site_admin":false},"labels":[{"id":251385810,"url":"https://api.github.com/repos/HandBrake/HandBrake/labels/Enhancement","name":"Enhancement","color":"1d76db","default":false}],"state":"open","locked":false,"assignee":{"login":"sr55","id":628593,"avatar_url":"https://avatars0.githubusercontent.com/u/628593?v=4","gravatar_id":"","url":"https://api.github.com/users/sr55","html_url":"https://github.com/sr55","followers_url":"https://api.github.com/users/sr55/followers","following_url":"https://api.github.com/users/sr55/following{/other_user}","gists_url":"https://api.github.com/users/sr55/gists{/gist_id}","starred_url":"https://api.github.com/users/sr55/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr55/subscriptions","organizations_url":"https://api.github.com/users/sr55/orgs","repos_url":"https://api.github.com/users/sr55/repos","events_url":"https://api.github.com/users/sr55/events{/privacy}","received_events_url":"https://api.github.com/users/sr55/received_events","type":"User","site_admin":false},"assignees":[{"login":"sr55","id":628593,"avatar_url":"https://avatars0.githubusercontent.com/u/628593?v=4","gravatar_id":"","url":"https://api.github.com/users/sr55","html_url":"https://github.com/sr55","followers_url":"https://api.github.com/users/sr55/followers","following_url":"https://api.github.com/users/sr55/following{/other_user}","gists_url":"https://api.github.com/users/sr55/gists{/gist_id}","starred_url":"https://api.github.com/users/sr55/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr55/subscriptions","organizations_url":"https://api.github.com/users/sr55/orgs","repos_url":"https://api.github.com/users/sr55/repos","events_url":"https://api.github.com/users/sr55/events{/privacy}","received_events_url":"https://api.github.com/users/sr55/received_events","type":"User","site_admin":false},{"login":"jstebbins","id":709720,"avatar_url":"https://avatars0.githubusercontent.com/u/709720?v=4","gravatar_id":"","url":"https://api.github.com/users/jstebbins","html_url":"https://github.com/jstebbins","followers_url":"https://api.github.com/users/jstebbins/followers","following_url":"https://api.github.com/users/jstebbins/following{/other_user}","gists_url":"https://api.github.com/users/jstebbins/gists{/gist_id}","starred_url":"https://api.github.com/users/jstebbins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jstebbins/subscriptions","organizations_url":"https://api.github.com/users/jstebbins/orgs","repos_url":"https://api.github.com/users/jstebbins/repos","events_url":"https://api.github.com/users/jstebbins/events{/privacy}","received_events_url":"https://api.github.com/users/jstebbins/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/HandBrake/HandBrake/milestones/4","html_url":"https://github.com/HandBrake/HandBrake/milestone/4","labels_url":"https://api.github.com/repos/HandBrake/HandBrake/milestones/4/labels","id":1859968,"number":4,"title":"1.1.0","description":"","creator":{"login":"sr55","id":628593,"avatar_url":"https://avatars0.githubusercontent.com/u/628593?v=4","gravatar_id":"","url":"https://api.github.com/users/sr55","html_url":"https://github.com/sr55","followers_url":"https://api.github.com/users/sr55/followers","following_url":"https://api.github.com/users/sr55/following{/other_user}","gists_url":"https://api.github.com/users/sr55/gists{/gist_id}","starred_url":"https://api.github.com/users/sr55/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr55/subscriptions","organizations_url":"https://api.github.com/users/sr55/orgs","repos_url":"https://api.github.com/users/sr55/repos","events_url":"https://api.github.com/users/sr55/events{/privacy}","received_events_url":"https://api.github.com/users/sr55/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":98,"state":"open","created_at":"2016-07-01T14:40:25Z","updated_at":"2017-11-09T18:54:06Z","due_on":null,"closed_at":null},"comments":5,"created_at":"2017-11-09T17:31:19Z","updated_at":"2017-11-09T19:35:03Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/HandBrake/HandBrake/pulls/988","html_url":"https://github.com/HandBrake/HandBrake/pull/988","diff_url":"https://github.com/HandBrake/HandBrake/pull/988.diff","patch_url":"https://github.com/HandBrake/HandBrake/pull/988.patch"},"body":"This builds on the rotation detection PR from @galad87 https://github.com/HandBrake/HandBrake/pull/850\r\n\r\nIt adds a filter stage in the decoder to auto-rotate the video.  By doing this in the decoder, the rest of the HandBrake pipeline sees the video in it's \"correct\" orientation. \r\n\r\nI don't have any video that has the rotation tag set, so to test I've just been hard coding the tag.  This needs to be tested with a real rotated source to be sure I got the rotation direction correct.\r\n\r\nI've replaced the direct use of swscale that we did previously with an avfilter graph. The filter graph only gets created when needed and only the necessary filters are inserted.  If we need additional filters in the decoder, it will be easier to add in the future.\r\n\r\nI had to reorganize some code that affects QSV decode.  So that needs testing."},"comment":{"url":"https://api.github.com/repos/HandBrake/HandBrake/issues/comments/343266856","html_url":"https://github.com/HandBrake/HandBrake/pull/988#issuecomment-343266856","issue_url":"https://api.github.com/repos/HandBrake/HandBrake/issues/988","id":343266856,"user":{"login":"sr55","id":628593,"avatar_url":"https://avatars0.githubusercontent.com/u/628593?v=4","gravatar_id":"","url":"https://api.github.com/users/sr55","html_url":"https://github.com/sr55","followers_url":"https://api.github.com/users/sr55/followers","following_url":"https://api.github.com/users/sr55/following{/other_user}","gists_url":"https://api.github.com/users/sr55/gists{/gist_id}","starred_url":"https://api.github.com/users/sr55/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr55/subscriptions","organizations_url":"https://api.github.com/users/sr55/orgs","repos_url":"https://api.github.com/users/sr55/repos","events_url":"https://api.github.com/users/sr55/events{/privacy}","received_events_url":"https://api.github.com/users/sr55/received_events","type":"User","site_admin":false},"created_at":"2017-11-09T19:35:03Z","updated_at":"2017-11-09T19:35:03Z","author_association":"OWNER","body":"Getting a build failure here.\r\n\r\n> /home/udev/toolchains/mingw-w64-5.0.2-gcc-7.1.0/mingw-w64-x86_64/bin/x86_64-w64-mingw32-gcc -std=gnu99 -pipe -fmessage-length=0 -Wall -g0 -O3 -mfpmath=sse -msse2 -mno-ms-bitfields -DUSE_LIBAV_AAC -D__LIBHB__ -DUSE_PTHREAD -DSYS_MINGW -DPTW32_STATIC_LIB -DUSE_QSV -DHAVE_THREADS=1 -DUSE_X265 -DARCH_X86_64 -I./libhb/ -I./contrib/include -I./contrib/include/libxml2 -c ../libhb/decavcodec.c -o libhb/decavcodec.o\r\n../libhb/decavcodec.c: In function 'copy_frame':\r\n../libhb/decavcodec.c:938:36: error: 'frame' undeclared (first use in this function); did you mean 'ftime'?\r\n         out = hb_frame_buffer_init(frame->format, frame->width, frame->height);\r\n                                    ^~~~~\r\n                                    ftime\r\n../libhb/decavcodec.c:938:36: note: each undeclared identifier is reported only once for each function it appears in\r\n../libhb/decavcodec.c:939:43: error: 'buf' undeclared (first use in this function)\r\n         hb_avframe_set_video_buffer_flags(buf, frame, (AVRational){1,1});\r\n                                           ^~~\r\n../libhb/decavcodec.c: In function 'reinit_video_filters':\r\n../libhb/decavcodec.c:1119:9: warning: 'return' with no value, in function returning non-void\r\n         return;\r\n         ^~~~~~\r\n../libhb/decavcodec.c:1104:5: note: declared here\r\n int reinit_video_filters(hb_work_private_t * pv)\r\n     ^~~~~~~~~~~~~~~~~~~~\r\n../libhb/module.rules:12: recipe for target 'libhb/decavcodec.o' failed\r\nmake: *** [libhb/decavcodec.o] Error 1\r\nudev@udevvm:~/projects/HandBrake/build$ \r\n"}}
{"actor":{"display_login":"sr55"}}