| Trees | Indices | Help | 
        
  | 
  
|---|
| 
       | 
  
  1  #!/usr/bin/python 
  2  # -*- coding: utf-8 -*- 
  3  # 
  4  # Copyright Guillaume Pellerin (2006-2009) 
  5   
  6  # <yomguy@parisson.com> 
  7   
  8  # This software is a computer program whose purpose is to stream audio 
  9  # and video data through icecast2 servers. 
 10   
 11  # This software is governed by the CeCILL  license under French law and 
 12  # abiding by the rules of distribution of free software.  You can  use, 
 13  # modify and/ or redistribute the software under the terms of the CeCILL 
 14  # license as circulated by CEA, CNRS and INRIA at the following URL 
 15  # "http://www.cecill.info". 
 16   
 17  # As a counterpart to the access to the source code and  rights to copy, 
 18  # modify and redistribute granted by the license, users are provided only 
 19  # with a limited warranty  and the software's author,  the holder of the 
 20  # economic rights,  and the successive licensors  have only  limited 
 21  # liability. 
 22   
 23  # In this respect, the user's attention is drawn to the risks associated 
 24  # with loading,  using,  modifying and/or developing or reproducing the 
 25  # software by the user in light of its specific status of free software, 
 26  # that may mean  that it is complicated to manipulate,  and  that  also 
 27  # therefore means  that it is reserved for developers  and  experienced 
 28  # professionals having in-depth computer knowledge. Users are therefore 
 29  # encouraged to load and test the software's suitability as regards their 
 30  # requirements in conditions enabling the security of their systems and/or 
 31  # data to be ensured and,  more generally, to use and operate it in the 
 32  # same conditions as regards security. 
 33   
 34  # The fact that you are presently reading this means that you have had 
 35  # knowledge of the CeCILL license and that you accept its terms. 
 36   
 37  # Author: Guillaume Pellerin <yomguy@parisson.com> 
 38   
 39  import os 
 40  import string 
 41  import datetime 
 42  from mutagen.easyid3 import EasyID3 
 43  from mutagen.mp3 import MP3, MPEGInfo 
 44  from mutagen import id3 
 45  from utils import * 
 46   
 47  EasyID3.valid_keys["comment"] = "COMM::'XXX'" 
 48  EasyID3.valid_keys["copyright"] = "TCOP::'XXX'" 
 49  EasyID3.valid_keys["country"] = "TXXX:COUNTRY:'XXX'" 
 50  EasyID3.RegisterTXXXKey("country", "COUNTRY") 
 51   
 52   
 54      """A MP3 file object""" 
 55   
 57          MediaBase.__init__(self) 
 58   
 59          self.description = "MPEG audio Layer III" 
 60          self.mime_type = 'audio/mpeg' 
 61          self.extension = 'mp3' 
 62          self.format = 'MP3' 
 63   
 64          self.media = newmedia 
 65          self.source = self.media 
 66          self.bitrate_default = 192 
 67          self.tagdata = { 
 68              'title': 'TIT2', 
 69              'artist': 'TPE1', 
 70              'album': 'TALB', 
 71              'date': 'TDRC', 
 72              'comment': 'COMM', 
 73              'country': 'COUNTRY', 
 74              'genre': 'TCON', 
 75              'copyright': 'TCOP' 
 76          } 
 77          self.sourceobj = MP3(self.media, ID3=EasyID3) 
 78          self.info = self.sourceobj.info 
 79          self.bitrate = self.bitrate_default 
 80          try: 
 81              self.bitrate = int(self.info.bitrate / 1024) 
 82          except: 
 83              pass 
 84   
 85          self.media_info = get_file_info(self.media) 
 86          self.file_name = self.media_info[0] 
 87          self.file_title = self.media_info[1] 
 88          self.file_ext = self.media_info[2] 
 89          self.size = os.path.getsize(self.media) 
 90          self.length = datetime.timedelta(0, self.info.length) 
 91          self.read_file_metadata() 
 92   
129   
| Trees | Indices | Help | 
        
  | 
  
|---|
| Generated by Epydoc 3.0.1 on Sat Jan 31 00:38:01 2015 | http://epydoc.sourceforge.net |