示例#1
0
	def sauverSpin_2(self,i):
		"""conserver le spin dans le fichier de configuration et modifie le curseur"""
		debug("%s %d" % (self.choixCodec,i))
		#EkdConfig.set(self.idSection,self.choixCodec,i)
		EkdConfig.set('animation_encodage_general_bitrate_video',self.choixCodec,i)
		# sauver curseur
		self.curseur_2.setValue(i)
示例#2
0
	def __init__(self, statusBar, filer=False):
        	QWidget.__init__(self)
		
		# Boite d'alignement vertical
		vbox=QVBoxLayout(self)
		
		# On ne passe pas tout le parent, mais juste ce dont on a besoin (ici la bar de status)
		# Barre des tâches
		self.statusBar = statusBar

                #-------------------
		# Navigateur de répertoires
		#-------------------
		
		# arborescence des fichiers et dossiers permettant l'affichage
		self.listViewVisioVideo = QListView()

		filtres_option = QDir.AllDirs | QDir.Files | QDir.Readable
		filtres = QStringList()
		filtres << "*.avi" << "*.mpg" << "*.mpeg" << "*.mjpeg" << "*.flv" << "*.mp4" << "*.ogg" << "*.vob" << "*.mov" << "*.h264" << "*.wmv" << "*.3gp"
                sorting = QDir.DirsFirst
                if int(EkdConfig.get("general", "ignore_case")):
                    sorting |= QDir.IgnoreCase
		self.model = QDirModel(filtres, filtres_option, sorting)
		
		try :
			index = self.model.index(EkdConfig.get('general', 'video_input_path'))
		except Exception, e:
			index = self.model.index(QDir.homePath())
示例#3
0
	def changerReglagesNbrImgSec(self):
		"Fonction pour collecte du nombre d'images/seconde en sortie"
		# Afficher la valeur choisie par l'utilisateur du nbre d'img/sec
		self.select_nbreImgSec = self.nbrImage.value()
		#print "Valeur du nombre d'images par seconde:", self.select_nbreImgSec
		EkdPrint(u"Valeur du nombre d'images par seconde: %s" % self.select_nbreImgSec)
		EkdConfig.set(self.idSection, 'images_par_seconde', self.select_nbreImgSec)
示例#4
0
	def changerReglagesQual(self):
		"Fonction pour collecte de la qualité de la vidéo en sortie"
		# Afficher la valeur choisie par l'utilisateur de la qualité de la vidéo
		self.select_qualite = self.qualite.value()
		#print "Valeur de la qualité de la vidéo:", self.select_qualite
		EkdPrint(u"Valeur de la qualité de la vidéo: %s" % self.select_qualite)
		EkdConfig.set(self.idSection, 'qualite', self.select_qualite)
	def nouvelleResolution(self):
		"""Mets une liste de chemins vidéos dans l'ordre alpha-numérique si tel est le choix de l'utilisateur"""
		i=self.combo.currentIndex()
		idCombo = str(self.combo.itemData(i).toStringList()[0])
		#print "Combo :", idCombo
		EkdPrint(u"Combo : %s" % idCombo)
		# Si ordre alpha-numérique choisi, alors on ordonne la liste
		if idCombo == '16_9':
			self.idCombo=1.77777
		elif idCombo == '16_10':
			self.idCombo=1.60
		elif idCombo == '4_3':
			self.idCombo=1.33333
		elif idCombo == '5_3':
			self.idCombo=1.66666
		elif idCombo == '1_85':
			self.idCombo=1.85
		elif idCombo == '2_35':
			self.idCombo=2.35
		elif idCombo == '2_39':
			self.idCombo=2.39
		elif idCombo == '2_55':
			self.idCombo=2.55
		######################################################################################
		EkdConfig.set(self.idSection,'type',idCombo)
    def saveFiles(self):
        """
		# On sauvegarde la liste des fichiers chargés
		"""
        self.afficheurVideoSource.saveFileLocation(self.idSection)
        # Ajout de la sauvegarde des positions début et fin
        EkdConfig.set(self.idSection, u"valeurDebut", unicode(self.valeurDebut))
        EkdConfig.set(self.idSection, u"valeurFin", unicode(self.valeurFin))
示例#7
0
文件: EkdWidgets.py 项目: Ptaah/Ekd
 def updateColor(self):
     newcolor = QColorDialog.getColor(QColor.fromRgb(int("%d" % int(self.value, 16))), None )# Non supporté sous Jaunty ??
     if newcolor.isValid():
         self.value = str("%x" % newcolor.rgb())[2:]
         self.color.fill(QColor.fromRgb(int("%d" % int(self.value, 16))))
         self.boutton.setIcon(QIcon(self.color))
         self.line.setText(self.value)
         EkdConfig.set(self.section, self.id, self.value)
	def save(self):
		'''
		Sauvegarde de la configuration de tous les objets
		'''
		self.saveFiles()
		entry = u""
		for files in self.ordreVideo.getListFile() : entry += files+u":"
		EkdConfig.set(self.idSection, u'ordreVideo', entry[:-1])
    def loadFiles(self):
        """
		# On sauvegarde la liste des fichiers chargés
		"""
        self.afficheurVideoSource.loadFileLocation(self.idSection)
        self.valeurDebut = float(EkdConfig.get(self.idSection, "valeurDebut"))
        self.valeurFin = float(EkdConfig.get(self.idSection, "valeurFin"))
        self.mettreAJourLabel("debut")
        self.mettreAJourLabel("fin")
示例#10
0
	def loadOptions(self):
		"""
		On charge les différentes variables necessaire au widget
		"""
		idCodec = EkdConfig.get(self.idSection,'codec')
		self.codecSortie.setCurrentIndex(int(idCodec))
		resolution = EkdConfig.get(self.idSection,'resolution')
		self.resoSortie.setCurrentIndex(int(resolution))
		frequence = EkdConfig.get(self.idSection,'images_par_seconde')
		self.nbrImage.setValue(int(frequence))
		qualite = EkdConfig.get(self.idSection,'qualite')
		self.qualite.setValue(int(qualite))
示例#11
0
	def ouvrirSource(self, nomEntree=None):
		""" Récupération des chemins vidéo sélectionnée """

		# On n'utilise pas le fonction recupSources du fichier animation_base.py contenu dans
		# le répertoire gui_modules_animation car pour cette fonction uniquement les fichiers
		# AVI (donc extension .avi) sont autorisés
		try:
			repEntree = EkdConfig.get('general', 'video_input_path')
		except:
			repEntree = os.path.expanduser('~')
		####################################################################################

		txt = _(u"Fichiers vidéos")

		if not nomEntree:
			liste=QFileDialog.getOpenFileNames(None, _(u"Ouvrir"), repEntree,
				"%s (*.avi *.mpg *.mpeg *.vob)\n" %txt)

			self.liste = [unicode(i) for i in liste]
		####################################################################################

		chemin=self.liste
		if not chemin: return

		## On a récupérer la vidéo, on défini le nouveau chemin par défaut des vidéos
		EkdConfig.set('general', 'video_input_path', os.path.dirname(chemin[0]))

		self.lstFichiersSource = []

		for fichier in chemin:
			self.lstFichiersSource.append(fichier)

		# Appel de la fonction nouvelleResolution pour application 16/9 ou 4/3
		self.nouvelleResolution()
		#print 'self.idCombo', self.idCombo
		EkdPrint(u'self.idCombo %s' % self.idCombo)

		# Le bouton appliquer devient utilisable
		self.boutApp.setEnabled(True)
		self.boutApp.setToolTip("")

		self.mplayer.setEnabled(True)
		self.mplayer.listeVideos = self.lstFichiersSource
		self.radioSource.setChecked(True)
		self.radioSource.setEnabled(False)
		self.radioConvert.setEnabled(False)

		# Affichage du chemin + nom de fichier dans la ligne d'édition
		self.ligneEditionSource.setText(liste[0])

		self.statusBar.showMessage(_(u"La vidéo résultante ne pourra pas être lue avec tous les logiciels"))
	def load(self):
		'''
		Chargement de la configuration de tous les objets
		'''
		self.loadFiles()
		files = EkdConfig.get(self.idSection, 'ordreVideo')
		if debug : 
			#print files
			EkdPrint(u"%s" % str(files))
		self.ordreVideo.addSoundAction(files.split(u":"))
		files = EkdConfig.get(self.idSection, 'ordreAudio')
		if debug : 
			#print files
			EkdPrint(u"%s" % str(files))
		self.ordreAudio.addSoundAction(files.split(u":"))
示例#13
0
    def __init__(self, cheminVideoEntre, cheminFFmpeg=None):

        QThread.__init__(self)

        self.cancel = False

        #=== Paramètres généraux ===#

        self.repTampon = unicode(EkdConfig.getTempDir() + os.sep)
        # Répertoire de sauvegarde ds le rep tampon
        self.rep_audio = self.repTampon  + u'concat_audio' + os.sep

        # Uniquement pour Linux et MacOSX
        if os.name in ['posix', 'mac'] or not cheminFFmpeg  :
            self.cheminFFmpeg=u"ffmpeg"

        elif cheminFFmpeg :
            self.cheminFFmpeg=unicode(cheminFFmpeg)

        # Uniquement pour windows
        else :
            self.cheminFFmpeg=u"ffmpeg"

        # chemin(s) des vidéos chargées
        self.cheminVideoEntre = cheminVideoEntre
示例#14
0
    def displayLenght(self) : #QT4 OK
      self.totimage=0
      if self.videof.currentText()=="NTSC" :
        self.n=1
        imgpsec=30
        ips=float(30000/1001)
      else :
        self.n=0
        imgpsec=25
        ips=imgpsec
      dicspeed={"0":1,"1":2,"2":4,"3":5,"4":10,"5":20}
      speedtrans=dicspeed[str(EkdConfig.get("videoporamaconfig","speedt"))]
      frametransition = 100 / speedtrans
      k=0
      while k<self.timeline.columnCount() :
        self.totimage += self.timeline.cellWidget(0,k).imagetime(self.n)[1]+self.timeline.cellWidget(0,k).imagetime(self.n)[2]
        k+=1
      self.totimage+=frametransition

      sec=float(self.totimage) / ips
      seconde=str(sec % 60).split(".")
      minute=int(sec / 60)
      heure=int(minute / 60)
      timesnd="%s:%s:%s.%s" % (str(heure).rjust(2,'0'),str(minute).rjust(2,'0'),seconde[0].rjust(2,'0'),seconde[1].ljust(3,'0')[0:3])
      self.duration.setText(timesnd)
示例#15
0
    def checkfirsttime(self,p) : #OK QT4
      a, b, c, d = 0, 0, 0, 0
      pathname = os.path.dirname (sys.argv[0])
      refdir = os.path.abspath (pathname) + os.sep + u"videoporama" + os.sep + u"template" + os.sep
      if p=="o" :
        self.templatedir=unicode(QDir.homePath()) + os.sep + self.parent.configdir
      else :
        self.templatedir=refdir
      if (not os.path.exists(self.templatedir)) :
        print "Configuration directory doesn't exist"
        print "Create configuration directory at "+self.templatedir
        os.makedirs(self.templatedir)

      if (not os.path.exists(self.templatedir + os.sep + u"template_data.idv")) :
        d=1
        reffile=open(refdir + os.sep +u"template_data.idv","r")
        destfile=open(self.templatedir + os.sep + u"template_data.idv","w")
        destfile.write(reffile.read())
        destfile.close()

      ### check or create temporary dir
      self.T = EkdConfig.getTempDir() + os.sep + u"videoporamatmp"
      if (not os.path.exists(self.T)) :
        os.makedirs(self.T)

      if (c or d) :
        print "Configuration files not find (First time open ?)"
        if (a==c and b==d) :
          return False
        else :
          return True
      else :
        return False
示例#16
0
    def __init__(self, cheminVideoEntre, valeurNum=0, cheminMEncoder=None):

        QDialog.__init__(self)

        # === Paramètres généraux ===#

        self.repTampon = EkdConfig.getTempDir() + os.sep
        # Répertoire de sauvegarde ds le rep tampon
        self.rep_video_ext_resol = self.repTampon + "video_extension_resol" + os.sep

        # Uniquement pour Linux et MacOSX
        if os.name in ["posix", "mac"] or not cheminMEncoder:
            self.cheminMEncoder = u"mencoder"

        # Uniquement pour windows
        elif os.name == "nt" and cheminMEncoder:
            self.cheminMEncoder = unicode(cheminMEncoder)

        # chemin(s) des vidéos chargées
        self.cheminVideoEntre = cheminVideoEntre

        # valeur de la boite de spin pour l'encodage
        self.valeurNum = valeurNum

        self.fichiers = [os.path.basename(parc) for parc in self.cheminVideoEntre]

        # Appel de la fonction lanceur
        self.lanceur()
示例#17
0
	def changerItemQStacked(self, i):
		""" L'entrée sélectionnée de la boîte de combo modifie le QWidget de réglage du codec associée """
		#print "index", i
		EkdPrint(u"index %d" % i)
		idCodec=str(self.combo.itemData(i).toString())
		#print "idCodec:", idCodec, type(idCodec)
		EkdPrint(u"idCodec: %s %s" % (idCodec ,type(idCodec)))
		
		for k in self.listeCombo:
			if k[0]==idCodec:
				# Utilisation de EkdConfig : modification des sections
				if self.idSection == "animation_filtresvideo":
					if k[0] in ('decoupageassiste', 'decoupagelibre'):
						self.filtreDecouper.setStacked(k[0])
				if self.stacked:
					self.stacked.setCurrentIndex(k[2])
		
		EkdConfig.set(self.idSection,'codec', idCodec)
示例#18
0
文件: mplayer.py 项目: Ptaah/Ekd
	def ouvrirVideo(self):
		"""Ouverture de la boîte de dialogue de fichiers"""
		txt = u"Fichiers vidéo"
		if self.cheminPourBoutonParcourir:
			chemin = self.cheminPourBoutonParcourir

		else:
			try:
				chemin = EkdConfig.get('general','video_input_path').decode("UTF8")
			except:
				chemin = os.path.expanduser('~')

		liste=QFileDialog.getOpenFileNames(None, u"Ouvrir", chemin, "%s (*.avi *.mpg *.mpeg *.mjpeg *.flv *.mp4 *.ogg *.vob *.mov *.wmv *.3gp *.h264)\n*" %txt)
		if not liste: return
		self.listeVideos = liste
		self.changeRatio(unicode(self.listeVideos[0]))

		chemin = unicode(self.listeVideos[0])
		EkdConfig.set('general','video_input_path',os.path.dirname(chemin).encode("UTF8"))
示例#19
0
文件: gui_base.py 项目: Ptaah/Ekd
    def recupSourceAudio(self, nomEntree=None):
        """Récupère le fichier source audio via une boite de dialogue. Utilise et modifie les paramètres de configuration"""

        if self.ligneEditionSource.text().isEmpty(): lignePleine = False
        else:
            lignePleine = True
            fichier = unicode(self.ligneEditionSource.text())
            path = os.path.dirname(fichier)

        if lignePleine and os.path.exists(path):
            repEntree = path
        else:
            try:
                repEntree = EkdConfig.get('general','audio_input_path').decode("UTF8")
            except Exception, e:
                repEntree = '~'
                EkdConfig.set('general','audio_input_path', repEntree.encode("UTF8"))
            if not QFileInfo(repEntree).exists():
                repEntree = '~'
                EkdConfig.set('general','audio_input_path', repEntree.encode("UTF8"))
示例#20
0
文件: gui_base.py 项目: Ptaah/Ekd
    def recupSourcesAudio(self, nomEntree=None):
        """Récupère les fichiers sources audio via une boite de dialogue. Utilise et modifie les paramètres de configuration"""

        if not self.lstFichiersSourceAudio: listePleine = False
        else:
            listePleine = True
            fichier = self.lstFichiersSourceAudio[0]
            path = os.path.dirname(fichier)

        if listePleine and os.path.exists(path):
            repEntree = path
        else:
            try:
                repEntree = EkdConfig.get('general','audio_input_path').decode("UTF8")
            except Exception, e:
                repEntree = '~'
                EkdConfig.set('general','audio_input_path', repEntree.encode("UTF8"))
            if not os.path.exists(repEntree):
                repEntree = '~'
                EkdConfig.set('general','audio_input_path', repEntree.encode("UTF8"))
示例#21
0
文件: EkdWidgets.py 项目: Ptaah/Ekd
    def getFile(self):
        '''
        Invoque la boite de dialogue et retourne le fichier saisi
        '''
        ## Ajout d'une boite de dialogue avertissant du format des fichier de sortis dans le cas de multiples fichier à enregistrer
        show = Qt.Unchecked
        try :
            show = int(EkdConfig.get("general", "show_warning_messages"))
        except Exception, e:
            #print "%s" % e
	    EkdPrint("%s" % e)
            pass
示例#22
0
    def __init__(self):

        # Identifiant de la classe
        self.idSection = "animation_encodage_web"
        # Pas d'"empilement" car pas de paramètre d'encodage
        self.stacked = None

        # ------------------------------------------------------------------- #
        # Chemin des répertoires temporaires pour la gestion des fichiers
        # mod (extension .mod). Ce sont (apparemment) des fichiers mpeg avec
        # une extension .mod. Les fichiers en question ont juste besoin
        # d'être renommés avec une extension .mpg avant le traitement.
        # ------------------------------------------------------------------- #
        self.repTempEntree = EkdConfig.getTempDir() + os.sep
        # création des répertoires temporaires
        if os.path.isdir(self.repTempEntree) is False:
            os.makedirs(self.repTempEntree)
        # Chemin exact d'écriture pour le tampon des fichiers mod
        self.repTempFichiersMod = self.repTempEntree + "transcodage" + os.sep + "fichiers_mod" + os.sep
        # Création du chemin
        if os.path.isdir(self.repTempFichiersMod) is False:
            os.makedirs(self.repTempFichiersMod)
        # Epuration/elimination des fichiers tampon contenus dans le rep tampon
        for toutRepTemp in glob.glob(self.repTempFichiersMod + "*.*"):
            os.remove(toutRepTemp)

        # ----------------------------------------------------------------------------------
        # Paramètres de la liste de combo: [(identifiant, nom entrée, instance, extension), ...]
        # ----------------------------------------------------------------------------------

        self.listeCombo = [
            ("youtube_16/9_HQ", _(u"Transcodage YouTube 16/9 Haute Qualité"), 0, ".avi"),
            ("youtube_16/9_MQ", _(u"Transcodage YouTube 16/9 Moyenne Qualité"), 1, ".avi"),
            ("youtube_16/9_LQ", _(u"Transcodage YouTube 16/9 Basse qualité"), 2, ".avi"),
            ("youtube_4/3_HQ", _(u"Transcodage YouTube 4/3 Haute Qualité"), 3, ".avi"),
            ("youtube_4/3_MQ", _(u"Transcodage YouTube 4/3 Moyenne Qualité"), 4, ".avi"),
            ("youtube_4/3_LQ", _(u"Transcodage YouTube 4/3 Basse qualité"), 5, ".avi"),
            ("google_video_16/9_HQ", _(u"Transcodage Google vidéo 16/9 Haute qualité"), 6, ".avi"),
            ("google_video_16/9_MQ", _(u"Transcodage Google vidéo 16/9 Qualité moyenne"), 7, ".avi"),
            ("google_video_16/9_LQ", _(u"Transcodage Google vidéo 16/9 Basse qualité"), 8, ".avi"),
            ("google_video_4/3_HQ", _(u"Transcodage Google vidéo 4/3 Haute qualité"), 9, ".avi"),
            ("google_video_4/3_MQ", _(u"Transcodage Google vidéo 4/3 Qualité moyenne"), 10, ".avi"),
            ("google_video_4/3_LQ", _(u"Transcodage Google vidéo 4/3 Basse qualité"), 11, ".avi"),
            ("dailymotion_sd_4/3", _(u"Transcodage Dailymotion SD 4/3"), 12, ".mp4"),
            ("dailymotion_sd_16/9", _(u"Transcodage Dailymotion SD 16/9"), 13, ".mp4"),
            ("dailymotion_HD720p", _(u"Transcodage Dailymotion HD720p"), 14, ".mp4"),
        ]

        # ---------------------------
        # Dérivation de la classe
        # ---------------------------
        Base_EncodageFiltre.__init__(self, titre=_(u"Transcodage: Pour le Web"))
示例#23
0
 def add2(self,files) : #Different de videoporama
   try :
     self.lastdir=self.findDir(files[0])
   except :
     None
   try :
     bgf=EkdConfig.get("videoporamaconfig","bgfile")
   except :
     bgf=""
   for file in files :
     k=self.timeline.columnCount()
     if file != u"" :
       self.DisplayThumb(file,k,
         EkdConfig.get("videoporamaconfig","time"),
         bgf,
         int(EkdConfig.get("videoporamaconfig","bgcolor"),16),
         EkdConfig.get("videoporamaconfig","typet"),
         0,
         EkdConfig.get("videoporamaconfig","speedt"))
   if self.timeline.columnCount() != 0 :
     self.serieBut.setEnabled(True)
   self.displayLenght()
示例#24
0
	def load(self) :
		self.afficheurImgSource.loadFileLocation(self.idSection)
		self.spin1_ImTrait.setValue(int(EkdConfig.get(self.idSection, 'spin1_ImTrait')))
		self.spin2_ImTrait.setValue(int(EkdConfig.get(self.idSection, 'spin2_ImTrait')))
		self.stacked_redim_avec_ratio.spin.setValue(int(EkdConfig.get(self.idSection, 'stacked_redim_avec_ratio')))	
		self.stacked_redim_sans_ratio.spin.setValue(int(EkdConfig.get(self.idSection, 'stacked_redim_sans_ratio1')))	
		self.stacked_redim_sans_ratio.spin2.setValue(int(EkdConfig.get(self.idSection, 'stacked_redim_sans_ratio2')))	
		self.comboReglage.setCurrentIndex(int(EkdConfig.get(self.idSection, 'type_redim')))
示例#25
0
	def load(self) :
		self.selectionAudioFile.loadFileLocation(self.idSection)
		self.selectionFile.reglageExp.loadConfig(self.idSection)
		self.choix1.setChecked(int(EkdConfig.get(self.idSection, 'choix1')))
		self.choix2.setChecked(int(EkdConfig.get(self.idSection, 'choix2')))
		self.choix3.setChecked(int(EkdConfig.get(self.idSection, 'choix3')))
		self.choixm1.setChecked(int(EkdConfig.get(self.idSection, 'choixm1')))
		self.choixm2.setChecked(int(EkdConfig.get(self.idSection, 'choixm2')))
		self.choixm3.setChecked(int(EkdConfig.get(self.idSection, 'choixm3')))
示例#26
0
	def changerReglagesSon_DNxHD(self):
		"Fonction pour collecte du réglage du flux audio en sortie uniquement pour l'Avid DNxHD"
		# Afficher le changement de sélection dans le combo de
		# sélection du flux audio en sortie pour l'Avid DNxHD
		self.select_son_DNxHD = self.sonSortie_DNxHD.currentText()
		son_DNxHD = EkdConfig.set(self.idSection, 'audio_DNxHD', self.sonSortie_DNxHD.currentIndex())
示例#27
0
	def changerReglagesSpec_DNxHD(self):
		"Fonction pour collecte du réglage des spécificités pour l'Avid DNxHD"
		# Afficher le changement de sélection dans le combo de
		# sélection des spécificités en sortie pour l'Avid DNxHD
		self.select_spec_DNxHD = self.specSortie_DNxHD.currentText()
		spec_DNxHD = EkdConfig.set(self.idSection, 'spec_DNxHD', self.specSortie_DNxHD.currentIndex())
示例#28
0
	def changerReglagesResol(self):
		"Fonction pour collecte du réglage de la résolution en sortie"
		# Afficher le changement de sélection dans le combo 
		# de sélection de la résolution en sortie
		self.select_resolution = self.resoSortie.currentText()
		resolution = EkdConfig.set(self.idSection, 'resolution', self.resoSortie.currentIndex())
示例#29
0
	def changerReglagesCodec(self):
		"""Fonction pour collecte du réglage du codec en sortie"""
		self.select_codec = self.codecSortie.currentText()
		#print 'Codec sélectionné en sortie:', self.select_codec
		EkdPrint(u'Codec sélectionné en sortie: %s' % str(self.select_codec))
		EkdConfig.set(self.idSection, 'codec', self.codecSortie.currentIndex())
	def __init__(self, statusBar, parent=None):
		vbox=QVBoxLayout()

		#=== Variable de configuration ===#
		self.config=EkdConfig

		# Identifiant de la classe
		self.idSection = "animation_montage_video_et_audio"

		super(Animation_MontagVideoVidPlusAudio, self).__init__(boite='vbox', titre=_(u"Montage: Vidéo et audio"))
		self.printSection()

		self.repTampon = EkdConfig.getTempDir() + os.sep

		if os.path.isdir(self.repTampon) is False:
        		os.makedirs(self.repTampon)

		# Au cas où le répertoire existait déjà et qu'il n'était pas vide -> purge (simple précaution)
		for toutRepCompo in glob.glob(self.repTampon+'*.*'):
			os.remove(toutRepCompo)

		# Liste de fichiers initiaux (contenu dans le fichier de configuration)
		self.lstFichiersSource = []
		self.lstFichiersSourceProv = [] # idem mais provisoire (sert à récupérer les chemins dans l'ordre de sélection)

		self.lstFichiersSourceAudio = []
		self.lstFichiersSourceProvAudio = []

		# Par soucis de lisibilité, on préfère ne pas utiliser des objets présent dans le parent de cette façon
		# mais plutôt le passer en paramètre (le code est plus facile à lire de cette façon)
		self.statusBar = statusBar

		#-------------------------------------------------------------------
		self.afficheurVideoSource=SelectWidget(extensions = ["*.avi", "*.mpg", "*.mpeg", "*.mjpeg", "*.flv", "*.mp4", "*.h264", "*.dv", "*.vob"], mode="texte", video = True)
		###################################################################################
		# Onglets
		self.indexVideoSource = self.add(self.afficheurVideoSource, _(u'Video(s) source'))
		self.connect(self.afficheurVideoSource,SIGNAL("fileSelected"),self.getFile)
		self.connect(self.afficheurVideoSource, SIGNAL("pictureChanged(int)"), self.getFile)
		#--------------------------------------------------------------------


		# -------------------------------------------------------------------
		# Boîte de groupe : "Fichiers source"
		# -------------------------------------------------------------------
		extFormat=[]
		for fmt in parent.soxSuppFormat :
			extFormat.append("*."+fmt)

		self.afficheurAudioSource=SelectWidget(extensions=extFormat ,mode="texte", audio = True)
		# Onglets
		self.indexAudioSource = self.add(self.afficheurAudioSource, _(u'Audio(s) source'))
		self.connect(self.afficheurAudioSource,SIGNAL("fileSelected"), self.getFileA)
		self.connect(self.afficheurAudioSource, SIGNAL("pictureChanged(int)"),  self.getFileA)
		## ---------------------------------------------------------------------
		# Variables pour la fonction tampon
		## ---------------------------------------------------------------------
		self.typeEntree = ["video","audio"] # Défini le type de fichier source.
		self.typeSortie = "video" # Défini le type de fichier de sortie.
		self.sourceEntrees = [self.afficheurVideoSource, self.afficheurAudioSource] # Fait le lien avec le sélecteur de fichier source.


		self.addReglage("vbox")
		#=== Widget qui seront inclus dans la boite de réglage ===#
		self.ordreVideo = selectJoinMultipleSound(0, self)
		self.ordreVideo.setTitleAndTips(_(u"Fichiers vidéos à joindre"), _(u"Liste des fichiers vidéo à joindre. <b>Pour information, vous pouvez monter et descendre les fichiers grâce aux flèches haut et bas (les fichiers apparaissant en haut de la liste sont ceux qui seront au début du montage)</b>"))
		self.ordreAudio = selectJoinMultipleSound(0, self)
		self.ordreAudio.setTitleAndTips(_(u"Fichiers audios à joindre"), _(u"Liste des fichiers audio à joindre. <b>Pour information, vous pouvez monter et descendre les fichiers grâce aux flèches haut et bas (les fichiers apparaissant en haut de la liste sont ceux qui seront au début du montage)</b>")) 

		self.layoutReglage.addWidget(self.ordreVideo)
		self.layoutReglage.addWidget(self.ordreAudio)

		# ---------------------------
		# Boite de groupe de mplayer
		# ---------------------------
		self.addPreview()
		self.addLog()