Skip to content

Checklist of things to do during release 3.0

Here's a list to track the things we can do during the next release for our public headers. Not all of them are of the same priority.

Things that can only be done when during a major version change:

EbSvtAv1Enc.h

  • Replace Bool with the standard bool type from stdbool.h.
  • Reset the padding size and reevaluate certain flags:
    • high_dynamic_range_input and the associated --enable-hdr.
    • tier and associated --tier (I'm not sure if the flag is actually used in the output file).
    • color_description_present_flag.
    • Determine if rate_control_mode still needs to be uint32_t or can we use enum SvtAv1RcMode for it.
    • Fully remove vbv_bufsize.
    • Fully remove vbr_bias_pct.
    • Can't really tell if the way we “copy” rc_stats_buffer into the API is appropriate or not, since I also cannot tell where it's being free'd
    • Fully remove pred_struct and related fields

EbSvtAv1.h

  • Check the fields of EbSvtIOFormat to see if they are used. I could not find any references to using org_x, org_y, color_fmt, and bit_depth.
  • Determine what p_application_private does in EbComponentType and if it's still needed.
  • Add a field in EbBufferHeaderType to signal the temporal layer of the picture outputted.
  • output average qp per frame vs the frame qp assignment.

Things that are nice to haves, and can be done at any time/version:

  • Check OPT_LD_LATENCY2 macro.
  • Look for other instances of SVT_AV1_CHECK_VERSION
  • Check if EbOperatingParametersInfo is used in the encoder or only in the unit tests. (this extends to the fields within EbAV1OperatingPoint)
  • Check the fields of EbColorConfig
  • Also check if EbTimingInfo is needed by the encoder
  • Potentially make the EB_CPU_FLAGS_* macros exposed on all arches, as we don't actually have a signal or anything in the pkg-config file or debugmacros header to add -DARCH_X86_64 or -DARCH_AARCH64 from what I could tell. So this resulted in none of the flags actually being present to the end user. This also means we should consider making our public api headers mostly config agnostic (so try not to rely on things like ARCH_X86_64 being defined unless it's in the EbDebugMacros.h file).
  • Check if EbSvtAv1ExtFrameBuf.h is used.
  • Remove NO_ENCDEC
  • Remove REMOVE_LP1_LPN_DIFF
  • Check if there's a better way to do what CHECK_REPORT_ERROR does, instead of just an infinite loop.

These are a few of the things I found that can be done in any order I believe.

Edited by Hassen Guermazi