| OLD | NEW |
| 1 <html> | 1 <html> |
| 2 <head> | 2 <head> |
| 3 <script type="text/javascript" src="webrtc_test_utilities.js"></script> | 3 <script type="text/javascript" src="webrtc_test_utilities.js"></script> |
| 4 <script type="text/javascript"> | 4 <script type="text/javascript"> |
| 5 $ = function(id) { | 5 $ = function(id) { |
| 6 return document.getElementById(id); | 6 return document.getElementById(id); |
| 7 }; | 7 }; |
| 8 | 8 |
| 9 setAllEventsOccuredHandler(function() { | 9 setAllEventsOccuredHandler(function() { |
| 10 reportTestSuccess(); | 10 reportTestSuccess(); |
| (...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 605 assertNotEquals(settings.deviceId, 'default'); | 605 assertNotEquals(settings.deviceId, 'default'); |
| 606 assertTrue(settings.echoCancellation); | 606 assertTrue(settings.echoCancellation); |
| 607 stream.getAudioTracks()[0].stop(); | 607 stream.getAudioTracks()[0].stop(); |
| 608 reportTestSuccess(); | 608 reportTestSuccess(); |
| 609 }) | 609 }) |
| 610 }) | 610 }) |
| 611 .catch(e => { | 611 .catch(e => { |
| 612 failTest("Unexpected error: " + e) | 612 failTest("Unexpected error: " + e) |
| 613 }); | 613 }); |
| 614 } | 614 } |
| 615 | |
| 616 function srcObjectAddVideoTrack() { | |
| 617 var video = document.createElement('video'); | |
| 618 video.autoplay = true; | |
| 619 assertEquals(video.srcObject, null); | |
| 620 navigator.mediaDevices.getUserMedia({audio: true, video: true}) | |
| 621 .then(stream => { | |
| 622 video.onplaying = function() { | |
| 623 video.onplaying = null; | |
| 624 video.onloadstart = function() { | |
| 625 failTest("loadstart should not be called"); | |
| 626 } | |
| 627 | |
| 628 video.onresize = function() { | |
| 629 assertNotEquals(video.srcObject, null); | |
| 630 assertTrue(video.videoHeight > 0); | |
| 631 assertTrue(video.videoWidth > 0); | |
| 632 reportTestSuccess(); | |
| 633 } | |
| 634 | |
| 635 assertNotEquals(video.srcObject, null); | |
| 636 assertEquals(video.videoWidth, 0); | |
| 637 assertEquals(video.videoHeight, 0); | |
| 638 video.srcObject.addTrack(stream.getVideoTracks()[0]); | |
| 639 } | |
| 640 video.srcObject = new MediaStream(stream.getAudioTracks()); | |
| 641 }) | |
| 642 .catch(e => { | |
| 643 failTest("Unexpected error: " + e) | |
| 644 }); | |
| 645 } | |
| 646 | |
| 647 function srcObjectRemoveVideoTrack() { | |
| 648 var video = document.createElement('video'); | |
| 649 video.autoplay = true; | |
| 650 assertEquals(video.srcObject, null); | |
| 651 navigator.mediaDevices.getUserMedia({audio: true, video: true}) | |
| 652 .then(stream => { | |
| 653 video.onplaying = function() { | |
| 654 video.onplaying = null; | |
| 655 video.onloadstart = function() { | |
| 656 failTest("loadstart should not be called"); | |
| 657 } | |
| 658 | |
| 659 video.onresize = function() { | |
| 660 assertNotEquals(video.srcObject, null); | |
| 661 assertEquals(0, video.videoHeight); | |
| 662 assertEquals(0, video.videoWidth); | |
| 663 reportTestSuccess(); | |
| 664 } | |
| 665 | |
| 666 assertNotEquals(video.srcObject, null); | |
| 667 assertTrue(video.videoWidth > 0); | |
| 668 assertTrue(video.videoHeight > 0); | |
| 669 stream.removeTrack(stream.getVideoTracks()[0]); | |
| 670 } | |
| 671 video.srcObject = stream; | |
| 672 }) | |
| 673 .catch(e => { | |
| 674 failTest("Unexpected error: " + e) | |
| 675 }); | |
| 676 } | |
| 677 | |
| 678 function srcObjectRemoveFirstOfTwoVideoTracks() { | |
| 679 var canvas = document.createElement('canvas'); | |
| 680 var canvas_stream = canvas.captureStream(); | |
| 681 var canvas_width = canvas_stream.getVideoTracks()[0].getSettings().width; | |
| 682 var canvas_height = canvas_stream.getVideoTracks()[0].getSettings().height; | |
| 683 assertTrue(canvas_width > 1); | |
| 684 assertTrue(canvas_height > 1); | |
| 685 | |
| 686 // Paint something on the canvas, so that it produces frames. | |
| 687 var ctx = canvas.getContext("2d"); | |
| 688 ctx.moveTo(0,0); | |
| 689 ctx.lineTo(200,100); | |
| 690 ctx.stroke(); | |
| 691 | |
| 692 var video = document.createElement('video'); | |
| 693 video.autoplay = true; | |
| 694 assertEquals(video.srcObject, null); | |
| 695 var gum_width = canvas_width + 1; | |
| 696 var gum_height = canvas_height + 1; | |
| 697 navigator.mediaDevices.getUserMedia({ | |
| 698 video: { | |
| 699 width: {exact: gum_width}, | |
| 700 height: {exact: gum_height} | |
| 701 } | |
| 702 }).then(gum_stream => { | |
| 703 var gum_settings = gum_stream.getVideoTracks()[0].getSettings(); | |
| 704 assertEquals(gum_width, gum_settings.width) | |
| 705 assertEquals(gum_height, gum_settings.height) | |
| 706 var big_stream = new MediaStream(); | |
| 707 big_stream.addTrack(canvas_stream.getVideoTracks()[0]); | |
| 708 big_stream.addTrack(gum_stream.getVideoTracks()[0]); | |
| 709 video.onprogress = function() { | |
| 710 assertEquals(canvas_width, video.videoWidth); | |
| 711 assertEquals(canvas_height, video.videoHeight); | |
| 712 assertNotEquals(video.videoWidth, gum_width) | |
| 713 assertNotEquals(video.videoHeight, gum_height) | |
| 714 video.onprogress = function() { | |
| 715 assertEquals(gum_width, video.videoWidth); | |
| 716 assertEquals(gum_height, video.videoHeight); | |
| 717 assertNotEquals(video.videoWidth, canvas_width) | |
| 718 assertNotEquals(video.videoHeight, canvas_height) | |
| 719 reportTestSuccess(); | |
| 720 } | |
| 721 big_stream.removeTrack(big_stream.getVideoTracks()[0]); | |
| 722 } | |
| 723 video.srcObject = big_stream; | |
| 724 }) | |
| 725 .catch(e => { | |
| 726 failTest("Unexpected error: " + e) | |
| 727 }); | |
| 728 } | |
| 729 | |
| 730 function srcObjectReassignSameObject() { | |
| 731 var video = document.createElement('video'); | |
| 732 video.autoplay = true; | |
| 733 assertEquals(video.srcObject, null); | |
| 734 navigator.mediaDevices.getUserMedia({audio: true, video: true}) | |
| 735 .then(stream => { | |
| 736 video.onplaying = function() { | |
| 737 video.onplaying = null; | |
| 738 video.onloadstart = function() { | |
| 739 reportTestSuccess(); | |
| 740 } | |
| 741 assertNotEquals(video.srcObject, null); | |
| 742 assertTrue(video.videoWidth > 0); | |
| 743 assertTrue(video.videoHeight > 0); | |
| 744 // Reassigning the same object should trigger the load algorithm. | |
| 745 video.srcObject = video.srcObject; | |
| 746 } | |
| 747 video.srcObject = stream; | |
| 748 }) | |
| 749 .catch(e => { | |
| 750 failTest("Unexpected error: " + e) | |
| 751 }); | |
| 752 } | |
| 753 </script> | 615 </script> |
| 754 </head> | 616 </head> |
| 755 <body> | 617 <body> |
| 756 <table border="0"> | 618 <table border="0"> |
| 757 <!-- Canvases are named after their corresponding video elements. --> | 619 <!-- Canvases are named after their corresponding video elements. --> |
| 758 <tr> | 620 <tr> |
| 759 <td><video id="local-view-1" width="320" height="240" autoplay | 621 <td><video id="local-view-1" width="320" height="240" autoplay |
| 760 style="display:none"></video></td> | 622 style="display:none"></video></td> |
| 761 <td><canvas id="local-view-1-canvas" width="320" height="240" | 623 <td><canvas id="local-view-1-canvas" width="320" height="240" |
| 762 style="display:none"></canvas></td> | 624 style="display:none"></canvas></td> |
| 763 </tr> | 625 </tr> |
| 764 <tr> | 626 <tr> |
| 765 <td><video id="local-view-2" width="320" height="240" autoplay | 627 <td><video id="local-view-2" width="320" height="240" autoplay |
| 766 style="display:none"></video></td> | 628 style="display:none"></video></td> |
| 767 <td><canvas id="local-view-2-canvas" width="320" height="240" | 629 <td><canvas id="local-view-2-canvas" width="320" height="240" |
| 768 style="display:none"></canvas></td> | 630 style="display:none"></canvas></td> |
| 769 </tr> | 631 </tr> |
| 770 </table> | 632 </table> |
| 771 </body> | 633 </body> |
| 772 </html> | 634 </html> |
| OLD | NEW |