/**
  * Alter LocalFile setProps logic
  */
 function afterSetProps()
 {
     global $wgMediaHandlers;
     if ($this->forceMime) {
         // if mime type was forced, repopulate File with proper data
         $this->oFile->dataLoaded = true;
         $this->oFile->mime = $this->forceMime;
         list($this->oFile->major_mime, $this->oFile->minor_mime) = LocalFile::splitMime($this->oFile->mime);
         // normally, this kind of method would call
         // MediaHandler::getHandler(). However, this function
         // may be called repeatedly in one session (by a video
         // ingestion script) for different videos. MediaHandler::getHandler()
         // reads its own cache and returns the same video handler for different videos.
         // We must create the proper video handler ourselves.
         $type = $this->oFile->getMimeType();
         $class = $wgMediaHandlers[$type];
         /* @var $handler VideoHandler */
         $handler = new $class();
         $handler->setVideoId($this->oFile->videoId);
         $this->oFile->metadata = isset($this->forceMetadata) ? $this->forceMetadata : $handler->getVideoMetadata();
         $this->oFile->media_type = MEDIATYPE_VIDEO;
         $this->forceMime = false;
     }
 }