* Write up to 63 bits into a bitstream. */
| 342 | * Write up to 63 bits into a bitstream. |
| 343 | */ |
| 344 | static inline void put_bits63(PutBitContext *s, int n, uint64_t value) |
| 345 | { |
| 346 | av_assert2(n < 64U && value < (UINT64_C(1) << n)); |
| 347 | |
| 348 | #if BUF_BITS >= 64 |
| 349 | put_bits_no_assert(s, n, value); |
| 350 | #else |
| 351 | if (n < 32) |
| 352 | put_bits(s, n, value); |
| 353 | else if (n == 32) |
| 354 | put_bits32(s, value); |
| 355 | else if (n < 64) { |
| 356 | uint32_t lo = value & 0xffffffff; |
| 357 | uint32_t hi = value >> 32; |
| 358 | #ifdef BITSTREAM_WRITER_LE |
| 359 | put_bits32(s, lo); |
| 360 | put_bits(s, n - 32, hi); |
| 361 | #else |
| 362 | put_bits(s, n - 32, hi); |
| 363 | put_bits32(s, lo); |
| 364 | #endif |
| 365 | } |
| 366 | #endif |
| 367 | } |
| 368 | |
| 369 | /** |
| 370 | * Write up to 64 bits into a bitstream. |
no test coverage detected