libheif/context.cc (37 lines): - line 82: // TODO: error handling - line 600: // TODO: err - line 836: // TODO: apply irot to camera extrinsic matrix - line 1072: continue; // TODO: can this every happen? - line 1371: // TODO: what about overlays ? - line 1392: // TODO: check whether this really can be recursive (e.g. overlay of grid images) - line 1456: // TODO: this should be codec specific. JPEG 2000, for example, can use RGB internally. - line 1551: // TODO: check BPP changed - line 2025: // TODO: this if statement is probably wrong. When we have a tiled image with alpha - line 2041: // TODO: check that sizes are the same and that we have an Y channel - line 2060: // TODO: we should include a decoding option to control whether libheif should automatically scale the alpha channel, and if so, which scaling filter (enum: Off, NN, Bilinear, ...). - line 2184: /* TODO: in the future, we might support RGB and mono as intermediate formats - line 2220: // TODO: is this really an error? Does the pixi depths refer to RGB or YCbCr? - line 2574: heif_colorspace_RGB, heif_chroma_undefined, options, false); // TODO: always RGB ? - line 2596: /* TODO: probably, it is valid that an iovl image has no references ? - line 2626: // TODO: seems we always have to compose this in RGB since the background color is an RGB value - line 2631: img->add_plane(heif_channel_R, w, h, 8); // TODO: other bit depths - line 2632: img->add_plane(heif_channel_G, w, h, 8); // TODO: other bit depths - line 2633: img->add_plane(heif_channel_B, w, h, 8); // TODO: other bit depths - line 2647: heif_colorspace_RGB, heif_chroma_undefined, options, false); // TODO: always RGB? Probably yes, because of RGB background color. - line 2804: // TODO: the hdlr box is not the right place for comments - line 3041: // TODO: are the colour primaries relevant for matrix-coefficients != 12,13 ? - line 3105: // @TODO: use color profile when converting - line 3315: // TODO: can we directly code a monochrome image instead of the dummy color channels? - line 3338: // TODO: MIAF says that the *:hevc:* urn is deprecated and we should use "urn:mpeg:mpegB:cicp:systems:auxiliary:alpha" - line 3376: // @TODO: use color profile when converting - line 3540: // TODO: can we directly code a monochrome image instead of the dummy color channels? - line 3563: // TODO: MIAF says that the *:hevc:* urn is deprecated and we should use "urn:mpeg:mpegB:cicp:systems:auxiliary:alpha" - line 3603: // @TODO: use color profile when converting - line 3637: // TODO: can we directly code a monochrome image instead of the dummy color channels? - line 3666: // TODO: maybe we can remove this later. - line 3757: // TODO: simplify the color-conversion part. It's the same for each codec. - line 3801: // TODO: can we directly code a monochrome image instead of the dummy color channels? - line 3927: // @TODO: use color profile when converting - line 3961: // TODO: can we directly code a monochrome image instead of the dummy color channels? - line 4035: // TODO: extract 'jpgC' header data - line 4294: // TODO: error, compression not supported libheif/box.cc (20 lines): - line 241: // TODO: return recoverable error at timeout - line 254: // TODO: return recoverable error at timeout - line 278: // TODO: return recoverable error at timeout - line 784: // TODO: return recoverable error at timeout - line 1009: // TODO: boxes until end of file (we will probably never need this) - line 2324: // TODO: this function should always append the data to the output vector as this is used when - line 2359: // TODO: I think we should not clear this. Maybe we want to try reading again later and - line 2372: // TODO: maybe we should introduce some 'Recoverable error' instead of 'Invalid input' - line 2440: // TODO: return error: construction methods do not match - line 2527: m_base_offset_size = 4; // TODO: or could be 8 if we write >4GB files - line 2613: // TODO: box size > 4 GB - line 2876: // TODO: there are several images in circulation that have an iinf version=2. We should not enforce this with a hard error. - line 2895: // TODO: Only try to read "item_count" children. - line 3000: // TODO: return recoverable error at timeout - line 3038: // TODO: error - line 3355: // TODO: is there any specification of allowed values for the ipma version in the HEIF standards? - line 3507: // TODO: error, too many associations - line 3910: // TODO: implement the infinite recursion detection in a different way. E.g. by passing down - line 4144: // TODO: maybe we should introduce some 'Recoverable error' instead of 'Invalid input' - line 4361: // TODO return Error( libheif/file.cc (13 lines): - line 56: // TODO: make this a decoder option - line 365: // TODO: this design should be cleaned up - line 772: return 8; // TODO: what shall we do if the bit-depth is unknown? Use PIXI? - line 853: return 8; // TODO: what shall we do if the bit-depth is unknown? Use PIXI? - line 952: // TODO: I think we should not clear this. Maybe we want to try reading again later and - line 962: // TODO: maybe we should introduce some 'Recoverable error' instead of 'Invalid input' - line 1195: // TODO: check errors - line 1214: // TODO: implement... - line 1420: // TODO - Correctly Find the j2kH box - line 2032: // TODO: error, compression not supported - line 2055: // TODO: brotli - line 2076: // TODO: error, compression not supported - line 2151: // TODO: the hdlr box is probably not the right place for this. Into which box should we write comments? libheif/api/libheif/heif.cc (10 lines): - line 554: // TODO: heif_error heif_context_read_from_file_descriptor(heif_context*, int fd); - line 934: // TODO: for now, also scan the grid tiles for alpha information (issue #708), but depending about - line 944: // TODO: what about images that have the alpha in the grid tiles (issue #708) ? - line 1199: // TODO: this should return an error in a later version (see below) - line 2194: // TODO: handle write errors - line 2451: Error err(heif_error_Unsupported_filetype, // TODO: is this the right error code? - line 2596: return error_unsupported_parameter; // TODO: correct error ? - line 2624: return error_unsupported_parameter; // TODO: correct error ? - line 2670: return error_unsupported_parameter; // TODO: correct error ? - line 3065: // TODO: Don't repeat this code from heif_context_encode_image() libheif/codecs/hevc.cc (9 lines): - line 346: // TODO: error: too many NAL units - line 358: // TODO: error: too many NAL units - line 381: // TODO err - line 385: // TODO value unspecified - line 471: // TODO: load non-uniform response curve - line 484: // TODO: we probably do not need a full BitReader just for the array size. - line 528: // TODO: loading of multi-byte sei headers - line 545: break; // TODO: read next SEI - line 686: config->min_spatial_segmentation_idc = 0; // TODO: get this value from the VUI, 0 should be safe android_jni/app/src/main/include/libheif/heif.h (8 lines): - line 1344: // TODO: we need a new API for this function as images can contain both NCLX and ICC at the same time. - line 1399: heif_matrix_coefficients_ITU_R_BT_709_5 = 1, // TODO: or 709-6 according to h.273 - line 1403: heif_matrix_coefficients_ITU_R_BT_601_6 = 6, // TODO: or 601-7 according to h.273 - line 1443: // TODO: This function does currently not return an NCLX profile if it is stored in the image bitstream. - line 1758: // TODO: this function does not make any sense yet, since we currently cannot modify existing HEIF files. - line 1859: struct heif_error (* write)(struct heif_context* ctx, // TODO: why do we need this parameter? - line 1918: int heif_context_get_encoder_descriptors(struct heif_context*, // TODO: why do we need this parameter? - line 2064: // TODO: name should be changed to heif_encoder_get_valid_integer_parameter_range libheif/api/libheif/heif.h (8 lines): - line 1344: // TODO: we need a new API for this function as images can contain both NCLX and ICC at the same time. - line 1399: heif_matrix_coefficients_ITU_R_BT_709_5 = 1, // TODO: or 709-6 according to h.273 - line 1403: heif_matrix_coefficients_ITU_R_BT_601_6 = 6, // TODO: or 601-7 according to h.273 - line 1443: // TODO: This function does currently not return an NCLX profile if it is stored in the image bitstream. - line 1758: // TODO: this function does not make any sense yet, since we currently cannot modify existing HEIF files. - line 1859: struct heif_error (* write)(struct heif_context* ctx, // TODO: why do we need this parameter? - line 1918: int heif_context_get_encoder_descriptors(struct heif_context*, // TODO: why do we need this parameter? - line 2064: // TODO: name should be changed to heif_encoder_get_valid_integer_parameter_range libheif/color-conversion/chroma_sampling.cc (8 lines): - line 115: // TODO: test with varying bit depths when we have a test image - line 223: // TODO: check whether we can use HeifPixelImage::transfer_plane_from_image_as() instead of copying Y and Alpha - line 333: // TODO: test with varying bit depths when we have a test image - line 421: // TODO: check whether we can use HeifPixelImage::transfer_plane_from_image_as() instead of copying Y and Alpha - line 527: // TODO: test with varying bit depths when we have a test image - line 697: // TODO: check whether we can use HeifPixelImage::transfer_plane_from_image_as() instead of copying Y and Alpha - line 804: // TODO: test with varying bit depths when we have a test image - line 920: // TODO: check whether we can use HeifPixelImage::transfer_plane_from_image_as() instead of copying Y and Alpha libheif/codecs/uncompressed_image.cc (7 lines): - line 119: // TODO: error for tile width not multiple of 2 - line 152: // TODO: error for tile width not multiple of 2 - line 198: // TODO: throw error if mixed and Cb and Cr are not adjacent. - line 300: // TODO: more combinations - line 358: // TODO: there are other things we'll need to handle eventually, like palette. - line 531: // TODO: see if we can make this const - line 742: // TODO: row padding libheif/color-conversion/yuv2rgb.cc (5 lines): - line 119: // TODO: test with varying bit depths when we have a test image - line 218: // TODO: check this. I have no input image yet which is known to be correct. - line 219: // TODO: is there a coeff=8 with full_range=false ? - line 229: else { // TODO: matrix_coefficients = 11,14 - line 1071: // TODO: test with varying bit depths when we have a test image libheif/codecs/jpeg2000.cc (5 lines): - line 80: // TODO - Check for the presence of a cmap box which specifies channel indices. - line 109: //TODO - Handle remaining cases. - line 205: // TODO: maybe dump entries too? - line 402: // TODO: consider checking for Lsiz consistent with Csiz - line 463: // TODO: we should map channels through `cdef` ? libheif/plugins/encoder_rav1e.cc (4 lines): - line 31: #include // TODO: remove me - line 40: int quality; // TODO: not sure yet how to map quality to min/max q - line 492: chromaPosition = RA_CHROMA_SAMPLE_POSITION_UNKNOWN; // TODO: set to CENTER when AV1 and rav1e supports this - line 507: chromaPosition = RA_CHROMA_SAMPLE_POSITION_UNKNOWN; // TODO: set to CENTER when AV1 and rav1e supports this libheif/plugins/encoder_aom.cc (4 lines): - line 779: chroma_sample_position = AOM_CSP_UNKNOWN; // TODO: change this to CSP_CENTER in the future (https://github.com/AOMediaCodec/av1-avif/issues/88) - line 983: // TODO: set AV1E_SET_TILE_ROWS and AV1E_SET_TILE_COLUMNS. - line 1062: // TODO: split the received data into separate OBUs - line 1097: // TODO: split the received data into separate OBUs fuzzing/color_conversion_fuzzer.cc (3 lines): - line 147: // TODO: Add support for more color depths. - line 225: // TODO: Support other RGB chromas. - line 249: // TODO: also fuzz these parameters. libheif/plugins/decoder_openjpeg.cc (3 lines): - line 284: //TODO - Handle other numbers of components - line 289: //TODO - Handle other colorspaces - line 372: // TODO: a SIMD implementation to convert int32 to uint8 would speed this up libheif/plugins/decoder_libde265.cc (3 lines): - line 215: // TODO: the size of the NAL unit length variable is defined in the hvcC header. - line 249: // TODO: read NCLX from h265 bitstream - line 326: // TODO: read NCLX from h265 bitstream go/heif/heif.go (3 lines): - line 429: // TODO: Use reader API internally. - line 661: // TODO: EXIF metadata - line 1329: // TODO: Might need to be updated for other SubsampleRatio values. libheif/plugins/encoder_svt.cc (3 lines): - line 402: get_value(kParam_qp, qp); // TODO: what if qp was not set ? - line 613: //chromaPosition = RA_CHROMA_SAMPLE_POSITION_UNKNOWN; // TODO: set to CENTER when AV1 and svt supports this - line 663: svt_config.high_dynamic_range_input = (bitdepth_y == 10 && // TODO: should this be >8 ? libheif/api/libheif/heif_cxx.h (2 lines): - line 988: nullptr)); // TODO: scaling options not defined yet - line 1276: // TODO: this is a bit hacky. It would be better to have an API function to set libheif/bitstream.cc (2 lines): - line 432: // TODO: this is slow - line 504: // TODO: activate me once I'm sure this works libheif/pixelimage.cc (2 lines): - line 506: // TODO: check that dst_channel does not exist yet - line 655: else { // 16 bit (TODO: unchecked code) libheif/api/libheif/heif_properties.cc (2 lines): - line 362: // TODO: every Box (not just Box_other) should have a get_raw_data() method. - line 400: // TODO: every Box (not just Box_other) should have a get_raw_data() method. scripts/cpplint.py (2 lines): - line 2993: _RE_PATTERN_TODO = re.compile(r'^//(\s*)TODO(\(.+?\))?:?(\s|$)?') - line 3019: # Checks for common mistakes in TODO comments. libheif/plugins/encoder_vvenc.cc (2 lines): - line 441: // TODO: cleanup memory - line 460: // TODO: cleanup memory libheif/codecs/vvc.cc (2 lines): - line 46: // assert(c.ptl_present_flag == false); // TODO (removed the assert since it will trigger the fuzzers) - line 170: // TODO: error android_jni/app/src/main/include/libheif/heif_cxx.h (2 lines): - line 988: nullptr)); // TODO: scaling options not defined yet - line 1276: // TODO: this is a bit hacky. It would be better to have an API function to set libheif/compression_zlib.cc (2 lines): - line 55: return {}; // TODO: return error - line 68: return {}; // TODO: return error libheif/nclx.cc (2 lines): - line 225: // TODO: return recoverable error at timeout - line 390: // TODO: return recoverable error at timeout libheif/context.h (2 lines): - line 37: #include "box.h" // only for color_profile, TODO: maybe move the color_profiles to its own header - line 549: // TODO: stable indices are obsolet now... libheif/plugins/encoder_x265.cc (1 line): - line 709: // TODO: There seems to be a bug in x265 where increasing the CTU size between libheif/plugins_unix.cc (1 line): - line 62: return {}; // TODO: return error_cannot_read_plugin_directory; libheif/plugins/encoder_openjpeg.cc (1 line): - line 416: // TODO: should we use this function? libheif/plugins/encoder_uvg266.cc (1 line): - line 422: // TODO: There seems to be a bug in uvg266 where increasing the CTU size between libheif/codecs/avc.cc (1 line): - line 55: // TODO: we don't support this yet libheif/init.h (1 line): - line 33: // TODO: later, we might defer the default plugin initialization to when they are actually used for the first time. libheif/plugins/encoder_kvazaar.h (1 line): - line 26: /* TODO: check whether this is also the case with kvazaar. libheif/region.cc (1 line): - line 101: // // TODO: this isn't going to work - we can only exit here. libheif/codecs/mask_image.cc (1 line): - line 145: // TODO: we could add an option to lossless-compress this data libheif/color-conversion/hdr_sdr.cc (1 line): - line 184: p_out[y * stride_out + x] = (uint8_t) (in >> shift); // TODO: I think no rounding here, but am not sure. libheif/exif.cc (1 line): - line 119: // TODO: do we have to also scan the next IFD table ? libheif/file.h (1 line): - line 265: // TODO: the hdlr box is probably not the right place for this. Into which box should we write comments? libheif/color-conversion/colorconversion.cc (1 line): - line 449: return nullptr; // TODO: we should return a proper error libheif/color-conversion/rgb2yuv.cc (1 line): - line 726: // TODO: it still is an open question where the 'correct' chroma sample positions are for 4:2:2 libheif/codecs/avif.cc (1 line): - line 103: writer.write8(0); // TODO initial_presentation_delay libheif/codecs/jpeg2000.h (1 line): - line 457: // TODO: this is a quick hack. It is more complicated for JPEG2000 because these can be any kind of colorspace (e.g. RGB). libheif/plugins/encoder_kvazaar.cc (1 line): - line 422: // TODO: There seems to be a bug in kvazaar where increasing the CTU size between libheif/plugins/encoder_jpeg.cc (1 line): - line 313: // TODO: support encoding greyscale JPEGs libheif/plugins/encoder_uvg266.h (1 line): - line 26: /* TODO: check whether this is also the case with uvg266.