MEDIA_ENGINE_IMPL_MAIN_R0: MEDIA_ENGINE_IMPL_MAIN_R0-28.04.2009-fixed-test.patch

File MEDIA_ENGINE_IMPL_MAIN_R0-28.04.2009-fixed-test.patch, 8.5 KB (added by nenko, 16 years ago)
  • src/test/java/org/sophie2/main/media/fobs/TestAudioVideo.java

    ### Eclipse Workspace Patch 1.0
    #P org.sophie2.main.media.fobs
     
    11package org.sophie2.main.media.fobs; 
    22 
     3import java.io.File; 
     4import java.util.TimerTask; 
     5 
     6import org.junit.Test; 
     7import org.sophie2.base.commons.util.ImmImage; 
     8import org.sophie2.base.media.engines.MediaEngine; 
     9import org.sophie2.base.media.engines.VideoEngine; 
     10import org.sophie2.base.media.imms.MediaState; 
     11import org.sophie2.base.media.interfaces.BinDataSource; 
    312import org.sophie2.core.testing.UnitTestBase; 
    413 
    514/** 
    615 * unit test for JMFAudioEngine and JMFVideoEngine 
    716 *  
    8  * @author Alex 
     17 * @author nenko 
    918 */ 
    1019public class TestAudioVideo extends UnitTestBase { 
    1120 
    12 //      private VideoEngine videoEngine; 
    13 //      private VideoSource videoHandler; 
    14 //      private AudioEngine audioEngine; 
    15 //      private AudioSource audioHandler; 
    16 //      private TimerTask task; 
    17 //      private Timer timer; 
    18 // 
    19 //      @Override 
    20 //      protected void setUp() throws Exception { 
    21 // 
    22 //              this.videoEngine = new JMFVideoEngine(); 
    23 // 
    24 //              this.audioEngine = new JMFAudioEngine(); 
    25 // 
    26 //              this.timer = new Timer(); 
    27 //      } 
    28 // 
    29 //      /** 
    30 //       * @throws InterruptedException 
    31 //       *  
    32 //       *             This tests playing, stopping, registering, unregistering, 
    33 //       *             seeking, getting position and duration and grabbing a frame 
    34 //       *             of a VideoHandler 
    35 //       */ 
    36 //      @Test 
    37 //      public void testVideoEngine() throws InterruptedException { 
    38 //              this.videoHandler = new VideoSource() { 
    39 // 
    40 //                      @Override 
    41 //                      public InputStream openStream() { 
    42 //                              return TestAudioVideo.class.getResourceAsStream("/demo.avi"); 
    43 //                      } 
    44 // 
    45 //                      @Override 
    46 //                      public String getFileExtension() { 
    47 //                              return "demo.avi"; 
    48 //                      } 
    49 // 
    50 //              }; 
    51 // 
    52 //              assertTrue(this.videoEngine.registerHandler(this.videoHandler)); 
    53 //              this.videoEngine.play(this.videoHandler); 
    54 // 
    55 //              this.task = new ScheduledVideoTask(this.videoEngine, this.videoHandler); 
    56 //              this.timer.schedule(this.task, 2000); 
    57 //              Thread.sleep(3000); 
    58 //              assertNotNull(((ScheduledVideoTask) this.task).getFrame()); 
    59 //              assertTrue(this.videoEngine.isPlaying(this.videoHandler)); 
    60 //              assertNotSame(this.videoEngine.getPosition(this.videoHandler), 0.0d); 
    61 //              assertNotSame(this.videoEngine.getDuration(this.videoHandler), 0.0d); 
    62 // 
    63 //              assertTrue(this.videoEngine.seek(this.videoHandler, 1.0d)); 
    64 //              assertNotNull(this.videoEngine.grabFrame(this.videoHandler)); 
    65 // 
    66 //              this.videoEngine.stop(this.videoHandler); 
    67 //              assertFalse(this.videoEngine.isPlaying(this.videoHandler)); 
    68 // 
    69 //              assertTrue(this.videoEngine.unregisterHandler(this.videoHandler)); 
    70 //              assertFalse(this.videoEngine.unregisterHandler(this.videoHandler)); 
    71 //              assertFalse(this.videoEngine.isPlaying(this.videoHandler)); 
    72 // 
    73 //      } 
    74 // 
    75 //      /** 
    76 //       * @throws InterruptedException 
    77 //       *  
    78 //       *             This tests playing, stopping, registering, unregistering, 
    79 //       *             seeking, getting position and duration of an AudioHandler 
    80 //       */ 
    81 //      @Test 
    82 //      public void testAudioEngine() throws InterruptedException { 
    83 //              this.audioHandler = new AudioSource() { 
    84 // 
    85 //                      @Override 
    86 //                      public InputStream openStream() { 
    87 //                              return TestAudioVideo.class 
    88 //                                              .getResourceAsStream("/11k16bitpcm.wav"); 
    89 //                      } 
    90 // 
    91 //                      @Override 
    92 //                      public String getFileExtension() { 
    93 //                              return ".wav"; 
    94 //                      } 
    95 //              }; 
    96 // 
    97 //              assertTrue(this.audioEngine.registerHandler(this.audioHandler)); 
    98 //              this.audioEngine.play(this.audioHandler); 
    99 // 
    100 //              this.timer.schedule(new ScheduledAudioTask(this.audioEngine, 
    101 //                              this.audioHandler), 2000); 
    102 //              Thread.sleep(3000); 
    103 //              assertFalse(this.audioEngine.isPlaying(this.audioHandler)); 
    104 //              assertNotSame(this.audioEngine.getPosition(this.audioHandler), 0.0d); 
    105 //              assertNotSame(this.audioEngine.getDuration(this.audioHandler), 0.0d); 
    106 // 
    107 //              assertTrue(this.audioEngine.seek(this.audioHandler, 0.5d)); 
    108 //              assertTrue(this.audioEngine.play(this.audioHandler)); 
    109 // 
    110 //              assertTrue(this.audioEngine.unregisterHandler(this.audioHandler)); 
    111 //              assertFalse(this.audioEngine.unregisterHandler(this.audioHandler)); 
    112 //      } 
    113 //} 
    114 // 
    115 ///** 
    116 // * @author Astea 
    117 // *  
    118 // *         Used for scheduling a task connected to video 
    119 // */ 
    120 //class ScheduledVideoTask extends TimerTask { 
    121 // 
    122 //      private VideoEngine innerEngine; 
    123 //      private VideoSource innerHandler; 
    124 //      private BufferedImage frame; 
    125 // 
    126 //      /** 
    127 //       * @param aEngine 
    128 //       *            VideoEngine on which a scheduled task is performed 
    129 //       * @param aHandler 
    130 //       *            VideoHandler on which a scheduled task is performed 
    131 //       */ 
    132 //      public ScheduledVideoTask(final VideoEngine aEngine, 
    133 //                      final VideoSource aHandler) { 
    134 //              super(); 
    135 // 
    136 //              this.innerEngine = aEngine; 
    137 //              this.innerHandler = aHandler; 
    138 //      } 
    139 // 
    140 //      @Override 
    141 //      public void run() { 
    142 //              this.frame = this.innerEngine.grabFrame(this.innerHandler); 
    143 //      } 
    144 // 
    145 //      /** 
    146 //       * @return returns a frame of innerHandler 
    147 //       */ 
    148 //      public BufferedImage getFrame() { 
    149 //              return this.frame; 
    150 //      } 
    151 //} 
    152 // 
    153 ///** 
    154 // * @author Astea 
    155 // *  
    156 // *         Used for scheduling a task connected to audio 
    157 // */ 
    158 //class ScheduledAudioTask extends TimerTask { 
    159 // 
    160 //      private AudioEngine innerEngine; 
    161 //      private AudioSource innerHandler; 
    162 // 
    163 //      /** 
    164 //       * @param aEngine 
    165 //       *            AudioEngine on which a scheduled task is performed 
    166 //       * @param aHandler 
    167 //       *            AudioHandler on which a scheduled task is performed 
    168 //       */ 
    169 //      public ScheduledAudioTask(final AudioEngine aEngine, 
    170 //                      final AudioSource aHandler) { 
    171 //              super(); 
    172 // 
    173 //              this.innerEngine = aEngine; 
    174 //              this.innerHandler = aHandler; 
    175 //      } 
    176 // 
    177 //      @Override 
    178 //      public void run() { 
    179 //              this.innerEngine.stop(this.innerHandler); 
    180 //      } 
     21        private VideoEngine videoEngine; 
     22 
     23        @Override 
     24        protected void setUp() throws Exception { 
     25                this.videoEngine = new JMFVideoEngine(); 
     26        } 
     27 
     28        /** 
     29         * Tests playing, stopping, registering, unregistering and grabbing a frame 
     30         * from the VideoEngine 
     31         */ 
     32        @Test 
     33        public void testVideoEngine() { 
     34                String fileName = "/demo.avi"; 
     35                testMediaEngine(this.videoEngine, fileName); 
     36 
     37                assertTrue(this.videoEngine.request(fileName, new MediaState(1, -1, 
     38                                true))); 
     39                try { 
     40                        Thread.sleep(1000); 
     41                } catch (InterruptedException e) { 
     42                        fail(); 
     43                } 
     44                assertNotNull(this.videoEngine.getCurrentFrame(fileName)); 
     45 
     46                assertTrue(this.videoEngine.unregisterMediaElement(fileName)); 
     47                assertFalse(this.videoEngine.unregisterMediaElement(fileName)); 
     48        } 
     49 
     50        /** 
     51         * Tests playing, stopping, registering, unregistering from the AudioEngine 
     52         */ 
     53        @Test 
     54        public void testAudioEngine() { 
     55                testMediaEngine(new JMFAudioEngine(), "/11k16bitpcm.wav"); 
     56        } 
     57 
     58        private void testMediaEngine(MediaEngine engine, String fileName) { 
     59                File file = new File(TestAudioVideo.class.getResource(fileName) 
     60                                .getFile()); 
     61                try { 
     62                        assertTrue(engine.registerMediaElement(fileName, new BinDataSource( 
     63                                        file))); 
     64                        assertFalse(engine.registerMediaElement(fileName, 
     65                                        new BinDataSource(file))); 
     66                } catch (Exception e) { 
     67                        fail(); 
     68                } 
     69 
     70                assertTrue(engine.request(fileName, new MediaState(1, -1, false))); 
     71                assertFalse(engine.getCurrentState(fileName).isPlaying() == true); 
     72                assertTrue(engine.getCurrentState(fileName).isPlaying() == false); 
     73                assertTrue(engine.getCurrentState(fileName).getVolume() == 1); 
     74        } 
     75} 
     76 
     77/** 
     78 * @author nenko 
     79 *  
     80 *         Used for scheduling a task connected to video 
     81 */ 
     82class ScheduledVideoTask extends TimerTask { 
     83 
     84        private VideoEngine innerEngine; 
     85        private String mediaId; 
     86        private ImmImage frame; 
     87 
     88        /** 
     89         * @param aEngine 
     90         *            VideoEngine on which a scheduled task is performed 
     91         * @param mediaId 
     92         *            VideoHandler on which a scheduled task is performed 
     93         */ 
     94        public ScheduledVideoTask(final VideoEngine aEngine, final String mediaId) { 
     95                super(); 
     96 
     97                this.innerEngine = aEngine; 
     98                this.mediaId = mediaId; 
     99        } 
     100 
     101        @Override 
     102        public void run() { 
     103                this.frame = this.innerEngine.getCurrentFrame(this.mediaId); 
     104        } 
     105 
     106        /** 
     107         * @return returns a frame of innerHandler 
     108         */ 
     109        public ImmImage getFrame() { 
     110                return this.frame; 
     111        } 
    181112}