status_t TimedTextSRTSource::scanFile() { off64_t offset = 0; int64_t startTimeUs; bool endOfFile = false; #if 1 int64_t endTimeUs; char *str; #endif #ifdef MTK_SUBTITLE_SUPPORT mFileEncodeType = TimedTextUtil::getFileEncodeType(mSource, &offset); //*offset must be zero ALOGE("[SRT Parser] Scan mFileEncodeType = %d", mFileEncodeType); #endif while (!endOfFile) { TextInfo info; status_t err = getNextSubtitleInfo(&offset, &startTimeUs, &info); switch (err) { case OK: mTextVector.add(startTimeUs, info); break; case ERROR_END_OF_STREAM: endOfFile = true; break; default: return err; } } if (mTextVector.isEmpty()) { return ERROR_MALFORMED; } return OK; }
status_t TimedTextASSSource::scanFile(){ off64_t offset = 0; int64_t startTimeUs =0; bool endOfFile = false; status_t err; mFileEncodeType = TimedTextUtil::getFileEncodeType(mExSource, &offset); //*offset must be zero ALOGE("[ASS Parser] Scan mFileEncodeType = %d", mFileEncodeType); err = skipHeadInfor(&offset); if(OK != err){ ALOGE("[ASS Parser] Ass File Format Error!"); return err; } while (!endOfFile) { MultiTextInfo info; err = getNextSubtitleInfo(&offset, &startTimeUs, &info); switch (err) { case OK: if(0 == mTextVector.size()){ //Select the first subtitle lang index as default value; selectLangIndex(info.langIndex); } mTextVector.add(startTimeUs, info); #ifdef SELF_TEST ALOGE("TXT langIndex:%d, startTime:%lld, endTime:%lld", info.langIndex, startTimeUs, info.endTimeUs); #endif break; case ERROR_END_OF_STREAM: endOfFile = true; break; default: return err; } } ALOGE("[ASS Parser] Ass File Scan Over! vector size =%d" , mTextVector.size()); if (mTextVector.isEmpty()) { return ERROR_MALFORMED; } return OK; }
status_t TimedTextSRTSource::scanFile() { off64_t offset = 0; int64_t startTimeUs; bool endOfFile = false; while (!endOfFile) { TextInfo info; status_t err = getNextSubtitleInfo(&offset, &startTimeUs, &info); switch (err) { case OK: mTextVector.add(startTimeUs, info); break; case ERROR_END_OF_STREAM: endOfFile = true; break; default: return err; } } if (mTextVector.isEmpty()) { return ERROR_MALFORMED; } return OK; }