1 /*****************************************************************************
3 *****************************************************************************
4 * Copyright (C) 2010-2015 L-SMASH project
6 * Authors: Takashi Hirata <silverfilain@gmail.com>
8 * Permission to use, copy, modify, and/or distribute this software for any
9 * purpose with or without fee is hereby granted, provided that the above
10 * copyright notice and this permission notice appear in all copies.
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 *****************************************************************************/
21 /* This file is available under an ISC license. */
30 void lsmash_bits_init( lsmash_bits_t
* bits
, lsmash_bs_t
*bs
);
31 lsmash_bits_t
*lsmash_bits_create( lsmash_bs_t
*bs
);
32 void lsmash_bits_cleanup( lsmash_bits_t
*bits
);
33 void lsmash_bits_empty( lsmash_bits_t
*bits
);
34 void lsmash_bits_put_align( lsmash_bits_t
*bits
);
35 void lsmash_bits_get_align( lsmash_bits_t
*bits
);
36 void lsmash_bits_put( lsmash_bits_t
*bits
, uint32_t width
, uint64_t value
);
37 uint64_t lsmash_bits_get( lsmash_bits_t
*bits
, uint32_t width
);
38 void *lsmash_bits_export_data( lsmash_bits_t
*bits
, uint32_t *length
);
39 int lsmash_bits_import_data( lsmash_bits_t
*bits
, void *data
, uint32_t length
);
41 lsmash_bits_t
*lsmash_bits_adhoc_create();
42 void lsmash_bits_adhoc_cleanup( lsmash_bits_t
*bits
);