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 standardbool
type fromstdbool.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 beuint32_t
or can we useenum 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 usingorg_x
,org_y
,color_fmt
, andbit_depth
. -
Determine what p_application_private
does inEbComponentType
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 withinEbAV1OperatingPoint
) -
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 likeARCH_X86_64
being defined unless it's in theEbDebugMacros.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