| 215 | } |
| 216 | |
| 217 | int64_t MediaPacketQueue::GetKeyTimePositionBeforeUTCTime(int64_t time) |
| 218 | { |
| 219 | ADD_LOCK; |
| 220 | int64_t lastKeyPos = INT64_MIN; |
| 221 | |
| 222 | for (auto r_iter = mQueue.rbegin(); r_iter != mQueue.rend(); ++r_iter) { |
| 223 | IAFPacket *packet = (*r_iter).get(); |
| 224 | if (packet && (packet->getInfo().flags & AF_PKT_FLAG_KEY) && packet->getInfo().utcTime > 0 && packet->getInfo().utcTime <= time) { |
| 225 | lastKeyPos = packet->getInfo().timePosition; |
| 226 | return lastKeyPos; |
| 227 | } |
| 228 | if (packet == (*mCurrent).get()) { |
| 229 | break; |
| 230 | } |
| 231 | } |
| 232 | |
| 233 | return lastKeyPos; |
| 234 | } |
| 235 | |
| 236 | std::unique_ptr<IAFPacket> MediaPacketQueue::getPacket() |
| 237 | { |
no test coverage detected