Sha256: cdeaf5934ff94e2e4365ca747c7392b67c53425f2ff1560d94561dbe640b8dd8
Contents?: true
Size: 1015 Bytes
Versions: 2
Compression:
Stored size: 1015 Bytes
Contents
require 'forwardable' require 'ffi/libav' require 'libav/version' require 'libav/frame' require 'libav/stream' require 'libav/reader' module Libav private @@registered_all = false def self.register_all return if @@registered_all FFI::Libav.av_register_all @@registered_all = true end end class String def hexdump buf = "" offset = 0 words = self.unpack("N%d" % (self.length/4.0).ceil) until words.empty? line = words.shift(4).compact buf += sprintf("[%04x] " + ("%08x " * line.size) + "|%s|\n", offset * 16, *line, line.pack("N%d" % line.size).tr("^\040-\176",".")) offset += 1 end buf end unless String.instance_methods.include? :hexdump end class FFI::Struct def to_hash return {} if pointer.null? members.inject({}) { |h,k| h[k] = send(:[], k); h } end unless FFI::Struct.instance_methods.include? :to_hash def to_hexdump self.pointer.read_bytes(self.size).hexdump end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ffi-libav-0.3.0 | lib/ffi-libav.rb |
ffi-libav-0.2.0 | lib/ffi-libav.rb |