bool MDX_M2_file::prepareLoadedData() { memcpy(&header, getData(), sizeof(ModelHeader)); if(header.nBoundingTriangles > 0) { seek(0); seekRelative(header.ofsBoundingVertices); vertices = new Vec3D[header.nBoundingVertices]; read(vertices,header.nBoundingVertices*12); for (uint32 i=0; i<header.nBoundingVertices; i++) { vertices[i] = fixCoordSystem(vertices[i]); } seek(0); seekRelative(header.ofsBoundingTriangles); indices = new uint16[header.nBoundingTriangles]; read(indices,header.nBoundingTriangles*2); } return true; }
RESULT eServiceMP3::enableSubtitles(eWidget *parent, ePyObject tuple) { ePyObject entry; int tuplesize = PyTuple_Size(tuple); int pid; if (!PyTuple_Check(tuple)) goto error_out; if (tuplesize < 1) goto error_out; entry = PyTuple_GET_ITEM(tuple, 1); if (!PyInt_Check(entry)) goto error_out; pid = PyInt_AsLong(entry); if (m_currentSubtitleStream != pid) { g_object_set (G_OBJECT (m_gst_playbin), "current-text", -1, NULL); m_subtitle_pages.clear(); m_prev_decoder_time = -1; m_decoder_time_valid_state = 0; m_currentSubtitleStream = pid; g_object_set (G_OBJECT (m_gst_playbin), "current-text", m_currentSubtitleStream, NULL); m_subtitle_widget = 0; m_subtitle_widget = new eSubtitleWidget(parent); m_subtitle_widget->resize(parent->size()); /* full size */ eDebug ("eServiceMP3::switched to subtitle stream %i", m_currentSubtitleStream); m_event((iPlayableService*)this, evUpdatedInfo); #ifdef GSTREAMER_SUBTITLE_SYNC_MODE_BUG /* * when we're running the subsink in sync=false mode, * we have to force a seek, before the new subtitle stream will start */ seekRelative(-1, 90000); #endif } return 0; error_out: eDebug("eServiceMP3::enableSubtitles needs a tuple as 2nd argument!\n" "for gst subtitles (2, subtitle_stream_count, subtitle_type)"); return -1; }
RESULT eServiceMP3::enableSubtitles(iSubtitleUser *user, struct SubtitleTrack &track) { if (m_currentSubtitleStream != track.pid) { m_subtitle_pages.clear(); m_currentSubtitleStream = track.pid; m_cachedSubtitleStream = m_currentSubtitleStream; m_subtitle_widget = user; eDebug ("eServiceMP3::switched to subtitle stream %i", m_currentSubtitleStream); if (player && player->playback) player->playback->Command(player, PLAYBACK_SWITCH_SUBTITLE, (void*)&track.pid); // we have to force a seek, before the new subtitle stream will start seekRelative(-1, 90000); } return 0; }
void IStreamUrlImplCurl::seekAbsolute( off_t absoluteOffset ) { seekRelative( absoluteOffset - ( mBufferFileOffset + mBufferOffset ) ); }
void skip(const RVNGInputStreamPtr &input, unsigned long numBytes) { checkStream(input); seekRelative(input, static_cast<long>(numBytes)); }