gstreamer/libs/gst/getbits/gbtest.c

101 lines
2.2 KiB
C
Raw Normal View History

#include <stdlib.h>
#include "gstgetbits.h"
char *
print_bits (unsigned long bits, int size)
{
char *ret = (char *) malloc (size + 1);
int i;
ret[size] = 0;
for (i = 0; i < size; i++) {
if (bits & (1 << i))
ret[(size - 1) - i] = '1';
else
ret[(size - 1) - i] = '0';
}
return ret;
}
static unsigned char testbuffer[] = {
0x11, 0x22, 0x44, 0x88, 0xCC, 0xEE, 0xFF, 0x11
};
void
empty (gst_getbits_t * gb, void *data)
{
printf ("buffer empty\n");
gst_getbits_newbuf (gb, (unsigned char *) testbuffer, 7);
}
int
main (int argc, char *argv[])
{
gst_getbits_t gb;
int i, j;
int bits;
gst_getbits_init (&gb, NULL, NULL);
gst_getbits_newbuf (&gb, (unsigned char *) testbuffer, 7);
for (i = 0; i < 7; i++) {
for (j = 0; j < 8; j++) {
printf ("%lu", gst_getbits2 (&gb));
gst_backbitsn (&gb, 1);
}
printf (" = %01x\n", testbuffer[i]);
}
gst_getbits_newbuf (&gb, (unsigned char *) testbuffer, 7);
bits = gst_getbits8 (&gb);
printf ("%08x <-> 00000011 %lu\n", bits, gb.bits);
bits = gst_getbits8 (&gb);
printf ("%08x <-> 00000022 %lu\n", bits, gb.bits);
bits = gst_getbits8 (&gb);
printf ("%08x <-> 00000044 %lu\n", bits, gb.bits);
bits = gst_getbits8 (&gb);
printf ("%08x <-> 00000088 %lu\n", bits, gb.bits);
bits = gst_getbits6 (&gb);
printf ("%08x <-> 00000033 %lu\n", bits, gb.bits);
gst_backbitsn (&gb, 16);
bits = gst_getbits10 (&gb);
printf ("%08x <-> 00000088 \n", bits);
gst_getbits_newbuf (&gb, (unsigned char *) testbuffer, 7);
bits = gst_getbits8 (&gb);
printf ("%08x <-> 00000011 \n", bits);
bits = gst_getbits8 (&gb);
printf ("%08x <-> 00000022 \n", bits);
bits = gst_getbits8 (&gb);
printf ("%08x <-> 00000044 \n", bits);
bits = gst_getbits6 (&gb);
printf ("%08x <-> 00000022 \n", bits);
gst_backbitsn (&gb, 19);
bits = gst_getbits19 (&gb);
printf ("%08x <-> 00009122 \n", bits);
bits = gst_getbits10 (&gb);
printf ("%08x <-> 000000cc \n", bits);
gst_backbitsn (&gb, 8);
gst_backbitsn (&gb, 19);
gst_backbitsn (&gb, 8);
bits = gst_getbits19 (&gb);
printf ("%08x <-> 00012244 \n", bits);
bits = gst_getbits8 (&gb);
printf ("%08x <-> 00000088 \n", bits);
return 0;
}