@MarshalsPointer
 public static long toNative(List<CMTimeCodeFormatDescriptionExtension> l, long flags) {
   if (l == null) {
     return 0L;
   }
   CFArray array = CFMutableArray.create();
   for (CMTimeCodeFormatDescriptionExtension i : l) {
     array.add(i.getDictionary());
   }
   return CFType.Marshaler.toNative(array, flags);
 }
 @MarshalsPointer
 public static long toNative(List<CMImageDescriptionFlavor> l, long flags) {
   if (l == null) {
     return 0L;
   }
   CFArray array = CFMutableArray.create();
   for (CMImageDescriptionFlavor i : l) {
     array.add(i.value());
   }
   return CFType.Marshaler.toNative(array, flags);
 }
 @MarshalsPointer
 public static List<CMTimeCodeFormatDescriptionExtension> toObject(
     Class<? extends CFType> cls, long handle, long flags) {
   CFArray o = (CFArray) CFType.Marshaler.toObject(cls, handle, flags);
   if (o == null) {
     return null;
   }
   List<CMTimeCodeFormatDescriptionExtension> list = new ArrayList<>();
   for (int i = 0; i < o.size(); i++) {
     list.add(new CMTimeCodeFormatDescriptionExtension(o.get(i, CFDictionary.class)));
   }
   return list;
 }
 @MarshalsPointer
 public static List<CMImageDescriptionFlavor> toObject(
     Class<? extends CFType> cls, long handle, long flags) {
   CFArray o = (CFArray) CFType.Marshaler.toObject(cls, handle, flags);
   if (o == null) {
     return null;
   }
   List<CMImageDescriptionFlavor> list = new ArrayList<>();
   for (int i = 0; i < o.size(); i++) {
     list.add(CMImageDescriptionFlavor.valueOf(o.get(i, CFString.class)));
   }
   return list;
 }