Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 74061 Details for
Bug 114473
xmms-mad-0.8 header detection fix
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
xmms-mad-0.8 mp3 header fix
xmms-mad-0.8-mp3-header-patch.diff (text/plain), 1.50 KB, created by
Heikki Orsila
on 2005-12-04 13:31:00 UTC
(
hide
)
Description:
xmms-mad-0.8 mp3 header fix
Filename:
MIME Type:
Creator:
Heikki Orsila
Created:
2005-12-04 13:31:00 UTC
Size:
1.50 KB
patch
obsolete
>diff -urp xmms-mad-0.8-org/src/xmms-mad.c xmms-mad-0.8/src/xmms-mad.c >--- xmms-mad-0.8-org/src/xmms-mad.c 2005-12-04 23:18:21.000000000 +0200 >+++ xmms-mad-0.8/src/xmms-mad.c 2005-12-04 23:26:19.000000000 +0200 >@@ -76,6 +76,31 @@ xmmsmad_set_eq (int on, float preamp, fl > //printf("set_eq\n"); > } > >+ >+/* Following mp3 header check has been copied from XMMS mp3 input plugin. */ >+int mpg123_head_check(unsigned char *buffer) >+{ >+ unsigned int head = (buffer[0] << 24) + (buffer[1] << 16) + (buffer[2] << 8) + buffer[3]; >+ if ((head & 0xffe00000) != 0xffe00000) >+ return FALSE; >+ if (!((head >> 17) & 3)) >+ return FALSE; >+ if (((head >> 12) & 0xf) == 0xf) >+ return FALSE; >+ if (!((head >> 12) & 0xf)) >+ return FALSE; >+ if (((head >> 10) & 0x3) == 0x3) >+ return FALSE; >+ if (((head >> 19) & 1) == 1 && >+ ((head >> 17) & 3) == 3 && >+ ((head >> 16) & 1) == 1) >+ return FALSE; >+ if ((head & 0xffff0000) == 0xfffe0000) >+ return FALSE; >+ return TRUE; >+} >+ >+ > static int > xmmsmad_is_our_file (char *filename) > { >@@ -96,9 +121,8 @@ xmmsmad_is_our_file (char *filename) > fin = open (filename, O_RDONLY); > if (fin >= 0 && read (fin, check, 4) == 4) > { >- /* If first two bytes are a sync header or three bytes are "ID3" */ >- if ( (check[0] == 0xff && (check[1] & 0x70) == 0x70) >- || memcmp (check, "ID3", 3) == 0) >+ /* If first 4 bytes are a sync header or three bytes are "ID3" */ >+ if (mpg123_head_check(check) || memcmp (check, "ID3", 3) == 0) > { > rtn = 1; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 114473
:
74061
|
74062