mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
Kernel: Buffer supports little-endian
This commit is contained in:
parent
ab2d15d524
commit
2bd0e1ce43
4 changed files with 139 additions and 0 deletions
|
@ -128,6 +128,18 @@ int16_t SrsBuffer::read_2bytes()
|
|||
return value;
|
||||
}
|
||||
|
||||
int16_t SrsBuffer::read_le2bytes()
|
||||
{
|
||||
srs_assert(require(2));
|
||||
|
||||
int16_t value;
|
||||
char* pp = (char*)&value;
|
||||
pp[0] = *p++;
|
||||
pp[1] = *p++;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
int32_t SrsBuffer::read_3bytes()
|
||||
{
|
||||
srs_assert(require(3));
|
||||
|
@ -141,6 +153,19 @@ int32_t SrsBuffer::read_3bytes()
|
|||
return value;
|
||||
}
|
||||
|
||||
int32_t SrsBuffer::read_le3bytes()
|
||||
{
|
||||
srs_assert(require(3));
|
||||
|
||||
int32_t value = 0x00;
|
||||
char* pp = (char*)&value;
|
||||
pp[0] = *p++;
|
||||
pp[1] = *p++;
|
||||
pp[2] = *p++;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
int32_t SrsBuffer::read_4bytes()
|
||||
{
|
||||
srs_assert(require(4));
|
||||
|
@ -155,6 +180,20 @@ int32_t SrsBuffer::read_4bytes()
|
|||
return value;
|
||||
}
|
||||
|
||||
int32_t SrsBuffer::read_le4bytes()
|
||||
{
|
||||
srs_assert(require(4));
|
||||
|
||||
int32_t value;
|
||||
char* pp = (char*)&value;
|
||||
pp[0] = *p++;
|
||||
pp[1] = *p++;
|
||||
pp[2] = *p++;
|
||||
pp[3] = *p++;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
int64_t SrsBuffer::read_8bytes()
|
||||
{
|
||||
srs_assert(require(8));
|
||||
|
@ -173,6 +212,24 @@ int64_t SrsBuffer::read_8bytes()
|
|||
return value;
|
||||
}
|
||||
|
||||
int64_t SrsBuffer::read_le8bytes()
|
||||
{
|
||||
srs_assert(require(8));
|
||||
|
||||
int64_t value;
|
||||
char* pp = (char*)&value;
|
||||
pp[0] = *p++;
|
||||
pp[1] = *p++;
|
||||
pp[2] = *p++;
|
||||
pp[3] = *p++;
|
||||
pp[4] = *p++;
|
||||
pp[5] = *p++;
|
||||
pp[6] = *p++;
|
||||
pp[7] = *p++;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
string SrsBuffer::read_string(int len)
|
||||
{
|
||||
srs_assert(require(len));
|
||||
|
@ -210,6 +267,15 @@ void SrsBuffer::write_2bytes(int16_t value)
|
|||
*p++ = pp[0];
|
||||
}
|
||||
|
||||
void SrsBuffer::write_le2bytes(int16_t value)
|
||||
{
|
||||
srs_assert(require(2));
|
||||
|
||||
char* pp = (char*)&value;
|
||||
*p++ = pp[0];
|
||||
*p++ = pp[1];
|
||||
}
|
||||
|
||||
void SrsBuffer::write_4bytes(int32_t value)
|
||||
{
|
||||
srs_assert(require(4));
|
||||
|
@ -221,6 +287,17 @@ void SrsBuffer::write_4bytes(int32_t value)
|
|||
*p++ = pp[0];
|
||||
}
|
||||
|
||||
void SrsBuffer::write_le4bytes(int32_t value)
|
||||
{
|
||||
srs_assert(require(4));
|
||||
|
||||
char* pp = (char*)&value;
|
||||
*p++ = pp[0];
|
||||
*p++ = pp[1];
|
||||
*p++ = pp[2];
|
||||
*p++ = pp[3];
|
||||
}
|
||||
|
||||
void SrsBuffer::write_3bytes(int32_t value)
|
||||
{
|
||||
srs_assert(require(3));
|
||||
|
@ -231,6 +308,16 @@ void SrsBuffer::write_3bytes(int32_t value)
|
|||
*p++ = pp[0];
|
||||
}
|
||||
|
||||
void SrsBuffer::write_le3bytes(int32_t value)
|
||||
{
|
||||
srs_assert(require(3));
|
||||
|
||||
char* pp = (char*)&value;
|
||||
*p++ = pp[0];
|
||||
*p++ = pp[1];
|
||||
*p++ = pp[2];
|
||||
}
|
||||
|
||||
void SrsBuffer::write_8bytes(int64_t value)
|
||||
{
|
||||
srs_assert(require(8));
|
||||
|
@ -246,6 +333,21 @@ void SrsBuffer::write_8bytes(int64_t value)
|
|||
*p++ = pp[0];
|
||||
}
|
||||
|
||||
void SrsBuffer::write_le8bytes(int64_t value)
|
||||
{
|
||||
srs_assert(require(8));
|
||||
|
||||
char* pp = (char*)&value;
|
||||
*p++ = pp[0];
|
||||
*p++ = pp[1];
|
||||
*p++ = pp[2];
|
||||
*p++ = pp[3];
|
||||
*p++ = pp[4];
|
||||
*p++ = pp[5];
|
||||
*p++ = pp[6];
|
||||
*p++ = pp[7];
|
||||
}
|
||||
|
||||
void SrsBuffer::write_string(string value)
|
||||
{
|
||||
srs_assert(require((int)value.length()));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue