From 61739147cbf730f421a420ae1575b550b1a39aa6 Mon Sep 17 00:00:00 2001 From: Christoph Oberhofer Date: Sun, 25 Jan 2015 21:07:48 +0100 Subject: [PATCH] Updated quagga --- examples/js/quagga.js | 75 ++++++++++++++++++++++++++++--------------- index.md | 7 +++- 2 files changed, 56 insertions(+), 26 deletions(-) diff --git a/examples/js/quagga.js b/examples/js/quagga.js index 76a435e..65aab97 100644 --- a/examples/js/quagga.js +++ b/examples/js/quagga.js @@ -6810,7 +6810,12 @@ define('html_utils',[], function() { define('config',[],function(){ var config = { inputStream: { name: "Live", - type: "LiveStream" + type: "LiveStream", + constraints: { + width: 640, + height: 480, + facing: "environment" // or user + } }, tracking: false, debug: false, @@ -6943,7 +6948,7 @@ define('events',[],function() { /* jshint undef: true, unused: true, browser:true, devel: true */ /* global define, MediaStreamTrack */ -define('camera_access',[],function() { +define('camera_access',["html_utils"], function(HtmlUtils) { var streamRef; @@ -6996,43 +7001,63 @@ define('camera_access',[],function() { }); } - /** - * Requests the back-facing camera of the user. The callback is called - * whenever the stream is ready to be consumed, or if an error occures. - * @param {Object} video - * @param {Object} callback - */ - function request(video, callback) { + function normalizeConstraints(config, cb) { + var constraints = { + audio: false, + video: true + }, + videoConstraints = HtmlUtils.mergeObjects({ + width: 640, + height: 480, + facing: "environment" + }, config); + if ( typeof MediaStreamTrack.getSources !== 'undefined') { MediaStreamTrack.getSources(function(sourceInfos) { var videoSourceId; for (var i = 0; i != sourceInfos.length; ++i) { var sourceInfo = sourceInfos[i]; - if (sourceInfo.kind == "video" && sourceInfo.facing == "environment") { + if (sourceInfo.kind == "video" && sourceInfo.facing == videoConstraints.facing) { videoSourceId = sourceInfo.id; } } - var constraints = { - audio : false, - video : { - optional : [{ - sourceId : videoSourceId - }] - } + constraints.video = { + mandatory: { + minWidth: videoConstraints.width, + minHeight: videoConstraints.height + }, + optional: [{ + sourceId: videoSourceId + }] }; - initCamera(constraints, video, callback); + return cb(constraints); }); } else { - initCamera({ - video : true, - audio : false - }, video, callback); + constraints.video = { + mediaSource: "camera", + width: { min: videoConstraints.width, max: videoConstraints.width }, + height: { min: videoConstraints.height, max: videoConstraints.height }, + require: ["width", "height"] + }; + return cb(constraints); } } + /** + * Requests the back-facing camera of the user. The callback is called + * whenever the stream is ready to be consumed, or if an error occures. + * @param {Object} video + * @param {Object} callback + */ + function request(video, videoConstraints, callback) { + normalizeConstraints(videoConstraints, function(constraints) { + initCamera(constraints, video, callback); + }); + } + return { - request : function(video, callback) { - request(video, callback); + request : function(video, constraints, callback) { + request(video, constraints, callback); }, release : function() { var tracks = streamRef && streamRef.getVideoTracks(); @@ -8232,7 +8257,7 @@ function(Code128Reader, EANReader, InputStream, ImageWrapper, BarcodeLocator, Ba $viewport.appendChild(video); } _inputStream = InputStream.createLiveStream(video); - CameraAccess.request(video, function(err) { + CameraAccess.request(video, _config.inputStream.constraints, function(err) { if (!err) { _inputStream.trigger("canrecord"); } else { diff --git a/index.md b/index.md index 69142b0..6a7143a 100644 --- a/index.md +++ b/index.md @@ -173,7 +173,12 @@ The default `config` object is set as followed: ```javascript { inputStream: { name: "Live", - type: "LiveStream" + type: "LiveStream", + constraints: { + width: 640, + height: 480, + facing: "environment" + } }, tracking: false, debug: false,