File: repack_bits_byte.cpp

package info (click to toggle)
satdump 1.2.2%2Bgb79af48-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 81,648 kB
  • sloc: cpp: 276,768; ansic: 164,598; lisp: 1,219; sh: 283; xml: 106; makefile: 7
file content (20 lines) | stat: -rw-r--r-- 398 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "repack_bits_byte.h"

int RepackBitsByte::work(uint8_t *in, int length, uint8_t *out)
{
    int oo = 0;

    for (int ii = 0; ii < length; ii++)
    {
        byteToWrite = (byteToWrite << 1) | (((int8_t *)in)[ii] & 1);
        inByteToWrite++;

        if (inByteToWrite == 8)
        {
            out[oo++] = byteToWrite;
            inByteToWrite = 0;
        }
    }

    return oo;
}