From: Luis F. S. M. <lui...@us...> - 2006-08-21 05:49:52
|
Update of /cvsroot/dirac/soc_javadec_luis/decoder In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv18806/decoder Modified Files: ByteIO.java Decoder.java Log Message: license fixed, doc target for the build.xml file added, and more minor changes Index: Decoder.java =================================================================== RCS file: /cvsroot/dirac/soc_javadec_luis/decoder/Decoder.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Decoder.java 18 Aug 2006 09:18:33 -0000 1.11 --- Decoder.java 21 Aug 2006 05:49:48 -0000 1.12 *************** *** 1,4 **** /* ! * This file is part of Landell. * * Landell is free software; you can redistribute it and/or modify --- 1,6 ---- /* ! * This file is part of Landell, a Dirac decoder written in Java. ! * ! * Copyright (C) 2006 LuÃs Felipe Strano Moraes * * Landell is free software; you can redistribute it and/or modify *************** *** 78,81 **** --- 80,85 ---- /** + * Decodes the next frame (in display order) and returns it to the caller + * * @return FIXME: must return the actual image, not void */ *************** *** 102,106 **** } ! // FIXME: is the following if really necessary ? if (is_picture()) { Debug.foundFrame(); --- 106,110 ---- } ! // FIXME: is the following 'if' really necessary ? if (is_picture()) { Debug.foundFrame(); *************** *** 1665,1677 **** } ! public void skipFrame () { long bytes_left = this.frame.next_offset; try { ! this.input.reset(); ! while (bytes_left > 0) { long bytes_skipped = this.input.skip(bytes_left); bytes_left -= bytes_skipped; } } --- 1669,1687 ---- } ! /** ! * Skips to the next frame, as pointed by the last next frame offset value read ! * ! */ ! private void skipFrame () { long bytes_left = this.frame.next_offset; + long total_skipped = 0; try { ! this.input.reset(); // goes back to the start of the current frame ! while (total_skipped != this.frame.next_offset) { long bytes_skipped = this.input.skip(bytes_left); bytes_left -= bytes_skipped; + total_skipped += bytes_skipped; } } *************** *** 1679,1682 **** --- 1689,1694 ---- Debug.printError("Problem whilst skipping to the next frame" + e); } + + Debug.printControl("Skipped " + total_skipped + " bytes"); } } Index: ByteIO.java =================================================================== RCS file: /cvsroot/dirac/soc_javadec_luis/decoder/ByteIO.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ByteIO.java 18 Aug 2006 09:18:33 -0000 1.5 --- ByteIO.java 21 Aug 2006 05:49:48 -0000 1.6 *************** *** 1,4 **** /* ! * This file is part of Landell. * * Landell is free software; you can redistribute it and/or modify --- 1,6 ---- /* ! * This file is part of Landell, a Dirac decoder written in Java. ! * ! * Copyright (C) 2006 LuÃs Felipe Strano Moraes * * Landell is free software; you can redistribute it and/or modify *************** *** 44,48 **** static BufferedInputStream input; ! public static void reset() { bits_left = 0; --- 46,53 ---- static BufferedInputStream input; ! /** ! * resets the bit count and buffer, for alignment purposes ! * ! */ public static void reset() { bits_left = 0; *************** *** 50,53 **** --- 55,63 ---- } + /** + * resets the variables used for the arithmetic decoding + * + * @param block_data_length + */ public static void initialise_arithmetic_decoding (long block_data_length) { bytes_left = block_data_length; *************** *** 58,62 **** } ! public static void next_byte () { try { input.read(bit_buffer); --- 68,72 ---- } ! private static void next_byte () { try { input.read(bit_buffer); *************** *** 108,111 **** --- 118,123 ---- } Debug.printIO("read_bytes : " + value); + + assert (value >= 0); return value; } *************** *** 129,133 **** Debug.printIO("read_uint : " + value); ! if (value < 0) Debug.printError("Negative value read, shouldn't happen"); return value; } --- 141,145 ---- Debug.printIO("read_uint : " + value); ! assert (value >= 0); return value; } *************** *** 199,202 **** --- 211,220 ---- } + /** + * reads an arithmetic coded unsigned integer + * @param context_follow + * @param context_data + * @return the value read from the stream + */ public static long read_uinta(long[][] context_follow, long[] context_data) { long value = 1; *************** *** 215,221 **** --- 233,248 ---- Debug.printIO("read_uinta : " + value); + assert (value >= 0); return value; } + /** + * reads an arithmetic coded signed integer + * + * @param context_magnitude_follow + * @param context_magnitude_data + * @param context_sign + * @return the value read from the stream + */ public static long read_sinta(long[][] context_magnitude_follow, long[] context_magnitude_data, long[] context_sign) { long magnitude; *************** *** 235,242 **** return value; } ! /** ! * ! */ ! public static void shift_bit_in() { high <<= 1; high &= 0xFFFF; --- 262,267 ---- return value; } ! ! private static void shift_bit_in() { high <<= 1; high &= 0xFFFF; *************** *** 249,256 **** } ! /** ! * ! */ ! public static long read_bit() { long value; --- 274,278 ---- } ! private static long read_bit() { long value; |