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; }
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(); } }
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)); }
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; } }
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; } }