Bug 980

Summary: Add versatile Bitstream implementation
Product: [JogAmp] Gluegen Reporter: Sven Gothel <sgothel>
Component: coreAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: enhancement    
Priority: ---    
Version: 2   
Hardware: All   
OS: all   
Type: --- SCM Refs:
gluegen d4d337be925a28b8701ac335c2b5cc6e390cabc9 gluegen 8022ae51a072f5198409d3c81d9979456676d0cf jogl ef2a1bf80f8afe9d9249a196d1842de0b74251a5 gluegen 4447232af0d95a4348d09d4ed03fbef48394ca3a jogl dc67f891de5ef31ed8e0e83e7a53e4bdcd881d29
Workaround: ---

Description Sven Gothel 2014-02-20 17:39:07 CET
We already have several locations where bitstream operations are required and 
partially implemented (JPEG decoder, media parsing, ..)
as well as endian related conversion (elf parser, ..).

Create a versatile Bitstream class allowing:
  - Utilize I/O operations on I/O streams, buffers and arrays
  - Consider MSBfirst / LSBfirst mode
  - Linear bit R/W operations
  - Bulk R/W operations w/ endian related type conversion
  - Allow mark/reset and switching streams and input/output mode
  - Optimized operations
Comment 1 Sven Gothel 2014-02-20 17:46:31 CET
gluegen d4d337be925a28b8701ac335c2b5cc6e390cabc9
    Bug 890: Adding versatile Bitstream implementation
    
    We already have several locations where bitstream operations are required and
    partially implemented (JPEG decoder, media parsing, ..)
    as well as endian related conversion (elf parser, ..).
    
    Create a versatile Bitstream class allowing:
      - Utilize I/O operations on I/O streams, buffers and arrays
      - Consider MSBfirst / LSBfirst mode
      - Linear bit R/W operations
      - Bulk R/W operations w/ endian related type conversion
      - Allow mark/reset and switching streams and input/output mode
      - Optimized operations
    
    Complete set of unit tests included, covering hopefully all cases.

gluegen 8022ae51a072f5198409d3c81d9979456676d0cf
   Use Bitsream class for jogamp.common.os.elf.**
Comment 2 Sven Gothel 2014-02-20 17:49:23 CET
jogl ef2a1bf80f8afe9d9249a196d1842de0b74251a5
  Use Bitsream class for JPEGDecoder
Comment 3 Sven Gothel 2014-02-21 12:31:47 CET
4447232af0d95a4348d09d4ed03fbef48394ca3a
  Refine Bitstream API 'signed' and 'unsigned' semantics - readUInt32(..) must return long due to EOF

Adapt:
   jogl dc67f891de5ef31ed8e0e83e7a53e4bdcd881d29