转自 http://blog.sina.com.cn/foreverlovelost
void OMXCodec::findMatchingCodecs(
void OMXCodec::findMatchingCodecs(
}
static const char *GetCodec(const CodecInfo *info, size_tnumInfos,
}
对上面的解释:
1:假如在index = 0的时候就匹配到了一个,此时返回到第一个函数中,index变为1,然后又进入到第二个函数进行匹配,这时候对整个数组进行匹配的过程中肯定又会匹配到第一个已经匹配成功的那个元素,此时如果立即返回,这匹配到的是重复的元素,如果继续下去会构成死循环,而如果此时,将index--后继续寻找,就能够避免前面已经找到了的。
2:而且对于每一种能够解码的mime类型,有几种解码类型(比如说是4),则必然是在
index = 0 匹配到一个
index=0
index = 1 匹配到第一个(放弃),匹配到第二个
index=0;
index = 2匹配到第一、二个(放弃),继续匹配到第三个
index=0;
index = 3
匹配到第一、二、三个(放弃),继续匹配到第四个index=0;
对于后续的index,都能匹配到前四个,但是因为index>0都被放弃,所以最后都不能匹配成功,一切ok了。