def read(location, flags)
reset
find_type location
return nil if @type == nil
stream = MediaInfoStream.new
mime = @type.mime
stream.mime = mime if flags & INFO_MIME
stream.path = location
decoder = get_decoder mime
return nil if decoder == nil
set_decoder decoder
stream = get_stream stream
stream.length_tracks.times do |i|
track = MediaInfoTrack.new
track.metadata = find_metadata if flags & INFO_METADATA
track.streaminfo = find_streaminfo if flags & INFO_STREAMINFO
track.format = find_format if flags & INFO_FORMAT
stream.tracks << track
end
clear_decoder
return stream
end