## gstgetbits

gstgetbits —

## Synopsis

    #include <libs/getbits/gstgetbits.h>

    struct      gst_getbits_t;
    void        (*GstGetbitsCallback)           (gst_getbits_t *gb,
                                                 void *data);
    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)
    #define     gst_getbits_align_byte          (gb)
    #define     gst_getbits_bufferpos           (gb)
    #define     gst_getbits_bytesleft           (gb)
    #define     gst_getbits_bitsleft            (gb)
    #define     gst_getbyte                     (gb)
    #define     gst_getbits_fastn               (gb,n)
    #define     gst_getbitsn                    (gb,n)
    #define     gst_getbits1                    (gb)
    #define     gst_getbits2                    (gb)
    #define     gst_getbits3                    (gb)
    #define     gst_getbits4                    (gb)
    #define     gst_getbits5                    (gb)
    #define     gst_getbits6                    (gb)
    #define     gst_getbits7                    (gb)
    #define     gst_getbits8                    (gb)
    #define     gst_getbits9                    (gb)
    #define     gst_getbits10                   (gb)
    #define     gst_getbits11                   (gb)
    #define     gst_getbits12                   (gb)
    #define     gst_getbits13                   (gb)
    #define     gst_getbits14                   (gb)
    #define     gst_getbits15                   (gb)
    #define     gst_getbits16                   (gb)
    #define     gst_getbits17                   (gb)
    #define     gst_getbits18                   (gb)
    #define     gst_getbits19                   (gb)
    #define     gst_getbits20                   (gb)
    #define     gst_getbits21                   (gb)
    #define     gst_getbits22                   (gb)
    #define     gst_getbits23                   (gb)
    #define     gst_showbitsn                   (gb,n)
    #define     gst_showbits1                   (gb)
    #define     gst_showbits2                   (gb)
    #define     gst_showbits3                   (gb)
    #define     gst_showbits4                   (gb)
    #define     gst_showbits5                   (gb)
    #define     gst_showbits6                   (gb)
    #define     gst_showbits7                   (gb)
    #define     gst_showbits8                   (gb)
    #define     gst_showbits9                   (gb)
    #define     gst_showbits10                  (gb)
    #define     gst_showbits11                  (gb)
    #define     gst_showbits12                  (gb)
    #define     gst_showbits13                  (gb)
    #define     gst_showbits14                  (gb)
    #define     gst_showbits15                  (gb)
    #define     gst_showbits16                  (gb)
    #define     gst_showbits17                  (gb)
    #define     gst_showbits18                  (gb)
    #define     gst_showbits19                  (gb)
    #define     gst_showbits20                  (gb)
    #define     gst_showbits21                  (gb)
    #define     gst_showbits22                  (gb)
    #define     gst_showbits23                  (gb)
    #define     gst_showbits24                  (gb)
    #define     gst_showbits32                  (gb)
    #define     gst_flushbitsn                  (gb,n)
    #define     gst_flushbits32                 (gb)
    #define     gst_backbitsn                   (gb,n)
    #define     gst_backbits24                  (gb)

## Description

## Details

### struct gst_getbits_t

    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 HAVE_LIBMMX
      mmx_t qword;			/* qword */
    #endif /* HAVE_LIBMMX */

    #ifdef HAVE_LIBSSE
      sse_t oword;			/* oword */
    #endif /* HAVE_LIBSSE */
    };

### GstGetbitsCallback ()

    void        (*GstGetbitsCallback)           (gst_getbits_t *gb,
                                                 void *data);

`gb` : |
`data` : |

### gst_getbits_init ()

    void        gst_getbits_init                (gst_getbits_t *gb,
                                                 GstGetbitsCallback callback,
                                                 void *data);

`gb` : |
`callback` : |
`data` : |

### gst_getbits_newbuf ()

    void        gst_getbits_newbuf              (gst_getbits_t *gb,
                                                 unsigned char *buffer,
                                                 unsigned long len);

`gb` : |
`buffer` : |
`Param3` : |

### gst_getbits_bitoffset()

    #define     gst_getbits_bitoffset(gb)

`gb` : |

### gst_getbits_align_byte()

    #define gst_getbits_align_byte(gb)

`gb` : |

### gst_getbits_bufferpos()

    #define     gst_getbits_bufferpos(gb)

`gb` : |

### gst_getbits_bytesleft()

    #define     gst_getbits_bytesleft(gb)

`gb` : |

### gst_getbits_bitsleft()

    #define     gst_getbits_bitsleft(gb)

`gb` : |

### gst_getbyte()

    #define gst_getbyte(gb) (((gb)->getbyte)(gb,8))

`gb` : |

### gst_getbits_fastn()

    #define gst_getbits_fastn(gb,n) gst_getbits_fastX(gb, n)

`gb` : |
`n` : |

### gst_getbitsn()

    #define     gst_getbitsn(gb,n)

`gb` : |
`n` : |

### gst_getbits1()

    #define     gst_getbits1(gb)

`gb` : |

### gst_getbits2()

    #define     gst_getbits2(gb)

`gb` : |

### gst_getbits3()

    #define     gst_getbits3(gb)

`gb` : |

### gst_getbits4()

    #define     gst_getbits4(gb)

`gb` : |

### gst_getbits5()

    #define     gst_getbits5(gb)

`gb` : |

### gst_getbits6()

    #define     gst_getbits6(gb)

`gb` : |

### gst_getbits7()

    #define     gst_getbits7(gb)

`gb` : |

### gst_getbits8()

    #define     gst_getbits8(gb)

`gb` : |

### gst_getbits9()

    #define     gst_getbits9(gb)

`gb` : |

### gst_getbits10()

    #define     gst_getbits10(gb)

`gb` : |

### gst_getbits11()

    #define     gst_getbits11(gb)

`gb` : |

### gst_getbits12()

    #define     gst_getbits12(gb)

`gb` : |

### gst_getbits13()

    #define     gst_getbits13(gb)

`gb` : |

### gst_getbits14()

    #define     gst_getbits14(gb)

`gb` : |

### gst_getbits15()

    #define     gst_getbits15(gb)

`gb` : |

### gst_getbits16()

    #define     gst_getbits16(gb)

`gb` : |

### gst_getbits17()

    #define     gst_getbits17(gb)

`gb` : |

### gst_getbits18()

    #define     gst_getbits18(gb)

`gb` : |

### gst_getbits19()

    #define     gst_getbits19(gb)

`gb` : |

### gst_getbits20()

    #define     gst_getbits20(gb)

`gb` : |

### gst_getbits21()

    #define     gst_getbits21(gb)

`gb` : |

### gst_getbits22()

    #define     gst_getbits22(gb)

`gb` : |

### gst_getbits23()

    #define gst_getbits23(gb) gst_getbitsX(gb, 23)

`gb` : |

### gst_showbitsn()

    #define     gst_showbitsn(gb,n)

`gb` : |
`n` : |

### gst_showbits1()

    #define     gst_showbits1(gb)

`gb` : |

### gst_showbits2()

    #define     gst_showbits2(gb)

`gb` : |

### gst_showbits3()

    #define     gst_showbits3(gb)

`gb` : |

### gst_showbits4()

    #define     gst_showbits4(gb)

`gb` : |

### gst_showbits5()

    #define     gst_showbits5(gb)

`gb` : |

### gst_showbits6()

    #define     gst_showbits6(gb)

`gb` : |

### gst_showbits7()

    #define     gst_showbits7(gb)

`gb` : |

### gst_showbits8()

    #define     gst_showbits8(gb)

`gb` : |

### gst_showbits9()

    #define     gst_showbits9(gb)

`gb` : |

### gst_showbits10()

    #define     gst_showbits10(gb)

`gb` : |

### gst_showbits11()

    #define     gst_showbits11(gb)

`gb` : |

### gst_showbits12()

    #define     gst_showbits12(gb)

`gb` : |

### gst_showbits13()

    #define     gst_showbits13(gb)

`gb` : |

### gst_showbits14()

    #define     gst_showbits14(gb)

`gb` : |

### gst_showbits15()

    #define     gst_showbits15(gb)

`gb` : |

### gst_showbits16()

    #define     gst_showbits16(gb)

`gb` : |

### gst_showbits17()

    #define     gst_showbits17(gb)

`gb` : |

### gst_showbits18()

    #define     gst_showbits18(gb)

`gb` : |

### gst_showbits19()

    #define     gst_showbits19(gb)

`gb` : |

### gst_showbits20()

    #define     gst_showbits20(gb)

`gb` : |

### gst_showbits21()

    #define     gst_showbits21(gb)

`gb` : |

### gst_showbits22()

    #define     gst_showbits22(gb)

`gb` : |

### gst_showbits23()

    #define     gst_showbits23(gb)

`gb` : |

### gst_showbits24()

    #define     gst_showbits24(gb)

`gb` : |

### gst_showbits32()

    #define     gst_showbits32(gb)

`gb` : |

### gst_flushbitsn()

    #define     gst_flushbitsn(gb,n)

`gb` : |
`n` : |

### gst_flushbits32()

    #define     gst_flushbits32(gb)

`gb` : |

### gst_backbitsn()

    #define     gst_backbitsn(gb,n)

`gb` : |
`n` : |

### gst_backbits24()

    #define     gst_backbits24(gb)

`gb` : |