From 1f27d90839aa0128b5ef256aa619eceb8c6bd6d3 Mon Sep 17 00:00:00 2001 From: David Schleef Date: Thu, 15 Sep 2005 05:48:30 +0000 Subject: [PATCH] configure.ac: Remove getbits library. Nothing uses it, and it should be in something like liboil if someone did want... Original commit message from CVS: * configure.ac: Remove getbits library. Nothing uses it, and it should be in something like liboil if someone did want to use it. * libs/gst/Makefile.am: * libs/gst/getbits/Makefile.am: * libs/gst/getbits/gbtest.c: * libs/gst/getbits/getbits.c: * libs/gst/getbits/getbits.h: * libs/gst/getbits/gstgetbits_generic.c: * libs/gst/getbits/gstgetbits_i386.s: * libs/gst/getbits/gstgetbits_inl.h: --- ChangeLog | 14 ++ configure.ac | 1 - libs/gst/Makefile.am | 2 +- libs/gst/getbits/Makefile.am | 20 -- libs/gst/getbits/gbtest.c | 100 --------- libs/gst/getbits/getbits.c | 242 --------------------- libs/gst/getbits/getbits.h | 131 ----------- libs/gst/getbits/gstgetbits_generic.c | 132 ----------- libs/gst/getbits/gstgetbits_i386.s | 115 ---------- libs/gst/getbits/gstgetbits_inl.h | 302 -------------------------- 10 files changed, 15 insertions(+), 1044 deletions(-) delete mode 100644 libs/gst/getbits/Makefile.am delete mode 100644 libs/gst/getbits/gbtest.c delete mode 100644 libs/gst/getbits/getbits.c delete mode 100644 libs/gst/getbits/getbits.h delete mode 100644 libs/gst/getbits/gstgetbits_generic.c delete mode 100644 libs/gst/getbits/gstgetbits_i386.s delete mode 100644 libs/gst/getbits/gstgetbits_inl.h diff --git a/ChangeLog b/ChangeLog index b57321a18d..7611aba88e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2005-09-14 David Schleef + + * configure.ac: Remove getbits library. Nothing uses it, and + it should be in something like liboil if someone did want + to use it. + * libs/gst/Makefile.am: + * libs/gst/getbits/Makefile.am: + * libs/gst/getbits/gbtest.c: + * libs/gst/getbits/getbits.c: + * libs/gst/getbits/getbits.h: + * libs/gst/getbits/gstgetbits_generic.c: + * libs/gst/getbits/gstgetbits_i386.s: + * libs/gst/getbits/gstgetbits_inl.h: + 2005-09-14 David Schleef * gst/Makefile.am: Dist glib-compat.h diff --git a/configure.ac b/configure.ac index 174ef61e54..74dd5cf502 100644 --- a/configure.ac +++ b/configure.ac @@ -643,7 +643,6 @@ libs/Makefile libs/gst/Makefile libs/gst/controller/Makefile libs/gst/dataprotocol/Makefile -libs/gst/getbits/Makefile po/Makefile.in check/Makefile tests/Makefile diff --git a/libs/gst/Makefile.am b/libs/gst/Makefile.am index 481cb6e8ec..a609001f8e 100644 --- a/libs/gst/Makefile.am +++ b/libs/gst/Makefile.am @@ -1 +1 @@ -SUBDIRS = controller dataprotocol getbits +SUBDIRS = controller dataprotocol diff --git a/libs/gst/getbits/Makefile.am b/libs/gst/getbits/Makefile.am deleted file mode 100644 index d05d4b56ab..0000000000 --- a/libs/gst/getbits/Makefile.am +++ /dev/null @@ -1,20 +0,0 @@ -plugin_LTLIBRARIES = libgstgetbits.la - -if HAVE_CPU_I386 -GSTARCH_SRCS = gstgetbits_i386.s -else -GSTARCH_SRCS = -endif - -libgstgetbitsincludedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/getbits -libgstgetbitsinclude_HEADERS = getbits.h -noinst_HEADERS = gstgetbits_inl.h - -libgstgetbits_la_SOURCES = getbits.c gstgetbits_inl.h gstgetbits_generic.c $(GSTARCH_SRCS) -EXTRA_libgstgetbits_la_SOURCES = gstgetbits_i386.s - -libgstgetbits_la_CFLAGS = $(GST_OBJ_CFLAGS) -funroll-all-loops -finline-functions -ffast-math -libgstgetbits_la_LDFLAGS = $(GST_OBJ_LIBS) $(GST_PLUGIN_LDFLAGS) - -# check_PROGRAMS = gbtest - diff --git a/libs/gst/getbits/gbtest.c b/libs/gst/getbits/gbtest.c deleted file mode 100644 index 99210557ae..0000000000 --- a/libs/gst/getbits/gbtest.c +++ /dev/null @@ -1,100 +0,0 @@ -#include -#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; -} diff --git a/libs/gst/getbits/getbits.c b/libs/gst/getbits/getbits.c deleted file mode 100644 index c5b49ed944..0000000000 --- a/libs/gst/getbits/getbits.c +++ /dev/null @@ -1,242 +0,0 @@ -#include "config.h" - -#include "getbits.h" - -/* Defined in gstgetbits_i386.s */ -extern unsigned long _gst_get1bit_i386 (gst_getbits_t * gb, unsigned long bits); -extern unsigned long _gst_getbits_i386 (gst_getbits_t * gb, unsigned long bits); -extern unsigned long _gst_getbits_fast_i386 (gst_getbits_t * gb, - unsigned long bits); -extern unsigned long _gst_showbits_i386 (gst_getbits_t * gb, - unsigned long bits); -extern void _gst_flushbits_i386 (gst_getbits_t * gb, unsigned long bits); -extern void _gst_getbits_back_i386 (gst_getbits_t * gb, unsigned long bits); - -/* Defined in gstgetbits_generic.c */ -extern unsigned long _gst_getbits_int_cb (gst_getbits_t * gb, - unsigned long bits); -extern unsigned long _gst_get1bit_int (gst_getbits_t * gb, unsigned long bits); -extern unsigned long _gst_getbits_int (gst_getbits_t * gb, unsigned long bits); -extern unsigned long _gst_getbits_fast_int (gst_getbits_t * gb, - unsigned long bits); -extern unsigned long _gst_showbits_int (gst_getbits_t * gb, unsigned long bits); -extern void _gst_flushbits_int (gst_getbits_t * gb, unsigned long bits); -extern void _gst_getbits_back_int (gst_getbits_t * gb, unsigned long bits); - - -unsigned long gst_getbits_nBitMask[] = { - 0x00000000, 0x80000000, 0xc0000000, 0xe0000000, - 0xf0000000, 0xf8000000, 0xfc000000, 0xfe000000, - 0xff000000, 0xff800000, 0xffc00000, 0xffe00000, - 0xfff00000, 0xfff80000, 0xfffc0000, 0xfffe0000, - 0xffff0000, 0xffff8000, 0xffffc000, 0xffffe000, - 0xfffff000, 0xfffff800, 0xfffffc00, 0xfffffe00, - 0xffffff00, 0xffffff80, 0xffffffc0, 0xffffffe0, - 0xfffffff0, 0xfffffff8, 0xfffffffc, 0xfffffffe -}; - -unsigned long _getbits_masks[] = { - 0x00000000, - 0x00000001, 0x00000003, 0x00000007, 0x0000000f, - 0x0000001f, 0x0000003f, 0x0000007f, 0x000000ff, - 0x000001ff, 0x000003ff, 0x000007ff, 0x00000fff, - 0x00001fff, 0x00003fff, 0x00007fff, 0x0000ffff, - 0x0001ffff, 0x0003ffff, 0x0007ffff, 0x000fffff, - 0x001fffff, 0x003fffff, 0x007fffff, 0x00ffffff, - 0x01ffffff, 0x03ffffff, 0x07ffffff, 0x0fffffff, - 0x1fffffff, 0x3fffffff, 0x7fffffff, 0xffffffff, -}; - -#ifdef unused -unsigned long _getbits_64_minus_index[] = { - 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, - 45, 44, 43, 42, 41, - 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, - 21, 20, 19, 18, 17, - 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 -}; - -/* this routine taken from Intel AppNote AP-527: - "Using MMX[tm] Instructions to Get Bits From a Data Stream" - written in C with libmmx to *closely* mimic Intel's ASM implementation - - this isn't as cycle-efficient, due to the simple fact that I must call - emms() at the end. all state must be kept in *gb, not in registers */ -unsigned long -_gst_getbits_mmx (gst_getbits_t * gb, unsigned long bits) -{ - signed long remaining; - unsigned long result; - - /* NOTE: this is a code-size optimization Intel seems to have missed! - according to the MMX Programmer's Reference Manual, Chapter 5, - neither movd nor movq have any effect on the flags. that means you - can put them before the sub and jl in their code, which I've done - symbolically in this C code. gcc is probably going to lose horribly, - I'll do an inline asm version later. I've a point to prove ;-) */ - /* find the right shift value, put it in mm3 */ - movd_m2r (_getbits_64_minus_index[bits], mm3); - /* load the current quadword into mm0 */ - movq_m2r (gb->qword, mm0); - /* copy it to mm2 */ - movq_r2r (mm0, mm2); - - remaining = gb->bits - bits; - - if (remaining <= 0) { - unsigned long dword1, dword2; - - /* shift the pointer by 64 bits (8 bytes) */ - gb->ptr += 8; - /* add 64 to bits remaining, to bring it positive */ - remaining += 64; - - /* grab the first 32 bits from the buffer and swap them around */ - dword1 = swab32 (*(gb->ptr - 8)); - /* grab the second 32 bits, swap */ - dword2 = swab32 (*(gb->ptr - 4)); - - /* put second dword in mm4 */ - movd_m2r (dword2, mm4); - /* shift mm2 over to make room for new bits */ - psrlq_r2r (mm3, mm2); - - /* put first dword in mm1 */ - movd_m2r (dword1, mm1); - /* shift second dword up 32 bits */ - psrlq_i2r (32, mm4); - - /* put the shift counter in mm3 */ - movd_m2r (remaining, mm3); - /* combine the swapped data in mm4 */ - por_r2r (mm1, mm4); - - /* save off the bits in mm4 to mm0 */ - movq_r2r (mm4, mm0); - /* get the new low-order bits in mm4, shifted by 'mm3' */ - psrlq_r2r (mm3, mm4); - - /* save off new remaining bits */ - gb->bits = remaining; - /* combine bits into mm2 */ - por_r2r (mm2, mm4); - - /* save off the result */ - movd_r2m (mm2, result); - /* get rid of the bits we just read */ - psllq_r2r (mm1, mm0); - - /* save off mm0 */ - movq_r2m (mm0, gb->qword); - - /* finished with MMX */ - emms (); - - /* we have what we came for */ - return (result); - } else { - /* load the number of bits requested into mm1 */ - movd_m2r (bits, mm1); - /* shift the quadword in mm2 by 'mm3' bits */ - psrlq_r2r (mm3, mm2); - - /* update the number of valid bits */ - gb->bits = remaining; - - /* save off the remaining bits */ - movd_r2m (mm2, result); - /* discard those bits in mm0 */ - psllq_r2r (mm1, mm0); - - /* save off mm0 */ - movq_r2m (mm0, gb->qword); - /* finished with MMX */ - emms (); - - /* we have what we came for */ - return (result); - } -} -#endif /* HAVE_LIBMMX */ - -unsigned long -_gst_getbyte (gst_getbits_t * gb, unsigned long bits) -{ - return *gb->ptr++; -} - -/* initialize the getbits structure with the proper getbits func */ -void -gst_getbits_init (gst_getbits_t * gb, GstGetbitsCallback callback, void *data) -{ - gb->ptr = NULL; - gb->bits = 0; - gb->callback = callback; - gb->data = data; - -#ifdef unused - if (1) { - gb->getbits = _gst_getbits_mmx; -/* gb->backbits = _gst_getbits_back_mmx; */ -/* gb->backbytes = _gst_getbits_byteback_mmx; */ -/* printf("gstgetbits: using MMX optimized versions\n"); */ - } else -#endif /* HAVE_LIBMMX */ - { - if (gb->callback) { - gb->getbits = _gst_getbits_int_cb; - gb->showbits = _gst_showbits_int; - gb->flushbits = _gst_flushbits_int; - gb->backbits = _gst_getbits_back_int; -/* printf("gstgetbits: using callback versions\n"); */ - } else { -#ifdef HAVE_CPU_I386 - gb->get1bit = _gst_get1bit_i386; - gb->getbits = _gst_getbits_i386; - gb->getbits_fast = _gst_getbits_fast_i386; - gb->getbyte = _gst_getbyte; - gb->show1bit = _gst_showbits_i386; - gb->showbits = _gst_showbits_i386; - gb->flushbits = _gst_flushbits_i386; - gb->backbits = _gst_getbits_back_i386; -/* printf("gstgetbits: using i386 optimized versions\n"); */ -#else - gb->get1bit = _gst_get1bit_int; - gb->getbits = _gst_getbits_int; - gb->getbits_fast = _gst_getbits_fast_int; - gb->getbyte = _gst_getbyte; - gb->show1bit = _gst_showbits_int; - gb->showbits = _gst_showbits_int; - gb->flushbits = _gst_flushbits_int; - gb->backbits = _gst_getbits_back_int; -/* printf("gstgetbits: using normal versions\n"); */ -#endif - } - } -} - -/* set up the getbits structure with a new buffer */ -void -gst_getbits_newbuf (gst_getbits_t * gb, unsigned char *buffer, - unsigned long len) -{ - gb->ptr = buffer; - gb->endptr = buffer + len; - gb->bits = 0; -#ifdef unused -/* gb->qword = 0; */ -#endif /* HAVE_LIBMMX */ -} - - -static gboolean -plugin_init (GstPlugin * plugin) -{ - return TRUE; -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "gstgetbits", - "Accelerated routines for getting bits from a data stream", - plugin_init, VERSION, GST_LICENSE, GST_PACKAGE, GST_ORIGIN) diff --git a/libs/gst/getbits/getbits.h b/libs/gst/getbits/getbits.h deleted file mode 100644 index e5586e17be..0000000000 --- a/libs/gst/getbits/getbits.h +++ /dev/null @@ -1,131 +0,0 @@ -#ifndef __GST_GETBITS_H__ -#define __GST_GETBITS_H__ - -#include - -/* getbits is critical, we need to forcibly disable DEBUG */ -#define GST_DEBUG_FORCE_DISABLE -#include - -#define swab32(x) GUINT32_FROM_BE(x) - -typedef struct _gst_getbits_t gst_getbits_t; -typedef void (*GstGetbitsCallback) (gst_getbits_t *gb, void *data); - -/* breaks in structure show alignment on quadword boundaries */ -/* FIXME: need to find out how to force GCC to align this to octwords */ -struct _gst_getbits_t { - unsigned char *ptr; - unsigned long *longptr; - unsigned char *endptr; - unsigned long length; - long bits; - unsigned long dword; - unsigned long temp; - - GstGetbitsCallback callback; - void *data; - - unsigned long (*get1bit)(gst_getbits_t *gb, unsigned long bits); - unsigned long (*getbits)(gst_getbits_t *gb, unsigned long bits); - unsigned long (*getbits_fast)(gst_getbits_t *gb, unsigned long bits); - unsigned long (*getbyte)(gst_getbits_t *gb, unsigned long bits); - unsigned long (*show1bit)(gst_getbits_t *gb, unsigned long bits); - unsigned long (*showbits)(gst_getbits_t *gb, unsigned long bits); - void (*flushbits)(gst_getbits_t *gb, unsigned long bits); - void (*backbits)(gst_getbits_t *gb, unsigned long bits); -}; - - -#ifdef GST_GETBITS_INLINE -#include "gstgetbits_inl.h" -#else - -void gst_getbits_init(gst_getbits_t *gb, GstGetbitsCallback callback, void *data); -void gst_getbits_newbuf(gst_getbits_t *gb, unsigned char *buffer, unsigned long len); - -#define gst_getbits_bitoffset(gb) \ -( \ - (-(gb)->bits)&0x7 \ -) - -#define gst_getbits_align_byte(gb) - -#define gst_getbits_bufferpos(gb) ((gb)->ptr) - -#define gst_getbits_bytesleft(gb) ((gb)->endptr - (gb)->ptr) - -#define gst_getbits_bitsleft(gb) (((gb)->endptr - (gb)->ptr)*8 - ((-(gb)->bits)&0x7)) - -#define gst_get1bit(gb) (((gb)->get1bit)(gb, 1)) -#define gst_getbitsX(gb,bits) (((gb)->getbits)(gb,bits)) -#define gst_getbits_fastX(gb,bits) (((gb)->getbits_fast)(gb,bits)) -#define gst_show1bit(gb,bits) (((gb)->show1bit)(gb,bits)) -#define gst_showbitsX(gb,bits) (((gb)->showbits)(gb,bits)) -#define gst_flushbitsX(gb,bits) (((gb)->flushbits)(gb,bits)) -#define gst_backbitsX(gb,bits) (((gb)->backbits)(gb,bits)) - -#define gst_getbyte(gb) (((gb)->getbyte)(gb,8)) - -#define gst_getbits_fastn(gb,n) gst_getbits_fastX(gb, n) - -#define gst_getbitsn(gb,n) gst_getbitsX(gb, n) -#define gst_getbits1(gb) gst_get1bit(gb) -#define gst_getbits2(gb) gst_getbits_fastX(gb, 2) -#define gst_getbits3(gb) gst_getbits_fastX(gb, 3) -#define gst_getbits4(gb) gst_getbits_fastX(gb, 4) -#define gst_getbits5(gb) gst_getbits_fastX(gb, 5) -#define gst_getbits6(gb) gst_getbits_fastX(gb, 6) -#define gst_getbits7(gb) gst_getbits_fastX(gb, 7) -#define gst_getbits8(gb) gst_getbits_fastX(gb, 8) -#define gst_getbits9(gb) gst_getbits_fastX(gb, 9) -#define gst_getbits10(gb) gst_getbitsX(gb, 10) -#define gst_getbits11(gb) gst_getbitsX(gb, 11) -#define gst_getbits12(gb) gst_getbitsX(gb, 12) -#define gst_getbits13(gb) gst_getbitsX(gb, 13) -#define gst_getbits14(gb) gst_getbitsX(gb, 14) -#define gst_getbits15(gb) gst_getbitsX(gb, 15) -#define gst_getbits16(gb) gst_getbitsX(gb, 16) -#define gst_getbits17(gb) gst_getbitsX(gb, 17) -#define gst_getbits18(gb) gst_getbitsX(gb, 18) -#define gst_getbits19(gb) gst_getbitsX(gb, 19) -#define gst_getbits20(gb) gst_getbitsX(gb, 20) -#define gst_getbits21(gb) gst_getbitsX(gb, 21) -#define gst_getbits22(gb) gst_getbitsX(gb, 22) -#define gst_getbits23(gb) gst_getbitsX(gb, 23) - -#define gst_showbitsn(gb,n) gst_showbitsX(gb, n) -#define gst_showbits1(gb) gst_show1bit(gb, 1) -#define gst_showbits2(gb) gst_showbitsX(gb, 2) -#define gst_showbits3(gb) gst_showbitsX(gb, 3) -#define gst_showbits4(gb) gst_showbitsX(gb, 4) -#define gst_showbits5(gb) gst_showbitsX(gb, 5) -#define gst_showbits6(gb) gst_showbitsX(gb, 6) -#define gst_showbits7(gb) gst_showbitsX(gb, 7) -#define gst_showbits8(gb) gst_showbitsX(gb, 8) -#define gst_showbits9(gb) gst_showbitsX(gb, 9) -#define gst_showbits10(gb) gst_showbitsX(gb, 10) -#define gst_showbits11(gb) gst_showbitsX(gb, 11) -#define gst_showbits12(gb) gst_showbitsX(gb, 12) -#define gst_showbits13(gb) gst_showbitsX(gb, 13) -#define gst_showbits14(gb) gst_showbitsX(gb, 14) -#define gst_showbits15(gb) gst_showbitsX(gb, 15) -#define gst_showbits16(gb) gst_showbitsX(gb, 16) -#define gst_showbits17(gb) gst_showbitsX(gb, 17) -#define gst_showbits18(gb) gst_showbitsX(gb, 18) -#define gst_showbits19(gb) gst_showbitsX(gb, 19) -#define gst_showbits20(gb) gst_showbitsX(gb, 20) -#define gst_showbits21(gb) gst_showbitsX(gb, 21) -#define gst_showbits22(gb) gst_showbitsX(gb, 22) -#define gst_showbits23(gb) gst_showbitsX(gb, 23) -#define gst_showbits24(gb) gst_showbitsX(gb, 24) -#define gst_showbits32(gb) gst_showbitsX(gb, 32) - -#define gst_flushbitsn(gb,n) gst_flushbitsX(gb, n) -#define gst_flushbits32(gb) gst_flushbitsX(gb, 32) - -#define gst_backbitsn(gb,n) gst_backbitsX(gb, n) -#define gst_backbits24(gb) gst_backbitsX(gb, 24) -#endif - -#endif /* __GST_GETBITS_H__ */ diff --git a/libs/gst/getbits/gstgetbits_generic.c b/libs/gst/getbits/gstgetbits_generic.c deleted file mode 100644 index 8b54b15bf5..0000000000 --- a/libs/gst/getbits/gstgetbits_generic.c +++ /dev/null @@ -1,132 +0,0 @@ -#include "getbits.h" - -unsigned long _gst_getbits_int_cb (gst_getbits_t * gb, unsigned long bits); -unsigned long _gst_get1bit_int (gst_getbits_t * gb, unsigned long bits); -unsigned long _gst_getbits_int (gst_getbits_t * gb, unsigned long bits); -unsigned long _gst_getbits_fast_int (gst_getbits_t * gb, unsigned long bits); -unsigned long _gst_showbits_int (gst_getbits_t * gb, unsigned long bits); -void _gst_flushbits_int (gst_getbits_t * gb, unsigned long bits); -void _gst_getbits_back_int (gst_getbits_t * gb, unsigned long bits); - - -unsigned long -_gst_getbits_int_cb (gst_getbits_t * gb, unsigned long bits) -{ - int result; - int bitsleft; - - /*printf("gst_getbits%lu %ld %p %08x\n", bits, gb->bits, gb->ptr, gb->dword); */ - - if (!bits) - return 0; - - gb->bits -= bits; - result = gb->dword >> (32 - bits); - - if (gb->bits < 0) { - - gb->ptr += 4; - - bitsleft = (gb->endptr - gb->ptr) * 8; - bits = -gb->bits; - gb->bits += (bitsleft > 32 ? 32 : bitsleft); - - if (gb->endptr <= gb->ptr) { - (gb->callback) (gb, gb->data); - gb->bits -= bits; - } - gb->dword = swab32 (*((unsigned long *) (gb->ptr))); - - result |= (gb->dword >> (32 - bits)); - } - gb->dword <<= bits; - - return result; -} - -unsigned long -_gst_get1bit_int (gst_getbits_t * gb, unsigned long bits) -{ - unsigned char rval; - - rval = *gb->ptr << gb->bits; - - gb->bits++; - gb->ptr += (gb->bits >> 3); - gb->bits &= 0x7; - - GST_DEBUG ("getbits%ld, %08x", bits, rval); - return rval >> 7; -} - -unsigned long -_gst_getbits_int (gst_getbits_t * gb, unsigned long bits) -{ - unsigned long rval; - - if (bits == 0) - return 0; - - rval = swab32 (*((unsigned long *) (gb->ptr))); - rval <<= gb->bits; - - gb->bits += bits; - - rval >>= (32 - bits); - gb->ptr += (gb->bits >> 3); - gb->bits &= 0x7; - - GST_DEBUG ("getbits%ld, %08lx", bits, rval); - return rval; -} - -unsigned long -_gst_getbits_fast_int (gst_getbits_t * gb, unsigned long bits) -{ - unsigned long rval; - - rval = (unsigned char) (gb->ptr[0] << gb->bits); - rval |= ((unsigned int) gb->ptr[1] << gb->bits) >> 8; - rval <<= bits; - rval >>= 8; - - gb->bits += bits; - gb->ptr += (gb->bits >> 3); - gb->bits &= 0x7; - - GST_DEBUG ("getbits%ld, %08lx", bits, rval); - return rval; -} - -unsigned long -_gst_showbits_int (gst_getbits_t * gb, unsigned long bits) -{ - unsigned long rval; - - if (bits == 0) - return 0; - - rval = swab32 (*((unsigned long *) (gb->ptr))); - rval <<= gb->bits; - rval >>= (32 - bits); - - GST_DEBUG ("showbits%ld, %08lx", bits, rval); - return rval; -} - -void -_gst_flushbits_int (gst_getbits_t * gb, unsigned long bits) -{ - gb->bits += bits; - gb->ptr += (gb->bits >> 3); - gb->bits &= 0x7; - GST_DEBUG ("flushbits%ld", bits); -} - -void -_gst_getbits_back_int (gst_getbits_t * gb, unsigned long bits) -{ - gb->bits -= bits; - gb->ptr += (gb->bits >> 3); - gb->bits &= 0x7; -} diff --git a/libs/gst/getbits/gstgetbits_i386.s b/libs/gst/getbits/gstgetbits_i386.s deleted file mode 100644 index 9ee95ae4f2..0000000000 --- a/libs/gst/getbits/gstgetbits_i386.s +++ /dev/null @@ -1,115 +0,0 @@ - .align 16 -.globl _gst_getbits_i386 - .type _gst_getbits_i386,@function -_gst_getbits_i386: - cmpl $0,8(%esp) - jne .L39 - xorl %eax,%eax - ret -.L39: - movl 4(%esp),%edx - movl (%edx),%ecx - movl (%ecx),%eax - bswap %eax - movl 16(%edx),%ecx - shll %cl, %eax - movl 8(%esp),%ecx - addl %ecx, 16(%edx) - negl %ecx - addl $32,%ecx - shrl %cl, %eax - movl 16(%edx),%ecx - sarl $3,%ecx - addl %ecx,(%edx) - andl $7,16(%edx) - ret - - .align 16 -.globl _gst_getbits_fast_i386 - .type _gst_getbits_fast_i386,@function -_gst_getbits_fast_i386: - movl 4(%esp),%edx - movl (%edx),%ecx - movzbl 1(%ecx),%eax - movb (%ecx), %ah - movl 16(%edx),%ecx - shlw %cl, %ax - movl 8(%esp),%ecx - addl %ecx, 16(%edx) - negl %ecx - addl $16,%ecx - shrl %cl, %eax - movl 16(%edx),%ecx - sarl $3,%ecx - addl %ecx,(%edx) - andl $7,16(%edx) - ret - - .align 16 -.globl _gst_get1bit_i386 - .type _gst_get1bit_i386,@function -_gst_get1bit_i386: - movl 4(%esp),%edx - movl (%edx),%ecx - movzbl (%ecx),%eax - movl 16(%edx),%ecx - incl %ecx - rolb %cl, %al - andb $1, %al - movl %ecx, 16(%edx) - andl $7,16(%edx) - sarl $3,%ecx - addl %ecx,(%edx) - ret - - .align 16 -.globl _gst_showbits_i386 - .type _gst_showbits_i386,@function -_gst_showbits_i386: - cmpl $0,8(%esp) - jne .L40 - xorl %eax,%eax - ret -.L40: - movl 4(%esp),%edx - movl (%edx),%ecx - movl (%ecx), %eax - bswap %eax - movl 16(%edx),%ecx - shll %cl, %eax - movl 8(%esp),%ecx - negl %ecx - addl $32,%ecx - shrl %cl, %eax - ret - - - .align 16 -.globl _gst_flushbits_i386 - .type _gst_flushbits_i386,@function -_gst_flushbits_i386: - movl 4(%esp),%ecx - movl 16(%ecx),%eax - addl 8(%esp),%eax - movl %eax, %edx - sarl $3,%eax - addl %eax,(%ecx) - andl $7, %edx - movl %edx, 16(%ecx) - ret - - - .align 16 -.globl _gst_getbits_back_i386 - .type _gst_getbits_back_i386,@function -_gst_getbits_back_i386: - movl 4(%esp),%edx - movl 16(%edx),%ecx - subl 8(%esp),%ecx - movl %ecx, %eax - sarl $3,%ecx - addl %ecx,(%edx) - andl $7,%eax - movl %eax, 16(%edx) - ret - diff --git a/libs/gst/getbits/gstgetbits_inl.h b/libs/gst/getbits/gstgetbits_inl.h deleted file mode 100644 index 32c5b2aa67..0000000000 --- a/libs/gst/getbits/gstgetbits_inl.h +++ /dev/null @@ -1,302 +0,0 @@ -/* - * Copyright (c) 1995 The Regents of the University of California. - * All rights reserved. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose, without fee, and without written agreement is - * hereby granted, provided that the above copyright notice and the following - * two paragraphs appear in all copies of this software. - * - * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR - * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT - * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF - * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS - * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO - * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - */ - -/* - * Portions of this software Copyright (c) 1995 Brown University. - * All rights reserved. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose, without fee, and without written agreement - * is hereby granted, provided that the above copyright notice and the - * following two paragraphs appear in all copies of this software. - * - * IN NO EVENT SHALL BROWN UNIVERSITY BE LIABLE TO ANY PARTY FOR - * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT - * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF BROWN - * UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * BROWN UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" - * BASIS, AND BROWN UNIVERSITY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, - * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - */ - -/* - Changes to make the code reentrant: - deglobalized: curBits, curVidStream - deglobalized: bitOffset, bitLength, bitBuffer in vid_stream, not used - here - Additional changes: - -lsh@cs.brown.edu (Loring Holden) - */ - -#ifndef __GST_GETBITS_INL_H__ -#define __GST_GETBITS_INL_H__ - -#include - -/*#define GETBITS_DEBUG_ENABLED */ -/*#define GETBITS_OVERRUN_ENABLED */ - -#ifdef GETBITS_DEBUG_ENABLED -#define debug2(format,args...) g_print(format,##args) -#define debug(format,args...) g_print(format,##args), -#else -#define debug(format,args...) -#define debug2(format,args...) -#endif - -#ifdef GETBITS_OVERRUN_ENABLED -#define checklength2(src, dst) (((unsigned char*)src)<(dst)?0:printf("overrun !! %p>=%p %ld %s %d\n", (src), (dst), (gb)->bits, __PRETTY_FUNCTION__, __LINE__)) -#define checklength(src, dst) (((unsigned char*)src)<(dst)?0:printf("overrun !! %p>=%p %ld %s %d\n", (src), (dst), (gb)->bits, __PRETTY_FUNCTION__, __LINE__)), -#else -#define checklength(src, dst) -#define checklength2(src, dst) -#endif - -#define swab32(x) GUINT32_FROM_BE(x) - -/* External declarations for bitstream i/o operations. */ -extern unsigned long gst_getbits_nBitMask[]; - -#define gst_getbits_init(gb, callback, data) - -#define gst_getbits_newbuf(gb, buffer, len) \ -{ \ - (gb)->longptr = (unsigned long *)(buffer); \ - (gb)->endptr = (unsigned char *)buffer+len; \ - (gb)->length = len; \ - (gb)->bits = 0; \ - (gb)->dword = swab32(*(gb)->longptr); \ -} - -#define gst_getbits_bitoffset(gb) \ -( \ - debug("bitoffset: %ld %p\n", (gb)->bits, (gb)->longptr) \ - (gb)->bits \ -) - -#define gst_getbits_bufferpos(gb) ((gb)->longptr) - -#define gst_getbits_bytesleft(gb) ((gb)->endptr - (unsigned char*)(gb)->longptr) - -#define gst_getbits_bitsleft(gb) (((gb)->endptr - (unsigned char*)(gb)->longptr)*8 - (gb)->bits) - -#define gst_getbits1(gb) \ -( \ - ((gb)->temp = (((gb)->dword & 0x80000000) != 0)), \ - (gb)->dword <<= 1, \ - (gb)->bits++, \ - \ - ((gb)->bits & 0x20 ? ( \ - (gb)->bits = 0, \ - (gb)->longptr++, \ - checklength((gb)->longptr, (gb)->endptr) \ - ((gb)->dword = swab32(*(gb)->longptr)) \ - ) \ - :0), \ - debug("getbits1 : %04lx %08lx %p\n", (gb)->temp, (gb)->dword, (gb)->longptr) \ - (gb)->temp \ -) - -#define gst_getbits2(gb) \ -( \ - (gb)->bits += 2, \ - \ - ((gb)->bits & 0x20 ? ( \ - (gb)->bits -= 32, \ - (gb)->longptr++, \ - checklength((gb)->longptr, (gb)->endptr) \ - ((gb)->bits ? ( \ - ((gb)->dword |= \ - (swab32(*(gb)->longptr) >> (2 - (gb)->bits))) \ - ) \ - : 0 \ - ),( \ - ((gb)->temp = (((gb)->dword & 0xc0000000) >> 30)), \ - ((gb)->dword = swab32(*(gb)->longptr) << (gb)->bits)) \ - ) \ - : ( \ - ((gb)->temp = (((gb)->dword & 0xc0000000) >> 30)), \ - ((gb)->dword <<= 2) \ - ) \ - ), \ - debug("getbits2 : %04lx %08lx %p\n", (gb)->temp, (gb)->dword, (gb)->longptr) \ - (gb)->temp \ -) - -#define gst_getbitsX(gb, num, mask, shift) \ -( \ - (gb)->bits += (num), \ - \ - ((gb)->bits & 0x20 ? ( \ - (gb)->bits -= 32, \ - (gb)->longptr++, \ - checklength((gb)->longptr, (gb)->endptr) \ - ((gb)->bits ? ( \ - ((gb)->dword |= (swab32(*(gb)->longptr) >> \ - ((num) - (gb)->bits))) \ - ) \ - :0 \ - ), \ - ((gb)->temp = (((gb)->dword & (mask)) >> (shift))), \ - ((gb)->dword = swab32(*(gb)->longptr) << (gb)->bits) \ - ) \ - : ( \ - ((gb)->temp = (((gb)->dword & mask) >> shift)), \ - ((gb)->dword <<= (num)) \ - ) \ - ), \ - debug("getbits%-2d: %04lx %08lx %lu %p\n", num, (gb)->temp, (gb)->dword, mask, (gb)->longptr) \ - (gb)->temp \ -) - -#define gst_getbits3(gb) gst_getbitsX(gb, 3, 0xe0000000UL, 29) -#define gst_getbits4(gb) gst_getbitsX(gb, 4, 0xf0000000UL, 28) -#define gst_getbits5(gb) gst_getbitsX(gb, 5, 0xf8000000UL, 27) -#define gst_getbits6(gb) gst_getbitsX(gb, 6, 0xfc000000UL, 26) -#define gst_getbits7(gb) gst_getbitsX(gb, 7, 0xfe000000UL, 25) -#define gst_getbits8(gb) gst_getbitsX(gb, 8, 0xff000000UL, 24) -#define gst_getbits9(gb) gst_getbitsX(gb, 9, 0xff800000UL, 23) -#define gst_getbits10(gb) gst_getbitsX(gb, 10, 0xffc00000UL, 22) -#define gst_getbits11(gb) gst_getbitsX(gb, 11, 0xffe00000UL, 21) -#define gst_getbits12(gb) gst_getbitsX(gb, 12, 0xfff00000UL, 20) -#define gst_getbits13(gb) gst_getbitsX(gb, 13, 0xfff80000UL, 19) -#define gst_getbits14(gb) gst_getbitsX(gb, 14, 0xfffc0000UL, 18) -#define gst_getbits15(gb) gst_getbitsX(gb, 15, 0xfffe0000UL, 17) -#define gst_getbits16(gb) gst_getbitsX(gb, 16, 0xffff0000UL, 16) -#define gst_getbits17(gb) gst_getbitsX(gb, 17, 0xffff8000UL, 15) -#define gst_getbits18(gb) gst_getbitsX(gb, 18, 0xffffc000UL, 14) -#define gst_getbits19(gb) gst_getbitsX(gb, 19, 0xffffe000UL, 13) -#define gst_getbits20(gb) gst_getbitsX(gb, 20, 0xfffff000UL, 12) -#define gst_getbits21(gb) gst_getbitsX(gb, 21, 0xfffff800UL, 11) -#define gst_getbits22(gb) gst_getbitsX(gb, 22, 0xfffffc00UL, 10) -#define gst_getbits32(gb) gst_getbitsX(gb, 32, 0xffffffffUL, 0) - -#define gst_getbitsn(gb,num) gst_getbitsX(gb, (num), ((num) ? ((0xffffffffUL) << (32-(num))):0), (32-(num))) - -#define gst_showbits32(gb) \ -( \ - ((gb)->bits ? ( \ - (gb)->dword | (swab32(*((gb)->longptr+1)) >> \ - (32 - (gb)->bits)) \ - ) \ - : ( \ - (gb)->dword \ - ) \ - ) \ -) - -#define gst_showbitsX(gb, num, mask, shift) \ -( \ - ((gb)->temp = (gb)->bits + num), \ - ((gb)->temp > 32 ? ( \ - (gb)->temp -= 32, \ - (((gb)->dword & mask) >> shift) | \ - (swab32(*((gb)->longptr+1)) >> (shift + (num - (gb)->temp))) \ - ) \ - : ( \ - (((gb)->dword & mask) >> shift) \ - ) \ - ) \ -) - -#define gst_showbits1(gb) gst_showbitsX(gb, 1, 0x80000000, 31) -#define gst_showbits2(gb) gst_showbitsX(gb, 2, 0xc0000000, 30) -#define gst_showbits3(gb) gst_showbitsX(gb, 3, 0xe0000000, 29) -#define gst_showbits4(gb) gst_showbitsX(gb, 4, 0xf0000000, 28) -#define gst_showbits5(gb) gst_showbitsX(gb, 5, 0xf8000000, 27) -#define gst_showbits6(gb) gst_showbitsX(gb, 6, 0xfc000000, 26) -#define gst_showbits7(gb) gst_showbitsX(gb, 7, 0xfe000000, 25) -#define gst_showbits8(gb) gst_showbitsX(gb, 8, 0xff000000, 24) -#define gst_showbits9(gb) gst_showbitsX(gb, 9, 0xff800000, 23) -#define gst_showbits10(gb) gst_showbitsX(gb, 10, 0xffc00000, 22) -#define gst_showbits11(gb) gst_showbitsX(gb, 11, 0xffe00000, 21) -#define gst_showbits12(gb) gst_showbitsX(gb, 12, 0xfff00000, 20) -#define gst_showbits13(gb) gst_showbitsX(gb, 13, 0xfff80000, 19) -#define gst_showbits14(gb) gst_showbitsX(gb, 14, 0xfffc0000, 18) -#define gst_showbits15(gb) gst_showbitsX(gb, 15, 0xfffe0000, 17) -#define gst_showbits16(gb) gst_showbitsX(gb, 16, 0xffff0000, 16) -#define gst_showbits17(gb) gst_showbitsX(gb, 17, 0xffff8000, 15) -#define gst_showbits18(gb) gst_showbitsX(gb, 18, 0xffffc000, 14) -#define gst_showbits19(gb) gst_showbitsX(gb, 19, 0xffffe000, 13) -#define gst_showbits20(gb) gst_showbitsX(gb, 20, 0xfffff000, 12) -#define gst_showbits21(gb) gst_showbitsX(gb, 21, 0xfffff800, 11) -#define gst_showbits22(gb) gst_showbitsX(gb, 22, 0xfffffc00, 10) -#define gst_showbits23(gb) gst_showbitsX(gb, 23, 0xfffffe00, 9) -#define gst_showbits24(gb) gst_showbitsX(gb, 24, 0xffffff00, 8) -#define gst_showbits25(gb) gst_showbitsX(gb, 25, 0xffffff80, 7) -#define gst_showbits26(gb) gst_showbitsX(gb, 26, 0xffffffc0, 6) -#define gst_showbits27(gb) gst_showbitsX(gb, 27, 0xffffffe0, 5) -#define gst_showbits28(gb) gst_showbitsX(gb, 28, 0xfffffff0, 4) -#define gst_showbits29(gb) gst_showbitsX(gb, 29, 0xfffffff8, 3) -#define gst_showbits30(gb) gst_showbitsX(gb, 30, 0xfffffffc, 2) -#define gst_showbits31(gb) gst_showbitsX(gb, 31, 0xfffffffe, 1) - -#define gst_showbitsn(gb,num) gst_showbitsX(gb, (num), ((0xffffffff) << (32-num)), (32-(num))) - -#define gst_flushbits32(gb) \ -{ \ - (gb)->longptr++; \ - checklength2((gb)->longptr, (gb)->endptr); \ - (gb)->dword = swab32(*(gb)->longptr) << (gb)->bits; \ -} - - -#define gst_flushbitsn(gb, num) \ -{ \ - (gb)->bits += num; \ - \ - if ((gb)->bits & 0x20) { \ - (gb)->bits -= 32; \ - (gb)->longptr++; \ - checklength2((gb)->longptr, (gb)->endptr); \ - (gb)->dword = swab32(*(gb)->longptr) << (gb)->bits; \ - } \ - else { \ - (gb)->dword <<= num; \ - } \ - debug2("flushbits%-2d: %08lx %p\n", num, (gb)->dword, (gb)->longptr); \ -} - -#define gst_backbits24(gb) \ -{ \ - (gb)->bits -= 24; \ - if ((gb)->bits < 0) { \ - (gb)->bits += 32; \ - (gb)->longptr--; \ - } \ - (gb)->dword = swab32(*(gb)->longptr) << (gb)->bits; \ -} - -#define gst_backbitsn(gb, num) \ -{ \ - (gb)->bits -= num; \ - while ((gb)->bits < 0) { \ - (gb)->bits += 32; \ - (gb)->longptr--; \ - } \ - (gb)->dword = swab32(*(gb)->longptr) << (gb)->bits; \ - debug2("backbits%-2d: %08lx %p\n", num, (gb)->dword, (gb)->longptr); \ -} - -#endif /* __GST_GETBITS_INL_H__ */