1) changes on the definitely written analysis: it only takes care about locations...
[IRC.git] / Robust / src / Tests / ssJava / mp3decoder / Decoder.java
index 944868477e6c7bb3a0a154121b9436ff5ac92020..12287b1c94b781f71e4386edcfaa535aa79355d1 100644 (file)
@@ -127,6 +127,35 @@ public class Decoder implements DecoderErrors {
   // if (filter2 != null)\r
   // filter2.setEQ(factors);\r
   // }\r
+  @LATTICE("THIS<VAR,THISLOC=THIS,VAR*")\r
+  public void init( @LOC("THIS,Decoder.H") Header header) {\r
+    @LOC("VAR") float scalefactor = 32700.0f;\r
+\r
+    @LOC("THIS,Decoder.PARAM") int mode = header.mode();\r
+    @LOC("THIS,Decoder.PARAM") int layer = header.layer();\r
+    @LOC("THIS,Decoder.PARAM") int channels = mode == Header.SINGLE_CHANNEL ? 1 : 2;\r
+\r
+    // set up output buffer if not set up by client.\r
+    // if (output == null)\r
+    // output = new SampleBuffer(header.frequency(), channels);\r
+    SampleBufferWrapper.init(header.frequency(), channels);\r
+\r
+    @LOC("THIS,Decoder.FACTORS") float[] factors = equalizer.getBandFactors();\r
+    @LOC("THIS,Decoder.FILTER") SynthesisFilter filter1 =\r
+        new SynthesisFilter(0, scalefactor, factors);\r
+\r
+    // REVIEW: allow mono output for stereo\r
+    @LOC("THIS,Decoder.FILTER") SynthesisFilter filter2 = null;\r
+    if (channels == 2) {\r
+      filter2 = new SynthesisFilter(1, scalefactor, factors);\r
+    }\r
+\r
+    outputChannels = channels;\r
+    outputFrequency = header.frequency();\r
+\r
+    l3decoder = new LayerIIIDecoder(header,filter1, filter2, OutputChannels.BOTH_CHANNELS);\r
+\r
+  }\r
 \r
   /**\r
    * Decodes one frame from an MPEG audio bitstream.\r
@@ -141,36 +170,6 @@ public class Decoder implements DecoderErrors {
   @LATTICE("THIS<VAR,THISLOC=THIS,VAR*")\r
   public void decodeFrame(@LOC("THIS,Decoder.H") Header header) throws DecoderException {\r
 \r
-    if (!initialized) {\r
-      @LOC("VAR") float scalefactor = 32700.0f;\r
-\r
-      @LOC("THIS,Decoder.PARAM") int mode = header.mode();\r
-      @LOC("THIS,Decoder.PARAM") int layer = header.layer();\r
-      @LOC("THIS,Decoder.PARAM") int channels = mode == Header.SINGLE_CHANNEL ? 1 : 2;\r
-\r
-      // set up output buffer if not set up by client.\r
-      // if (output == null)\r
-      // output = new SampleBuffer(header.frequency(), channels);\r
-      SampleBufferWrapper.init(header.frequency(), channels);\r
-\r
-      @LOC("THIS,Decoder.FACTORS") float[] factors = equalizer.getBandFactors();\r
-      @LOC("THIS,Decoder.FILTER") SynthesisFilter filter1 =\r
-          new SynthesisFilter(0, scalefactor, factors);\r
-\r
-      // REVIEW: allow mono output for stereo\r
-      @LOC("THIS,Decoder.FILTER") SynthesisFilter filter2 = null;\r
-      if (channels == 2) {\r
-        filter2 = new SynthesisFilter(1, scalefactor, factors);\r
-      }\r
-\r
-      outputChannels = channels;\r
-      outputFrequency = header.frequency();\r
-\r
-      l3decoder = new LayerIIIDecoder(filter1, filter2, OutputChannels.BOTH_CHANNELS);\r
-\r
-      initialized = true;\r
-    }\r
-\r
     SampleBufferWrapper.clear_buffer();\r
     l3decoder.decode(header);\r
     // SampleBufferWrapper.getOutput().write_buffer(1);\r