Exemplo n.º 1
0
        public override void GetReportDetail(IList <string> report)
        {
            if (report.Count > 0)
            {
                report.Add(String.Empty);
            }

            report.Add("Meta header:");

            report.Add($"  Minimum block size = {MinBlockSize}");
            report.Add($"  Maximum block size = {MaxBlockSize}");
            report.Add($"  Minimum frame size = {MinFrameSize}");
            report.Add($"  Maximum frame size = {MaxFrameSize}");

            report.Add($"  Sample rate = {MetaSampleRate} Hz");
            report.Add($"  Number of channels = {ChannelCount}");
            report.Add($"  Bits per sample = {BitsPerSample}");

            report.Add("  Total samples = " + (TotalSamples != 0? TotalSamples.ToString() : " (unknown)"));

            report.Add(String.Empty);
            report.Add("Raw audio header: " + ConvertTo.ToBitString(aHdr, 1));

            report.Add(String.Empty);
            report.Add("Cooked audio header:");
            report.Add($"  Blocking strategy = {BlockingStrategyText}");
            report.Add($"  Block size = {BlockSize} samples");
            report.Add($"  Sample rate = {SampleRateText}");
            report.Add($"  Channel assignment = {ChannelAssignmentText}");
            report.Add($"  Sample size = {SampleSizeText}");
            report.Add($"  Sample/frame number = {SampleOrFrameNumber}");

            report.Add(String.Empty);
            report.Add("Checks:");

            report.Add($"  Stored audio header CRC-8 = {StoredAudioHeaderCRC8ToHex}");
            if (ActualAudioHeaderCRC8 != null)
            {
                report.Add($"  Actual audio header CRC-8 = {ActualAudioHeaderCRC8ToHex}");
            }

            report.Add($"  Stored audio block CRC-16 = {StoredAudioBlockCRC16ToHex}");
            if (ActualAudioBlockCRC16 != null)
            {
                report.Add($"  Actual audio block CRC-16 = {ActualAudioBlockCRC16ToHex}");
            }

            report.Add($"  Stored PCM MD5 = {StoredAudioDataMD5ToHex}");
            if (actualAudioDataMD5 != null)
            {
                report.Add($"  Actual PCM MD5 = {ActualAudioDataMD5ToHex}");
            }

            if (ActualPcmCRC32 != null)
            {
                report.Add($"  Actual PCM CRC-32 = {ActualPcmCRC32ToHex}");
            }

            report.Add(String.Empty);
            report.Add($"Layout = {Layout}");

            if (Blocks.Tags != null)
            {
                report.Add(String.Empty);
                report.Add("Tags:");
                report.Add($"  Vendor: {Blocks.Tags.Vendor}");
                foreach (var item in Blocks.Tags.Lines)
                {
                    report.Add($"  {item}");
                }
            }
        }
Exemplo n.º 2
0
        public override void GetReportDetail(IList <string> report)
        {
            if (Issues.HasFatal)
            {
                return;
            }

            report.Add($"MPEG size = {MediaCount}");
            if (Xing != null)
            {
                report.Add($"XING size = {Xing.XingSize}");
            }
            if (Lame != null)
            {
                report.Add($"LAME size = {Lame.LameSize}");
            }

            report.Add(String.Empty);
            report.Add($"Raw audio header: {ConvertTo.ToBitString (Header.Bits, 32)}");
            report.Add(String.Empty);

            report.Add("Cooked audio header:");
            report.Add($"  Codec = {Header.Codec}");
            report.Add($"  Bit rate = {Header.BitRateText}");
            report.Add($"  Frequency = {Header.SampleRateText}");
            report.Add($"  Mode = {Header.ModeText}");

            report.Add($"  CRC protection bit = {Header.CrcProtectedBit}");
            report.Add($"  Padding bit = {Header.PaddingBit}");
            report.Add($"  Private bit = {Header.PrivateBit}");
            report.Add($"  Copyright bit = {Header.CopyrightBit}");
            report.Add($"  Original bit = {Header.OriginalBit}");
            report.Add($"  Emphasis = {Header.EmphasisText}");

            if (Xing != null)
            {
                report.Add(String.Empty);
                report.Add("XING:");
                report.Add($"  String = {Xing.XingString}");
                report.Add($"  Layout = {Xing.Layout}");
            }

            if (Lame != null)
            {
                report.Add(String.Empty);

                report.Add("LAME:");
                report.Add($"  Version string = {Lame.LameVersion}");
                report.Add($"  Profile string = {Lame.Profile}");
                report.Add($"  Profile detail = {Lame.Method}");

                report.Add($"  Tag revision = {Lame.TagRevision}");
                report.Add($"  Lowpass filter = {Lame.LowpassFilter}");
                report.Add($"  Replay Gain: Peak = {Lame.ReplayGainPeak}, Radio = {Lame.RadioReplayGain:X4}, Audiophile = {Lame.AudiophileReplayGain:X4}");
                report.Add($"  Lame encoding flags = {ConvertTo.ToBitString (Lame.LameFlags, 8)}");
                report.Add($"  Encoder delay: Start = {Lame.EncoderDelayStart}, End = {Lame.EncoderDelayEnd}");
                report.Add($"  LAME surround = {Lame.Surround}, LAME preset = {Lame.Preset}");
                report.Add($"  MP3 gain = {Lame.Mp3Gain}");
                report.Add($"  Minimum bit rate = {Lame.MinBitRateText}");
                report.Add("  Checks:");
                report.Add($"    Stored: audio header CRC-16 = {Lame.StoredHeaderCrcText}, audio data CRC-16 = {Lame.StoredDataCrcText}");

                if (Lame.ActualHeaderCrc != null)
                {
                    report.Add($"    Actual: audio header CRC-16 = {Lame.ActualHeaderCrcText}, audio data CRC-16 = {Lame.ActualDataCrcText}");
                }
            }

            report.Add(String.Empty);
            report.Add($"Layout = {Layout}");
        }