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
Boolwith the standardbooltype fromstdbool.h. -
Reset the padding size and reevaluate certain flags:
-
high_dynamic_range_inputand the associated--enable-hdr. -
tierand associated--tier(I'm not sure if the flag is actually used in the output file).--tierhas been removed -
color_description_present_flag. -
Determine if
rate_control_modestill needs to beuint32_tor can we useenum SvtAv1RcModefor it. -
Fully remove
vbv_bufsize. -
Fully remove
vbr_bias_pct. -
Can't really tell if the way we “copy”found the free'ing portion inrc_stats_bufferinto the API is appropriate or not, since I also cannot tell where it's being free'denc_app_dctor(). Might no longer be an issue assuming that application will always clean up the struct since it's noted that the struct does not own the data. -
Fully remove
pred_structand related fields
-
EbSvtAv1.h
-
Check the fields of
EbSvtIOFormatto see if they are used. I could not find any references to usingorg_x,org_y,color_fmt, andbit_depth. -
Determine what
p_application_privatedoes inEbComponentTypeand if it's still needed. -
Add a field in
EbBufferHeaderTypeto 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_LATENCY2macro. -
Look for other instances of
SVT_AV1_CHECK_VERSION -
Check ifOnly used in the unit test, but it's still part of the av1 spec and helps with debugging.EbOperatingParametersInfois used in the encoder or only in the unit tests. (this extends to the fields withinEbAV1OperatingPoint) -
Check the fields ofSimilar thing with the above where a few of the fields are unit-test only, but there for debugging purposesEbColorConfig -
Also check if
EbTimingInfois needed by the encoder. This typedef can be moved outside the API file, since it's not used publically. -
Potentially make thePerhaps this is fine and we should have end-users always useEB_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_64or-DARCH_AARCH64from 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 likeARCH_X86_64being defined unless it's in theEbDebugMacros.hfile).svt_av1_enc_parse_parameter()with"asm". -
Check if
EbSvtAv1ExtFrameBuf.his used. -
Remove
NO_ENCDEC -
Remove
REMOVE_LP1_LPN_DIFF -
Check if there's a better way to do what
CHECK_REPORT_ERRORdoes, 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 Christopher Degawa