Beispiel #1
0
 public TasksProcessorActor(ITranscoder transcoder, IMetadataExtractor metadataExtractor)
 {
     _transcoder        = transcoder;
     _metadataExtractor = metadataExtractor;
     Task.Run(() => {
         ExecuteTasks();
     });
 }
Beispiel #2
0
 public ImportSample(
     IMediaStore store,
     IMetadataExtractor metadataExtractor,
     IFaceDetectionService faceDetectionService,
     IBoxExtractorService faceExtractorService,
     IThumbnailService thumbnailService)
 {
     _store                = store;
     _metadataExtractor    = metadataExtractor;
     _faceDetectionService = faceDetectionService;
     _faceExtractorService = faceExtractorService;
     _thumbnailService     = thumbnailService;
 }
            public void ItemsWereAdded(string location, ICollection <PluginItemMetadata> items)
            {
                IPluginManager pluginManager = ServiceRegistration.Get <IPluginManager>();

                foreach (PluginItemMetadata itemMetadata in items)
                {
                    try
                    {
                        IMetadataExtractor metadataExtractor = pluginManager.RequestPluginItem <IMetadataExtractor>(
                            itemMetadata.RegistrationLocation, itemMetadata.Id, new FixedItemStateTracker(METADATA_EXTRACTORS_USE_COMPONENT_NAME));
                        _parent.RegisterMetadataExtractor(metadataExtractor);
                    }
                    catch (PluginInvalidStateException e)
                    {
                        ServiceRegistration.Get <ILogger>().Warn("Cannot add metadata extractor for {0}", e, itemMetadata);
                    }
                }
            }
 protected void RegisterMetadataExtractor(IMetadataExtractor metadataExtractor)
 {
     lock (_syncObj)
         _metadataExtractors.Add(metadataExtractor.Metadata.MetadataExtractorId, metadataExtractor);
     MediaAccessorMessaging.SendMetadataExtractorMessage(MediaAccessorMessaging.MessageType.MetadataExtractorAdded, metadataExtractor.Metadata.MetadataExtractorId);
 }
Beispiel #5
0
        /// <summary>
        /// Get the metadata for files in the METS xml.
        /// </summary>
        /// <param name="fileName">Name of the file to get metadata.</param>
        /// <returns>Metadata for the given file.</returns>
        internal MetadataSection GetMetadata(string fileName)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                throw new ArgumentNullException("fileName");
            }

            XmlMetadata[] fileMetadata = GetXmlData(fileName);

            if (null == fileMetadata)
            {
                return(null);
            }

            Metadata descriptiveData    = null;
            Metadata administrativeData = null;

            foreach (XmlMetadata metadataXml in fileMetadata)
            {
                if (null == metadataXml.Metadata)
                {
                    continue;
                }
                IMetadataExtractor extractor     = null;
                Metadata           data          = null;
                Stream             xmlDataStream = new MemoryStream();
                StreamWriter       dataWriter    = new StreamWriter(xmlDataStream);

                dataWriter.Write(metadataXml.Metadata.ToString());
                dataWriter.Flush();
                xmlDataStream.Position = 0;

                if (MetsConstants.DublinCorePrefix == metadataXml.MdType)
                {
                    extractor = new DublinCoreMetadataExtractor();
                }

                data = extractor.ExtractMetadata(xmlDataStream);

                if (null == data)
                {
                    continue;
                }

                if (metadataXml.IsDiscriptive)
                {
                    MergeMetadata(ref descriptiveData, data);
                }
                else
                {
                    MergeMetadata(ref administrativeData, data);
                }
            }
            if (null == administrativeData && null == descriptiveData)
            {
                return(null);
            }
            return(new MetadataSection
            {
                FileName = fileName,
                AdministrativeMetadata = administrativeData,
                DescriptiveMetadata = descriptiveData
            });
        }
Beispiel #6
0
 protected void RegisterMetadataExtractor(IMetadataExtractor metadataExtractor)
 {
   lock (_syncObj)
     _metadataExtractors.Add(metadataExtractor.Metadata.MetadataExtractorId, metadataExtractor);
   MediaAccessorMessaging.SendResourceProviderMessage(MediaAccessorMessaging.MessageType.MetadataExtractorAdded, metadataExtractor.Metadata.MetadataExtractorId);
 }
 public ExtractMetadataTask(IMetadataExtractor metadataExtractor)
 {
     _metadataExtractor = metadataExtractor;
 }