diff options
| author | Mistivia <i@mistivia.com> | 2025-09-10 17:41:52 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-09-10 17:41:52 +0800 |
| commit | 8d089010b37ee193b2b8c809a4f317fa2b11a758 (patch) | |
| tree | f2a671f9bcc8760983ab016d8d181f2630fe16a7 /fileutils.c | |
rtmp server
Diffstat (limited to 'fileutils.c')
| -rw-r--r-- | fileutils.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/fileutils.c b/fileutils.c new file mode 100644 index 0000000..a9d9efc --- /dev/null +++ b/fileutils.c @@ -0,0 +1,72 @@ +#include "fileutils.h" + +bool fwrite_word16le(FILE* fp, uint16_t x) { + uint8_t buf[2]; + buf[0] = x & 0xff; + buf[1] = (x >> 8) & 0xff; + int r = fwrite(buf, 1, 2, fp); + if (r != 2) return false; + return true; +} + +bool fwrite_word32le(FILE* fp, uint32_t x) { + bool ret = false; + uint16_t buf[2]; + + buf[0] = x & 0xffff; + buf[1] = (x >> 16) & 0xffff; + ret = fwrite_word16le(fp, buf[0]); + if (!ret) return ret; + ret = fwrite_word16le(fp, buf[1]); + if (!ret) return ret; + return true; +} + +bool fwrite_word16be(FILE* fp, uint16_t x) { + uint8_t buf[2]; + buf[1] = x & 0xff; + buf[0] = (x >> 8) & 0xff; + int r = fwrite(buf, 1, 2, fp); + if (r != 2) return false; + return true; +} + +bool fwrite_word32be(FILE* fp, uint32_t x) { + bool ret = false; + uint16_t buf[2]; + + buf[1] = x & 0xffff; + buf[0] = (x >> 16) & 0xffff; + ret = fwrite_word16be(fp, buf[0]); + if (!ret) return ret; + ret = fwrite_word16be(fp, buf[1]); + if (!ret) return ret; + return true; +} + +bool fwrite_word24le(FILE* fp, uint32_t x) { + uint8_t buf[3]; + buf[0] = x & 0xff; + buf[1] = (x >> 8) & 0xff; + buf[2] = (x >> 16) & 0xff; + int r = fwrite(buf, 1, 3, fp); + if (r != 3) return false; + return true; +} + +bool fwrite_word24be(FILE* fp, uint32_t x) { + uint8_t buf[3]; + buf[2] = x & 0xff; + buf[1] = (x >> 8) & 0xff; + buf[0] = (x >> 16) & 0xff; + int r = fwrite(buf, 1, 3, fp); + if (r != 3) return false; + return true; +} + +bool fwrite_char(FILE* fp, uint8_t x) { + uint8_t buf[1]; + buf[0] = x; + int ret = fwrite(buf, 1, 1, fp); + return ret == 1; +}
\ No newline at end of file |
