summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmpdemux/mp3_hdr.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/libmpdemux/mp3_hdr.h b/libmpdemux/mp3_hdr.h
index dfe3122d67..a9b34ac12c 100644
--- a/libmpdemux/mp3_hdr.h
+++ b/libmpdemux/mp3_hdr.h
@@ -26,9 +26,10 @@ int mp_get_mp3_header(unsigned char* hbuf,int* chans, int* freq, int* spf, int*
#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;
+ unsigned char tmp[4] = {head >> 24, head >> 16, head >> 8, head};
+ if( (head & 0xffe00000) != 0xffe00000 ||
+ (head & 0x00000c00) == 0x00000c00) return 0;
+ if(mp_decode_mp3_header(tmp)<=0) return 0;
return 1;
}