示例#1
0
int
aac_reader_c::probe_file(mm_io_c *in,
                         uint64_t,
                         int64_t probe_range,
                         int num_headers) {
  return (find_valid_headers(*in, probe_range, num_headers) != -1) ? 1 : 0;
}
示例#2
0
void
mp3_reader_c::read_headers() {
  try {
    int pos = find_valid_headers(*m_in, 2 * 1024 * 1024, 5);
    if (0 > pos)
      throw mtx::input::header_parsing_x();

    m_in->setFilePointer(pos, seek_beginning);
    m_in->read(m_chunk->get_buffer(), 4);

    decode_mp3_header(m_chunk->get_buffer(), &m_mp3header);

    m_in->setFilePointer(pos, seek_beginning);

    show_demuxer_info();

    if ((0 < pos) && verbose)
      mxwarn_fn(m_ti.m_fname, boost::format(Y("Skipping %1% bytes at the beginning (no valid MP3 header found).\n")) % pos);

    m_ti.m_id = 0;        // ID for this track.

  } catch (mtx::mm_io::exception &) {
    throw mtx::input::open_x();
  }
}
示例#3
0
int
aac_reader_c::probe_file(mm_io_c *in,
                         uint64_t,
                         int64_t probe_range,
                         int num_headers,
                         bool require_zero_offset) {
    int offset = find_valid_headers(*in, probe_range, num_headers);
    return (require_zero_offset && (0 == offset)) || (!require_zero_offset && (0 <= offset));
}
示例#4
0
int
truehd_reader_c::probe_file(mm_io_c *in,
                            uint64_t /* size */) {
  try {
    in->setFilePointer(0, seek_beginning);
    skip_id3v2_tag(*in);
    return find_valid_headers(*in, TRUEHD_READ_SIZE, 2) ? 1 : 0;

  } catch (...) {
    return 0;
  }
}
示例#5
0
int
ac3_reader_c::probe_file(mm_io_c *in,
                         uint64_t,
                         int64_t probe_size,
                         int num_headers,
                         bool require_zero_offset) {
  try {
    in->setFilePointer(0, seek_beginning);
    skip_id3v2_tag(*in);
    int offset = find_valid_headers(*in, probe_size, num_headers);

    return (require_zero_offset && (0 == offset)) || (!require_zero_offset && (0 <= offset));

  } catch (...) {
    return 0;
  }
}