{"action":"created","issue":{"url":"https://api.github.com/repos/natario1/CameraView/issues/113","repository_url":"https://api.github.com/repos/natario1/CameraView","labels_url":"https://api.github.com/repos/natario1/CameraView/issues/113/labels{/name}","comments_url":"https://api.github.com/repos/natario1/CameraView/issues/113/comments","events_url":"https://api.github.com/repos/natario1/CameraView/issues/113/events","html_url":"https://github.com/natario1/CameraView/issues/113","id":276036550,"node_id":"MDU6SXNzdWUyNzYwMzY1NTA=","number":113,"title":"Thoughts for v2","user":{"login":"natario1","id":15526561,"node_id":"MDQ6VXNlcjE1NTI2NTYx","avatar_url":"https://avatars2.githubusercontent.com/u/15526561?v=4","gravatar_id":"","url":"https://api.github.com/users/natario1","html_url":"https://github.com/natario1","followers_url":"https://api.github.com/users/natario1/followers","following_url":"https://api.github.com/users/natario1/following{/other_user}","gists_url":"https://api.github.com/users/natario1/gists{/gist_id}","starred_url":"https://api.github.com/users/natario1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/natario1/subscriptions","organizations_url":"https://api.github.com/users/natario1/orgs","repos_url":"https://api.github.com/users/natario1/repos","events_url":"https://api.github.com/users/natario1/events{/privacy}","received_events_url":"https://api.github.com/users/natario1/received_events","type":"User","site_admin":false},"labels":[{"id":649484070,"node_id":"MDU6TGFiZWw2NDk0ODQwNzA=","url":"https://api.github.com/repos/natario1/CameraView/labels/discussion","name":"discussion","color":"bfd4f2","default":false},{"id":1061032560,"node_id":"MDU6TGFiZWwxMDYxMDMyNTYw","url":"https://api.github.com/repos/natario1/CameraView/labels/v2-fixed","name":"v2-fixed","color":"006b75","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2017-11-22T11:36:44Z","updated_at":"2018-10-18T05:16:45Z","closed_at":null,"author_association":"OWNER","body":"I would say that `v1.4.X` is a very stable release, and there's just minor refinements to do.\r\nMajor changes would require API signature changes as well so I am starting thinking about a `v2` release based on feedback and requests. This is how I see it.\r\n\r\n|API|Action|\r\n|----|-------|\r\n|`Audio` enum|**Improve** it, not just `ON` and `OFF` but rather audio options to be passed to the video recorders.|\r\n|`onPictureTaken(byte[])`|**Refactor** to `onPictureTaken(PictureResult)`|\r\n|`onVideoTaken(File)`|**Refactor** to `onVideoTaken(VideoResult)`|\r\n|`PictureResult`|**Add**. Candidate APIs: `isSnapshot()`, `getTimestamp()`, `getLocation()`, `getOrientation()`, `getSize()`, `getJpeg()`, `toBitmap(maxWidth, maxHeight, callback)`.|\r\n|`VideoResult`|**Add**. Candidate APIs: `isSnapshot()`, `getTimestamp()`, `getLocation()`, `getOrientation()`, `getSize()`, `getFile()`.|\r\n|`setJpegQuality`|**Remove**. It makes no sense, we get a jpeg already from the camera, we can't choose the quality. It is only used when recompressing after post-processing.|\r\n|`setCropOutput`|**Remove**. See below.|\r\n|`getPreviewSize`|**Change**: it should return the size correctly flipped in the view dimensions, and cropped if the preview is cropped (we currently return the camera1 preview size but it's useless.). We should also adapt it to the video size when the session type is video.|\r\n|`getSnapshotSize`|**Remove**. It is equal to `getPreviewSize`|\r\n|`getVideoSize`|**Add**. Return the size of video outputs taken with `takeVideo`.|\r\n|`capturePicture`|**Rename** to `takePicture`. Never crop the output, use the internal picture sizes.|\r\n|`captureSnapshot`|**Rename** to `takePictureSnapshot`. Takes picture from preview frames. Always crop the output to the visible part. Cropping is already native in `YuvImage`, but rotating is not. We need either a native jpeg rotator, or (better) a library that writes EXIF orientation tags to jpeg buffers.|\r\n|`startCapturingVideo`|**Rename** to `takeVideo`.|\r\n|`stopCapturingVideo`|**Rename** to `stopVideo`.|\r\n|`takeVideoSnapshot`|**Add**. This should be the video equivalent of `takePictureSnapshot`. It should take videos by collecting preview frames, and crop them to the visible part. So if preview is 1:1, we get 1:1 videos. Then mix with audio. This will be **API18** min, see the [grafika](https://stackoverflow.com/a/32927878/4288782) example.|\r\n|`take*` APIs in short:|We would have `takePicture`, `takeVideo`, `takePictureSnapshot` and `takeVideoSnapshot`. The snapshot version will implicitly crop the output to the visible part, and will be lower quality of course.| \r\n|`VideoRecorder`|**Create**. Since we must record videos in two ways, create an abstract `VideoRecorder` class. One implementation will contain `MediaRecorder` stuff that is already working well. The other should contain `MediaCodec` stuff to create videos from frames. Of course, `takeVideo` uses the first while `takeVideoSnapshot` uses the second.|\r\n|`Gesture.DOUBLE_TAP`|**Add**. This is not impossible, add it to the set of supported gestures.|\r\n\r\nFeel free to discuss. No hurry, I expect this in the middle of 2018.\r\n"},"comment":{"url":"https://api.github.com/repos/natario1/CameraView/issues/comments/430877975","html_url":"https://github.com/natario1/CameraView/issues/113#issuecomment-430877975","issue_url":"https://api.github.com/repos/natario1/CameraView/issues/113","id":430877975,"node_id":"MDEyOklzc3VlQ29tbWVudDQzMDg3Nzk3NQ==","user":{"login":"Patte1808","id":1078124,"node_id":"MDQ6VXNlcjEwNzgxMjQ=","avatar_url":"https://avatars0.githubusercontent.com/u/1078124?v=4","gravatar_id":"","url":"https://api.github.com/users/Patte1808","html_url":"https://github.com/Patte1808","followers_url":"https://api.github.com/users/Patte1808/followers","following_url":"https://api.github.com/users/Patte1808/following{/other_user}","gists_url":"https://api.github.com/users/Patte1808/gists{/gist_id}","starred_url":"https://api.github.com/users/Patte1808/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Patte1808/subscriptions","organizations_url":"https://api.github.com/users/Patte1808/orgs","repos_url":"https://api.github.com/users/Patte1808/repos","events_url":"https://api.github.com/users/Patte1808/events{/privacy}","received_events_url":"https://api.github.com/users/Patte1808/received_events","type":"User","site_admin":false},"created_at":"2018-10-18T05:16:45Z","updated_at":"2018-10-18T05:16:45Z","author_association":"NONE","body":"Hey, I noticed that you are adding the label `v2-fixed`.\r\n\r\nFor my usecase, I have to set the `orientation hint` to a specific value for video, but there seems to be no public API for that. Therefore, I currently have to maintain my own fork.\r\n\r\nWill v2 contain more public APIs to set the values? \r\nBy the way great work and library. Really love this library. :) "}}
{"actor":{"display_login":"Patte1808"}}