util/ByteOrder: add FromLE16S()
This commit is contained in:
parent
23d5a2b862
commit
b72801abf3
@ -39,8 +39,7 @@ ScanOpusHeader(const void *data, size_t size, unsigned &channels_r,
|
|||||||
if (size < 19 || (h->version & 0xf0) != 0)
|
if (size < 19 || (h->version & 0xf0) != 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
uint16_t gain_bits = FromLE16(h->output_gain);
|
output_gain_r = FromLE16S(h->output_gain);
|
||||||
output_gain_r = (gain_bits & 0x8000) ? gain_bits - 0x10000 : gain_bits;
|
|
||||||
|
|
||||||
channels_r = h->channels;
|
channels_r = h->channels;
|
||||||
pre_skip_r = FromLE16(h->pre_skip);
|
pre_skip_r = FromLE16(h->pre_skip);
|
||||||
|
@ -243,4 +243,15 @@ ToLE64(uint64_t value) noexcept
|
|||||||
return IsLittleEndian() ? value : ByteSwap64(value);
|
return IsLittleEndian() ? value : ByteSwap64(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a 16 bit integer from little endian to the host byte order
|
||||||
|
* and returns it as a signed integer.
|
||||||
|
*/
|
||||||
|
constexpr int16_t
|
||||||
|
FromLE16S(uint16_t value) noexcept
|
||||||
|
{
|
||||||
|
/* assuming two's complement representation */
|
||||||
|
return static_cast<int16_t>(FromLE16(value));
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user