! * \brief write reference picture list on reordering syntax in Slice header */
| 213 | * \brief write reference picture list on reordering syntax in Slice header |
| 214 | */ |
| 215 | void WriteReferenceReorder (SBitStringAux* pBs, SSliceHeader* sSliceHeader) { |
| 216 | SRefPicListReorderSyntax* pRefOrdering = &sSliceHeader->sRefReordering; |
| 217 | uint8_t eSliceType = sSliceHeader->eSliceType % 5; |
| 218 | int16_t n = 0; |
| 219 | |
| 220 | if (I_SLICE != eSliceType && SI_SLICE != eSliceType) { // !I && !SI |
| 221 | BsWriteOneBit (pBs, true); |
| 222 | // { |
| 223 | uint16_t uiReorderingOfPicNumsIdc; |
| 224 | do { |
| 225 | uiReorderingOfPicNumsIdc = pRefOrdering->SReorderingSyntax[n].uiReorderingOfPicNumsIdc; |
| 226 | BsWriteUE (pBs, uiReorderingOfPicNumsIdc); |
| 227 | if (0 == uiReorderingOfPicNumsIdc || 1 == uiReorderingOfPicNumsIdc) |
| 228 | BsWriteUE (pBs, pRefOrdering->SReorderingSyntax[n].uiAbsDiffPicNumMinus1); |
| 229 | else if (2 == uiReorderingOfPicNumsIdc) |
| 230 | BsWriteUE (pBs, pRefOrdering->SReorderingSyntax[n].iLongTermPicNum); |
| 231 | |
| 232 | n ++; |
| 233 | } while (3 != uiReorderingOfPicNumsIdc); |
| 234 | // } |
| 235 | } |
| 236 | } |
| 237 | |
| 238 | /*! |
| 239 | * \brief write reference picture marking syntax in pSlice header |
no test coverage detected