(ActionEvent e)
| 684 | Object[] listener; |
| 685 | |
| 686 | @Override |
| 687 | public void actionPerformed(ActionEvent e) { |
| 688 | BufferedImage img = HTML5Video.getImage(jsvideo, Integer.MIN_VALUE); |
| 689 | byte[] b = ((DataBufferByte) img.getRaster().getDataBuffer()).getData(); |
| 690 | if (buffer == null) { |
| 691 | buffer = new byte[img.getWidth() * img.getHeight() * 4]; |
| 692 | } |
| 693 | System.arraycopy(b, 0, buffer, 0, b.length); |
| 694 | if (buffer0 == null) { |
| 695 | buffer0 = new byte[img.getWidth() * img.getHeight() * 4]; |
| 696 | System.arraycopy(buffer, 0, buffer0, 0, buffer.length); |
| 697 | } else { |
| 698 | if (Arrays.equals(buffer, buffer0)) { |
| 699 | // time 0 0.1 0.24 0.44 |
| 700 | // ds 0.1 0.14 0.2 |
| 701 | if (expanding) { |
| 702 | ds *= 1.4; |
| 703 | } |
| 704 | } else if (ds < 0 || Math.abs(ds) >= tolerance) { |
| 705 | expanding = false; |
| 706 | ds /= -2; |
| 707 | buffer0 = buffer; |
| 708 | buffer = null; |
| 709 | } else { |
| 710 | buffer = buffer0 = null; |
| 711 | frameDur = curTime - curTime0; |
| 712 | curTime0 = curTime; |
| 713 | results[pt++] = frameDur; |
| 714 | if (pt < results.length) { |
| 715 | ds = frameDur / 2; |
| 716 | } else { |
| 717 | HTML5Video.removeActionListener(jsvideo, listener); |
| 718 | JOptionPane.showMessageDialog(null, "frame Duration is " + Arrays.toString(results)); |
| 719 | rc = null; |
| 720 | return; |
| 721 | } |
| 722 | } |
| 723 | } |
| 724 | curTime += ds; |
| 725 | HTML5Video.setCurrentTime(jsvideo, curTime); |
| 726 | |
| 727 | } |
| 728 | |
| 729 | } |
| 730 | // Event Name Fired When |
nothing calls this directly
no test coverage detected