Example #1
0
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;
}
Example #2
0
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;
}