Merge commit '5fdaf312c5541b77b6364db8b49d6abb416a25c0'
* commit '5fdaf312c5541b77b6364db8b49d6abb416a25c0': flac: make avpriv_flac_parse_block_header() inline Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		@@ -236,14 +236,10 @@ void avpriv_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *
 | 
				
			|||||||
    skip_bits_long(&gb, 64); /* md5 sum */
 | 
					    skip_bits_long(&gb, 64); /* md5 sum */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if LIBAVCODEC_VERSION_MAJOR < 56
 | 
				
			||||||
void avpriv_flac_parse_block_header(const uint8_t *block_header,
 | 
					void avpriv_flac_parse_block_header(const uint8_t *block_header,
 | 
				
			||||||
                                int *last, int *type, int *size)
 | 
					                                int *last, int *type, int *size)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int tmp = bytestream_get_byte(&block_header);
 | 
					    flac_parse_block_header(block_header, last, type, size);
 | 
				
			||||||
    if (last)
 | 
					 | 
				
			||||||
        *last = tmp & 0x80;
 | 
					 | 
				
			||||||
    if (type)
 | 
					 | 
				
			||||||
        *type = tmp & 0x7F;
 | 
					 | 
				
			||||||
    if (size)
 | 
					 | 
				
			||||||
        *size = bytestream_get_be24(&block_header);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,6 +28,7 @@
 | 
				
			|||||||
#define AVCODEC_FLAC_H
 | 
					#define AVCODEC_FLAC_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "avcodec.h"
 | 
					#include "avcodec.h"
 | 
				
			||||||
 | 
					#include "bytestream.h"
 | 
				
			||||||
#include "get_bits.h"
 | 
					#include "get_bits.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define FLAC_STREAMINFO_SIZE   34
 | 
					#define FLAC_STREAMINFO_SIZE   34
 | 
				
			||||||
@@ -109,15 +110,10 @@ int avpriv_flac_is_extradata_valid(AVCodecContext *avctx,
 | 
				
			|||||||
                                   enum FLACExtradataFormat *format,
 | 
					                                   enum FLACExtradataFormat *format,
 | 
				
			||||||
                                   uint8_t **streaminfo_start);
 | 
					                                   uint8_t **streaminfo_start);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					#if LIBAVCODEC_VERSION_MAJOR < 56
 | 
				
			||||||
 * 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
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
void avpriv_flac_parse_block_header(const uint8_t *block_header,
 | 
					void avpriv_flac_parse_block_header(const uint8_t *block_header,
 | 
				
			||||||
                                    int *last, int *type, int *size);
 | 
					                                    int *last, int *type, int *size);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Calculate an estimate for the maximum frame size based on verbatim mode.
 | 
					 * 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);
 | 
					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 */
 | 
					#endif /* AVCODEC_FLAC_H */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -162,7 +162,7 @@ static int parse_streaminfo(FLACContext *s, const uint8_t *buf, int buf_size)
 | 
				
			|||||||
        /* need more data */
 | 
					        /* need more data */
 | 
				
			||||||
        return 0;
 | 
					        return 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    avpriv_flac_parse_block_header(&buf[4], NULL, &metadata_type, &metadata_size);
 | 
					    flac_parse_block_header(&buf[4], NULL, &metadata_type, &metadata_size);
 | 
				
			||||||
    if (metadata_type != FLAC_METADATA_TYPE_STREAMINFO ||
 | 
					    if (metadata_type != FLAC_METADATA_TYPE_STREAMINFO ||
 | 
				
			||||||
        metadata_size != FLAC_STREAMINFO_SIZE) {
 | 
					        metadata_size != FLAC_STREAMINFO_SIZE) {
 | 
				
			||||||
        return AVERROR_INVALIDDATA;
 | 
					        return AVERROR_INVALIDDATA;
 | 
				
			||||||
@@ -193,7 +193,7 @@ static int get_metadata_size(const uint8_t *buf, int buf_size)
 | 
				
			|||||||
    do {
 | 
					    do {
 | 
				
			||||||
        if (buf_end - buf < 4)
 | 
					        if (buf_end - buf < 4)
 | 
				
			||||||
            return 0;
 | 
					            return 0;
 | 
				
			||||||
        avpriv_flac_parse_block_header(buf, &metadata_last, NULL, &metadata_size);
 | 
					        flac_parse_block_header(buf, &metadata_last, NULL, &metadata_size);
 | 
				
			||||||
        buf += 4;
 | 
					        buf += 4;
 | 
				
			||||||
        if (buf_end - buf < metadata_size) {
 | 
					        if (buf_end - buf < metadata_size) {
 | 
				
			||||||
            /* need more data in order to read the complete header */
 | 
					            /* need more data in order to read the complete header */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -51,7 +51,7 @@ static int flac_read_header(AVFormatContext *s)
 | 
				
			|||||||
    /* process metadata blocks */
 | 
					    /* process metadata blocks */
 | 
				
			||||||
    while (!url_feof(s->pb) && !metadata_last) {
 | 
					    while (!url_feof(s->pb) && !metadata_last) {
 | 
				
			||||||
        avio_read(s->pb, header, 4);
 | 
					        avio_read(s->pb, header, 4);
 | 
				
			||||||
        avpriv_flac_parse_block_header(header, &metadata_last, &metadata_type,
 | 
					        flac_parse_block_header(header, &metadata_last, &metadata_type,
 | 
				
			||||||
                                   &metadata_size);
 | 
					                                   &metadata_size);
 | 
				
			||||||
        switch (metadata_type) {
 | 
					        switch (metadata_type) {
 | 
				
			||||||
        /* allocate and read metadata block for supported types */
 | 
					        /* allocate and read metadata block for supported types */
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user