| 234 | } |
| 235 | |
| 236 | void mediaCodecDecoder::flush_decoder() { |
| 237 | lock_guard<recursive_mutex> func_entry_lock(mFuncEntryMutex); |
| 238 | mOutputFrameCount = 0; |
| 239 | |
| 240 | if (!mbInit) { |
| 241 | return; |
| 242 | } |
| 243 | |
| 244 | if (mInputFrameCount <= 0) { |
| 245 | return; |
| 246 | } |
| 247 | |
| 248 | { |
| 249 | std::lock_guard<std::mutex> l(mFlushInterruptMuex); |
| 250 | mFlushState = 1; |
| 251 | int ret = mDecoder->flush(); |
| 252 | AF_LOGI("clearCache. ret %d, flush state %d", ret, mFlushState); |
| 253 | } |
| 254 | |
| 255 | mDiscardPTSSet.clear(); |
| 256 | mInputFrameCount = 0; |
| 257 | } |
| 258 | |
| 259 | void mediaCodecDecoder::close_decoder() { |
| 260 | lock_guard<recursive_mutex> func_entry_lock(mFuncEntryMutex); |