コード例 #1
0
 internal VideoInfo(MkvToolJsonSchema.Track track) : base(track)
 {
     // Missing: Profile
     // Missing: Interlaced
     // Missing: HDR
     // Missing: ClosedCaptions
 }
コード例 #2
0
    internal TrackInfo(MkvToolJsonSchema.Track track)
    {
        if (track == null)
        {
            throw new ArgumentNullException(nameof(track));
        }

        Format  = track.Codec;
        Codec   = track.Properties.CodecId;
        Title   = track.Properties.TrackName;
        Default = track.Properties.DefaultTrack;

        // If the "language" and "tag_language" fields are set FfProbe uses the tag language instead of the track language
        // https://github.com/MediaArea/MediaAreaXml/issues/34
        if (!string.IsNullOrEmpty(track.Properties.TagLanguage) &&
            !string.IsNullOrEmpty(track.Properties.Language) &&
            !track.Properties.Language.Equals(track.Properties.TagLanguage, StringComparison.OrdinalIgnoreCase))
        {
            HasErrors = true;
            Log.Logger.Warning("Tag and Track Language Mismatch : {TagLanguage} != {Language}", track.Properties.TagLanguage, track.Properties.Language);
        }

        // Set language
        if (string.IsNullOrEmpty(track.Properties.Language))
        {
            Language = "und";
        }
        else
        {
            // MkvMerge normally sets the language to und or 3 letter ISO 639-2 code
            // Try to lookup the language to make sure it is correct
            Iso6393 lang = PlexCleaner.Language.GetIso6393(track.Properties.Language);
            if (lang != null)
            {
                Language = lang.Part2B;
            }
            else
            {
                HasErrors = true;
                Log.Logger.Warning("Invalid Language : {Language}", track.Properties.Language);
                Language = "und";
            }
        }

        // Take care to use id and number correctly in MkvMerge and MkvPropEdit
        Id     = track.Id;
        Number = track.Properties.Number;

        // Has tags
        HasTags = MediaInfo.IsTagTitle(Title);

        // Verify required info
        Debug.Assert(!string.IsNullOrEmpty(Format));
        Debug.Assert(!string.IsNullOrEmpty(Codec));
    }
コード例 #3
0
ファイル: SubtitleInfo.cs プロジェクト: ptr727/PlexCleaner
 internal SubtitleInfo(MkvToolJsonSchema.Track track) : base(track)
 {
     Forced = track.Properties.Forced;
 }
コード例 #4
0
ファイル: AudioInfo.cs プロジェクト: ptr727/PlexCleaner
 internal AudioInfo(MkvToolJsonSchema.Track track) : base(track)
 {
 }