<?xml version="1.0"?>
<policy type="or" name="SLUB Policy for MKV/linear PCM, retrodigitized audio" license="CC-BY-SA-4.0+">
  <description>SLUB related policy to test that the audio file is suitable for archiving purposes.
    This checks either 
    - if a Matroska/linear PCM fulfills the needs for Audio retrodigitization:
       - Container format is Matroska with error detection (CRC)
       - Audio format is PCM (unfortunately it can not contain error detection) or FLAC (it has CRC by design)
    - else a FLAC
       - if a FLAC-file fulfills the needs for Audio retrodigitization:
       - Container format is FLAC with error detection (CRC)
       - Audio format is FLAC (it has CRC by design)
    This policy is based on:
    - Example MKV FFV1 digitization policy.xml
    - Video file is MKV + FFV1-Intra + PCM or FLAC with CRC32 everywhere.xml
    If there are any policy violations or suggestions, please send an email to langzeitarchiv@slub-dresden.de
    
    Hint: this policy is well tested with mediaconch v24.06
  </description>
  <policy type="and" name="FLAC-Container, FLAC-codec, error detection">
    <policy type="and" name="Container">
      <policy type="or" name="FileExtension">
        <rule name="General/FileExtension is flac" value="FileExtension" tracktype="General" occurrence="*" operator="=">flac</rule>
      </policy>
      <rule name="Container is FLAC" value="Format" tracktype="General" occurrence="*" operator="=">FLAC</rule>
    </policy>
    <policy type="and" name="Audio">
      <rule name="General/AudioCount is 1" value="AudioCount" tracktype="General" occurrence="*" operator="&gt;=">1</rule>
      <rule name="Audio/Compression_Mode is Lossless" value="Compression_Mode" tracktype="Audio" occurrence="*" operator="=">Lossless</rule>
      <policy type="or" name="Audio is FLAC">
        <rule name="Audio is FLAC" value="Format" tracktype="Audio" occurrence="*" operator="=">FLAC</rule>
      </policy>
      <policy name="Audio is multiple of 48kHz till 192kHz" type="or">
        <rule name="Audio is 48000 Hz" value="SamplingRate" tracktype="Audio" occurrence="*" operator="=">48000</rule>
        <rule name="Audio is 96000 Hz" value="SamplingRate" tracktype="Audio" occurrence="*" operator="=">96000</rule>
        <rule name="Audio is 144000 Hz" value="SamplingRate" tracktype="Audio" occurrence="*" operator="=">144000</rule>
        <rule name="Audio is 192000 Hz" value="SamplingRate" tracktype="Audio" occurrence="*" operator="=">192000</rule>
      </policy>
      <policy type="or" name="Audio is Stereo or Mono">
        <rule name="Audio is mono" value="Channels" tracktype="Audio" occurrence="*" operator="=">1</rule>
        <rule name="Audio is stereo" value="Channels" tracktype="Audio" occurrence="*" operator="=">2</rule>
      </policy>
      <policy type="or" name="Bit Depth is at least 16 Bit">
        <rule name="Bit Depth is 16" value="BitDepth" tracktype="Audio" occurrence="*" operator="=">16</rule>
        <rule name="Bit Depth is 24" value="BitDepth" tracktype="Audio" occurrence="*" operator="=">24</rule>
      </policy>  
      
    </policy>
  </policy>
  
  <!-- -->
  <policy type="and" name="MKV, FFV1 Intra, PCM/FLAC, error detection">
    <policy type="and" name="Container">
      <policy type="or" name="FileExtension">
        <rule name="General/FileExtension is mka" value="FileExtension" tracktype="General" occurrence="*" operator="=">mka</rule>
      </policy>
      <rule name="Container is MKV" value="Format" tracktype="General" occurrence="*" operator="=">Matroska</rule>
      <policy name="22.09_or_legacy" type="or">
        <rule name="Unique ID is present" value="UniqueID" tracktype="General" operator="exists" occurrence="*" />
        <rule name="Unique ID is present (legacy mediaconch older v22.09)" value="UniqueID" tracktype="General" occurrence="*"/>
      </policy>
      <rule name="Container uses error detection" value="extra/ErrorDetectionType" tracktype="General" occurrence="*" operator="=">Per level 1</rule>
      <rule name="General/Format_Version is 4" value="Format_Version" tracktype="General" occurrence="*" operator="=">4</rule>
    </policy>
    <policy type="and" name="Audio">
      <rule name="General/AudioCount is 1" value="AudioCount" tracktype="General" occurrence="*" operator="&gt;=">1</rule>
      <rule name="Audio/Compression_Mode is Lossless" value="Compression_Mode" tracktype="Audio" occurrence="*" operator="=">Lossless</rule>
      <policy type="or" name="Audio is PCM or FLAC">
        <rule name="Audio is PCM" value="Format" tracktype="Audio" occurrence="*" operator="=">PCM</rule>
        <rule name="Audio is FLAC" value="Format" tracktype="Audio" occurrence="*" operator="=">FLAC</rule>
      </policy>
      <policy name="Audio is multiple of 48kHz till 192kHz" type="or">
        <rule name="Audio is 48000 Hz" value="SamplingRate" tracktype="Audio" occurrence="*" operator="=">48000</rule>
        <rule name="Audio is 96000 Hz" value="SamplingRate" tracktype="Audio" occurrence="*" operator="=">96000</rule>
        <rule name="Audio is 144000 Hz" value="SamplingRate" tracktype="Audio" occurrence="*" operator="=">144000</rule>
        <rule name="Audio is 192000 Hz" value="SamplingRate" tracktype="Audio" occurrence="*" operator="=">192000</rule>
      </policy>
      <policy type="or" name="Audio is Stereo or Mono">
        <rule name="Audio is mono" value="Channels" tracktype="Audio" occurrence="*" operator="=">1</rule>
        <rule name="Audio is stereo" value="Channels" tracktype="Audio" occurrence="*" operator="=">2</rule>
      </policy>
      <policy type="or" name="Bit Depth is at least 16 Bit">
        <rule name="Bit Depth is 16" value="BitDepth" tracktype="Audio" occurrence="*" operator="=">16</rule>
        <rule name="Bit Depth is 24" value="BitDepth" tracktype="Audio" occurrence="*" operator="=">24</rule>
      </policy>  
    </policy>
  </policy>
</policy>