decode static method

Id3v23FrameHeader? decode(
  1. Id3v2Header id3v2Header,
  2. List<int> bytes,
  3. int startIndex
)
override

Decodes the FrameHeader

Returns null if the FrameHeader could not be decoded

Implementation

static Id3v23FrameHeader? decode(
  Id3v2Header id3v2Header,
  List<int> bytes,
  int startIndex,
) {
  String identifierId = latin1.decode(bytes.sublist(startIndex, startIndex + 4));
  FrameIdentifier? frameIdentifier = frameIdentifiers.firstWhereOrNull((element) => element.v23Name == identifierId);

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

  var contentSize = _decodeFrameSize(bytes, startIndex + identifierFieldSize);
  var flags = _loadFlags(bytes, startIndex + identifierFieldSize + sizeFieldSize, flagsFieldSize);

  return Id3v23FrameHeader(frameIdentifier, contentSize, flags);
}