changes: taking decoder initilization out from ssjava loop since it is called only...
authoryeom <yeom>
Wed, 13 Jul 2011 18:25:57 +0000 (18:25 +0000)
committeryeom <yeom>
Wed, 13 Jul 2011 18:25:57 +0000 (18:25 +0000)
Robust/src/Tests/ssJava/mp3decoder/Decoder.java
Robust/src/Tests/ssJava/mp3decoder/Player.java

index 19b2050717a519f9d44ac007f2a67c60bc7cc0a5..bcf918bafb884aa6d74688586a0c13ec080d5d15 100644 (file)
@@ -130,24 +130,25 @@ public class Decoder implements DecoderErrors
         * @return A SampleBuffer containing the decoded samples.\r
         */\r
        public Obuffer decodeFrame(Header header, Bitstream stream)\r
-               throws DecoderException\r
+       throws DecoderException\r
        {\r
-               if (!initialized)\r
-               {\r
-                   initialize(header,stream);\r
-               }\r
-               \r
-               int layer = header.layer();\r
-               \r
-               output.clear_buffer();\r
-               \r
-               FrameDecoder decoder = retrieveDecoder(header, stream, layer);\r
-               \r
-               decoder.decodeFrame();\r
-                               \r
-               output.write_buffer(1);\r
-               \r
-               return output;  \r
+         // throw decoder initialization out of ssjava loop since it is invoked once\r
+         //            if (!initialized)\r
+         //            {\r
+         //                initialize(header,stream);\r
+         //            }\r
+\r
+         int layer = header.layer();\r
+\r
+         output.clear_buffer();\r
+\r
+         FrameDecoder decoder = retrieveDecoder(header, stream, layer);\r
+\r
+         decoder.decodeFrame();\r
+\r
+         output.write_buffer(1);\r
+\r
+         return output;        \r
        }\r
        \r
        /**\r
index 90c4fc2c1154c43be8844ecde40e7e7487422714..b0f2356088df75a59dfb3aa96e022c5d92812c0e 100644 (file)
@@ -67,6 +67,8 @@ public class Player
 \r
        private int                     lastPosition = 0;\r
        \r
+       private Header header;\r
+       \r
        /**\r
         * Creates a new <code>Player</code> instance. \r
         */\r
@@ -80,6 +82,11 @@ public class Player
        {\r
                bitstream = new Bitstream(stream);              \r
                decoder = new Decoder();\r
+               \r
+               // decoder initialization\r
+               // taking out from ssjava loop \r
+               header = bitstream.readFrame();  \r
+               decoder.initialize(header, bitstream);\r
                                \r
 //             if (device!=null)\r
 //             {               \r
@@ -111,7 +118,7 @@ public class Player
        {\r
                boolean ret = true;\r
                \r
-           SSJAVA:\r
+            SSJAVA:\r
                while (frames-- > 0 && ret)\r
                {\r
                        ret = decodeFrame();                    \r
@@ -207,13 +214,13 @@ public class Player
                        //if (out==null)\r
                        //      return false;\r
 \r
-                       Header h = bitstream.readFrame();       \r
-                       \r
-                       if (h==null)\r
-                               return false;\r
+//                     Header h = bitstream.readFrame();       \r
+//                     \r
+//                     if (h==null)\r
+//                             return false;\r
                                \r
                        // sample buffer set when decoder constructed\r
-                       SampleBuffer output = (SampleBuffer)decoder.decodeFrame(h, bitstream);\r
+                       SampleBuffer output = (SampleBuffer)decoder.decodeFrame(header, bitstream);\r
                                                                                                                                                                                                                                                                                                        \r
                        //synchronized (this)\r
                        //{\r