[ 
https://issues.apache.org/jira/browse/CB-8879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14541579#comment-14541579
 ] 

ASF GitHub Bot commented on CB-8879:
------------------------------------

Github user vladimir-kotikov commented on a diff in the pull request:

    https://github.com/apache/cordova-plugin-camera/pull/94#discussion_r30210477
  
    --- Diff: src/windows/CameraProxy.js ---
    @@ -438,6 +457,61 @@ function takePictureFromCameraWP(successCallback, 
errorCallback, args) {
                 });
         };
     
    +    var getAspectRatios = function (capture) {
    +        var photoAspectRatios = 
capture.videoDeviceController.getAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType.photo).map(function
 (element) {
    +            return (element.width / element.height).toFixed(1);
    +        }).filter(function (element, index, array) { if (index === 
array.indexOf(element)) return 1; return 0; });
    +
    +        var videoAspectRatios = 
capture.videoDeviceController.getAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType.videoRecord).map(function
 (element) {
    +            return (element.width / element.height).toFixed(1);
    +        }).filter(function (element, index, array) { if (index === 
array.indexOf(element)) return 1; return 0; });
    +
    +        var videoPreviewAspectRatios = 
capture.videoDeviceController.getAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType.videoPreview).map(function
 (element) {
    +            return (element.width / element.height).toFixed(1);
    +        }).filter(function (element, index, array) { if (index === 
array.indexOf(element)) return 1; return 0; });
    +
    +        var allAspectRatios = [].concat(photoAspectRatios, 
videoAspectRatios, videoPreviewAspectRatios);
    +
    +        var aspectObj = allAspectRatios.reduce(function (map, item) {
    +            if (!map[item]) {
    +                map[item] = 0;
    +            }
    +            map[item]++;
    +            return map;
    +        }, {});
    +
    +        return Object.keys(aspectObj).filter(function (k) {
    +            return aspectObj[k] === 3;
    --- End diff --
    
    You are restricting aspect ratios to those which only supported by __all__ 
capture modes (picture, video and videoPreview). Not sure if it is by intent.
    
    Probably it makes sense to respect __current__ capture mode and return 
aspect ratios for this capture mode. Potentially there could be a situation 
when device's camera support a different aspect ratios for video and image 
capture.
    
    For example video is captured only in 640*480, which is equal to 1.3 aspect 
ratio, and for image there could be a number of other aspect ratios). This 
logic will return only '1.3' or even an empty set.


> [Windows] Camera picture has black/green stripes that crop image
> ----------------------------------------------------------------
>
>                 Key: CB-8879
>                 URL: https://issues.apache.org/jira/browse/CB-8879
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin Camera
>    Affects Versions: 3.6.0
>         Environment: windows
>            Reporter: Olivier VERMONT
>            Assignee: Murat Sutunc
>              Labels: camera, resolution, stripes, windows-phone-81
>
> When a photo is taken with Windows Phone 8.1 device Nokia Lumia 735, the 
> picture returned shows black or green stripes on the sides and is out of 
> shape. It seems this is related to photo resolution but I can't get it fixed 
> in JS.
> It seems to be quite a common problem with the Media Capture API and people 
> solved issue in C# here is an illustration : 
> http://stackoverflow.com/questions/23709547/captured-photo-with-stripes
> Here is what I tried without success :
> var resolutions = 
> capture.videoDeviceController.getAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType.photo);
> var maxWidth = 0;
> var maxResolution = null;
> for(var i=0; i<resolutions.length; i++){
>       //console.log(resolutions[i].width);
>       if(resolutions[i].width > maxResolution){
>               maxWidth = resolutions[i].width;
>               maxResolution = resolutions[i];
>       }
> }                                     
> capture.videoDeviceController.setMediaStreamPropertiesAsync(Windows.Media.Capture.MediaStreamType.photo,
>  maxResolution)
> Am I missing something ?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to