public int fetchHeaders(final Info info, final Comment comment, final int[] serialno, Page page) { if (page == null) { page = new Page(); final int retValue = this.getNextPage(page, this.m_chunkSize); if (retValue == -128) { return -128; } if (retValue < 0) { return -130; } } if (serialno != null) { serialno[0] = page.serialno(); } this.m_oggStreamState.init(page.serialno()); info.init(); comment.init(); final Packet packet = new Packet(); int i = 0; while (i < 3) { this.m_oggStreamState.pagein(page); while (i < 3) { final int result = this.m_oggStreamState.packetout(packet); if (result == 0) { break; } if (result == -1) { info.clear(); this.m_oggStreamState.clear(); return -1; } if (info.synthesis_headerin(comment, packet) != 0) { info.clear(); this.m_oggStreamState.clear(); return -1; } ++i; } if (i < 3 && this.getNextPage(page, 1L) < 0) { info.clear(); this.m_oggStreamState.clear(); return -1; } } return 0; }
@Override public void reset() { if (!this.m_isReset) { if (this.m_vorbisStream.isSeekable()) { this.rawSeek(this.m_dataOffsets[0]); } else { this.m_oggStreamState.clear(); this.m_block.clear(); this.m_dspState.clear(); if (this.m_info != null) { for (final Info info : this.m_info) { info.clear(); } } this.m_oggSyncState.clear(); try { if (this.m_vorbisStream != null) { this.m_vorbisStream.reset(); } } catch (Exception e) { JOrbisStream.m_logger.error((Object) "Exception", (Throwable) e); } this.m_links = 0; this.m_offset = 0L; this.m_offsets = null; this.m_dataOffsets = null; this.m_serialnos = null; this.m_pcmLengths = null; this.m_info = null; this.m_comments = null; this.m_pcmOffset = 0L; this.m_decodeReady = false; this.m_currentSerialno = 0; this.m_currentLink = 0; this.initialize(this.m_vorbisStream); } this.m_isReset = true; } }