| 237 | } |
| 238 | |
| 239 | void LTRRecoveryRequest (ISVCDecoder* pDecoder, ISVCEncoder* pEncoder, SLTRRecoverRequest* p_LTR_Recover_Request, |
| 240 | long hr, bool m_P2PmodeFlag) { |
| 241 | long bKLost = IsKeyFrameLost (pDecoder, p_LTR_Recover_Request, hr); |
| 242 | if (m_P2PmodeFlag) { |
| 243 | if (bKLost == IDR_RECOVERY_REQUEST) { |
| 244 | pEncoder->ForceIntraFrame (true); |
| 245 | } else if (bKLost == LTR_RECOVERY_REQUEST) { |
| 246 | p_LTR_Recover_Request->uiFeedbackType = LTR_RECOVERY_REQUEST; |
| 247 | pDecoder->GetOption (DECODER_OPTION_FRAME_NUM, &p_LTR_Recover_Request->iCurrentFrameNum); |
| 248 | pDecoder->GetOption (DECODER_OPTION_IDR_PIC_ID, &p_LTR_Recover_Request->uiIDRPicId); |
| 249 | pEncoder->SetOption (ENCODER_LTR_RECOVERY_REQUEST, p_LTR_Recover_Request); |
| 250 | } |
| 251 | } else { |
| 252 | if (bKLost == IDR_RECOVERY_REQUEST || bKLost == LTR_RECOVERY_REQUEST) { |
| 253 | p_LTR_Recover_Request->uiFeedbackType = IDR_RECOVERY_REQUEST; |
| 254 | pEncoder->ForceIntraFrame (true); |
| 255 | } |
| 256 | } |
| 257 | } |
| 258 | |
| 259 | void LTRMarkFeedback (ISVCDecoder* pDecoder, ISVCEncoder* pEncoder, SLTRMarkingFeedback* p_LTR_Marking_Feedback, |
| 260 | long hr) { |
no test coverage detected