class O3D3XX::Chunk

Handle PCIC binary/image chunks

Public Class Methods

info(chunk) click to toggle source
# File lib/o3d3xx/pcic.rb, line 251
def self.info(chunk)
  info = Array.new
  info.push("CHUNK type        : #{chunk[:CHUNK_TYPE]}")
  info.push("CHUNK size        : #{chunk[:CHUNK_SIZE]}")
  info.push("CHUNK header size : #{chunk[:HEADER_SIZE]}")
  info.push("CHUNK version     : #{chunk[:HEADER_VERSION]}")
  info.push("CHUNK height      : #{chunk[:IMAGE_HEIGTH]}")
  info.push("CHUNK width       : #{chunk[:IMAGE_WIDTH]}")
  info.push("CHUNK format      : #{chunk[:PIXEL_FORMAT]}")
  info.push("CHUNK time stamp  : #{chunk[:TIME_STAMP]}")
  info.push("CHUNK frame count : #{chunk[:FRAME_COUNT]}")
  info.push("CHUNK data size   : #{chunk[:PIXEL_DATA].length}")
end
parse(data) click to toggle source
# File lib/o3d3xx/pcic.rb, line 236
def self.parse(data)
  chunk_header =  data.unpack('L<9*')
  result = {
    :CHUNK_TYPE => chunk_header[0],
    :CHUNK_SIZE => chunk_header[1],
    :HEADER_SIZE => chunk_header[2],
    :HEADER_VERSION => chunk_header[3],
    :IMAGE_WIDTH => chunk_header[4],
    :IMAGE_HEIGTH => chunk_header[5],
    :PIXEL_FORMAT => chunk_header[6],
    :TIME_STAMP => chunk_header[7],
    :FRAME_COUNT => chunk_header[8],
    :PIXEL_DATA => data[chunk_header[2]...chunk_header[1]],
  }
end
parseChunkArray(data) click to toggle source
# File lib/o3d3xx/pcic.rb, line 265
def self.parseChunkArray(data)
  result = Array.new
  offset = 0
  while offset < data.size
    chunk = self.parse(data[offset..data.size])
    result << chunk
    offset += chunk[:CHUNK_SIZE]
  end
  return result
end