Wayne A. Hogue II wrote:
I have run into the problem of most of my discs that I have burned have the same name and or creation date. This leads to many discs having the same ID. After reading the list I see many have the same problem.
Here is a patch that uses the first few bytes of the disc and generates a MD5 digest from that data. My tests using over 100 discs all with same volume and and date generated unique ids. You may find a pair of discs that contain different data that generate the same ID, but the likelihood of it is much lower that the old way of generating the IDs.
-Wayne
------------------------------------------------------------------------
Index: discinfo.py =================================================================== RCS file: /cvsroot/mmpython/mmpython/disc/discinfo.py,v retrieving revision 1.18 diff -u -d -r1.18 discinfo.py --- discinfo.py 7 Nov 2003 09:43:40 -0000 1.18 +++ discinfo.py 7 Jan 2004 22:17:35 -0000 @@ -95,6 +95,7 @@ import re import time import array +import md5 from struct import *
@@ -193,7 +194,7 @@
id_cache = {}
-def cdrom_disc_id(device, handle_mix=0): +def cdrom_disc_id(device): """ return the disc id of the device or None if no disc is there """ @@ -204,16 +205,16 @@ except: pass
- disc_type = cdrom_disc_status(device, handle_mix=handle_mix) + disc_type = cdrom_disc_status(device) if disc_type == 0 or disc_type == 3: return 0, None
- elif disc_type == 1 or disc_type == 4:
+ elif disc_type == 1:
disc_id = DiscID.disc_id(device)
id = '%08lx_%d' % (disc_id[0], disc_id[1])
else:
f = open(device,'rb')
-
+ """
f.seek(0x0000832d)
if os.uname()[0] == 'FreeBSD':
# why doesn't seeking to 0x0000832d+40 and reading 32 work?
@@ -231,7 +232,13 @@
else:
label = f.read(32)
f.close()
-
+ """
+ id = f.read(51200)
+ f.seek(32808,0)
+ label = f.read(32)
+ id_md5 = md5.new()
+ id_md5.update(id)
+ id = id_md5.hexdigest()
m = re.match("^(.*[^ ]) *$", label)
if m:
id = '%s%s' % (id, m.group(1))
------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ Freevo-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-devel