1. 10 Feb, 2022 1 commit
    • Cea708Decoder: Handle multiple service blocks · 9ceba909
      When a asset contains multiple cc embedded tracks, current Cea708Decoder service
      block parsing logic is discarding all the data in that frame.
      
      For example, a manifest with 2 embedded CEA-708 close captions tracks:
      
      <Accessibility schemeIdUri="urn:scte:dash:cc:cea-708:2015" value="1=lang:eng;2=lang:spa"/>
      
      when the spanish track is selected (service number 2), when processing the
      following CEA-708 frame:
      
      FC9420FD2062FF0829FE8CFCFE9818FEE332FE731FFE1042FE2062FE0000FA0000FA0000FA0000FA0000FA0000FA0000FA0000FA0000FA0000FA0000FA0000FA0000FA0000FA0000
      
      the frame can be descomposed as:
      
      FF0829 FE8CFC FE9818 FEE332 FE731F FE1042 FE2062 FE0000
        08 (00 001000) 0 (sequence) 8 (frame size)
        298CFC9818E332731F10 422062 0000
        =====
          29 (001 01001) 1 (service number) 9 (service block length)
          8CFC9818E332731F10
      
          42 (010 00010) 2 (service number) 2 (service block length)
          2062
      
          0000 Null block service
      
      The current processCurrentPacket logic will discard the whole frame is discarded
      because the first service number found in the frame belongs to service number 1,
      which is not the one we are currently looking for.
      
      This commit modifies the processCurrentPacket decoding logic, to take into
      account all service blocks available in the frame, by iteraring over the
      full frame data and skipping those service blocks we are not interesting in.
      
      Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
      Jorge Ruesga committed
  2. 09 Feb, 2022 3 commits
  3. 08 Feb, 2022 31 commits
  4. 07 Feb, 2022 5 commits