diff options
author | John Stebbins <[email protected]> | 2019-09-11 09:56:06 -0700 |
---|---|---|
committer | John Stebbins <[email protected]> | 2019-09-12 10:22:07 -0700 |
commit | 1b7948495fcf4d511e62d7f9c3a0c1a3ccb59f80 (patch) | |
tree | c87c308f35d862678a4bca37637d24acb8de1c2c /libhb/handbrake/nal_units.h | |
parent | a7f548861f9f0be309659e93eaccd1994a3a5cfe (diff) |
libhb: resolve header conflicts with pango/harfbuzz
Newest versions appear to have a "common.h" somewhere that is
interfering with libhb/common.h.
move headers into "handbrake" subdirectory
Diffstat (limited to 'libhb/handbrake/nal_units.h')
-rw-r--r-- | libhb/handbrake/nal_units.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/libhb/handbrake/nal_units.h b/libhb/handbrake/nal_units.h new file mode 100644 index 000000000..0efccc476 --- /dev/null +++ b/libhb/handbrake/nal_units.h @@ -0,0 +1,51 @@ +/* nal_units.h + * + * Copyright (c) 2003-2019 HandBrake Team + * This file is part of the HandBrake source code. + * Homepage: <http://handbrake.fr/>. + * It may be used under the terms of the GNU General Public License v2. + * For full terms see the file COPYING file or visit http://www.gnu.org/licenses/gpl-2.0.html + */ + +#ifndef HB_NAL_UNITS_H +#define HB_NAL_UNITS_H + +#include <stdint.h> + +#include "handbrake/common.h" + +/* + * Write a NAL unit of the specified size to the provided + * output buffer, using the requested output format. + * Returns the amount (in bytes) of data written to the buffer. + * + * The provided NAL unit must start with the NAL unit header. + * + * Note: the buffer is assumed to be large enough to hold the NAL unit + * as well as any additional data the function may prepend/append to it. + * + * The caller may check the minimum required buffer size by passing a + * NULL buffer to the function and checking the returned size value. + */ +size_t hb_nal_unit_write_annexb(uint8_t *buf, const uint8_t *nal_unit, const size_t nal_unit_size); +size_t hb_nal_unit_write_isomp4(uint8_t *buf, const uint8_t *nal_unit, const size_t nal_unit_size); + +/* + * Search the provided data buffer for NAL units in Annex B format. + * + * Returns a pointer to the start (start code prefix excluded) of the + * first NAL unit found, or NULL if no NAL units were found in the buffer. + * + * On input, size holds the length of the provided data buffer. + * On output, size holds the length of the returned NAL unit. + */ +uint8_t* hb_annexb_find_next_nalu(const uint8_t *start, size_t *size); + +/* + * Returns a newly-allocated buffer holding a copy of the provided + * NAL unit bitstream data, converted to the requested format. + */ +hb_buffer_t* hb_nal_bitstream_annexb_to_mp4(const uint8_t *data, const size_t size); +hb_buffer_t* hb_nal_bitstream_mp4_to_annexb(const uint8_t *data, const size_t size, const uint8_t nal_length_size); + +#endif // HB_NAL_UNITS_H |