diff options
author | Anton Khirnov <anton@khirnov.net> | 2014-05-26 09:43:50 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2014-05-28 07:48:30 +0200 |
commit | 5fdaf312c5541b77b6364db8b49d6abb416a25c0 (patch) | |
tree | baabc560f234cce310001a1348f80645de8ddb0e /libavcodec/flac.h | |
parent | 54ed488b1af583df6c9d2a73b4a44f16b7e4f82c (diff) | |
download | ffmpeg-5fdaf312c5541b77b6364db8b49d6abb416a25c0.tar.gz |
flac: make avpriv_flac_parse_block_header() inline
This avoids all the ABI troubles associated with avpriv_.
Since this function is very small and does not depend on any tables,
making it inline should have no adverse effects.
Diffstat (limited to 'libavcodec/flac.h')
-rw-r--r-- | libavcodec/flac.h | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/libavcodec/flac.h b/libavcodec/flac.h index 63f41c25a4..fbd34a18b1 100644 --- a/libavcodec/flac.h +++ b/libavcodec/flac.h @@ -28,6 +28,7 @@ #define AVCODEC_FLAC_H #include "avcodec.h" +#include "bytestream.h" #include "get_bits.h" #define FLAC_STREAMINFO_SIZE 34 @@ -109,15 +110,10 @@ int avpriv_flac_is_extradata_valid(AVCodecContext *avctx, enum FLACExtradataFormat *format, uint8_t **streaminfo_start); -/** - * Parse the metadata block parameters from the header. - * @param[in] block_header header data, at least 4 bytes - * @param[out] last indicator for last metadata block - * @param[out] type metadata block type - * @param[out] size metadata block size - */ +#if LIBAVCODEC_VERSION_MAJOR < 56 void avpriv_flac_parse_block_header(const uint8_t *block_header, int *last, int *type, int *size); +#endif /** * Calculate an estimate for the maximum frame size based on verbatim mode. @@ -140,4 +136,23 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, void ff_flac_set_channel_layout(AVCodecContext *avctx); +/** + * Parse the metadata block parameters from the header. + * @param[in] block_header header data, at least 4 bytes + * @param[out] last indicator for last metadata block + * @param[out] type metadata block type + * @param[out] size metadata block size + */ +static av_always_inline void flac_parse_block_header(const uint8_t *block_header, + int *last, int *type, int *size) +{ + int tmp = bytestream_get_byte(&block_header); + if (last) + *last = tmp & 0x80; + if (type) + *type = tmp & 0x7F; + if (size) + *size = bytestream_get_be24(&block_header); +} + #endif /* AVCODEC_FLAC_H */ |