view libmpdemux/mp3_hdr.h @ 24552:c9c2e550a449

MPEG-2 blocks at qp 1 get overfiltered by spp, apparently because "qp>>1" turns it into 0, which causes an integer overflow later. Clip qp at 1 to avoid this. patch by Alexander Strange, astrange ithinksw com
author diego
date Tue, 18 Sep 2007 14:08:08 +0000
parents b5c2254d13f8
children 6ac1ece1f9fe
line wrap: on
line source


int mp_get_mp3_header(unsigned char* hbuf,int* chans, int* freq, int* spf, int* mpa_layer, int* br);

#define mp_decode_mp3_header(hbuf)  mp_get_mp3_header(hbuf,NULL,NULL,NULL,NULL,NULL)

static inline int mp_check_mp3_header(unsigned int head){
    if( (head & 0x0000e0ff) != 0x0000e0ff ||  
        (head & 0x00fc0000) == 0x00fc0000) return 0;
    if(mp_decode_mp3_header((unsigned char*)(&head))<=0) return 0;
    return 1;
}