Repository navigation
Conversation
7d554ee to
cb0ed1e
Compare
|
@mcw-Lavanya Ready for review. I don't know why only some debug VC smoke test fails. The same test pass on non-debug binaries. |
|
Hi @cubicibo, thanks for the detailed writeup on this — really nice work threading frame duration through the whole ratecontrol/slicetype/cuTree chain. I dug into the Windows Debug + --bitrate smoke test failures a bit, and I have a suspicion about where it's coming from. Wanted to flag it humbly since I could be missing context on your side. In ratecontrol.cpp, the constructor (RateControl::RateControl()) used to have: cpp In commit bc7e03c ("ratecontrol: support arbitrary timebases for VFR"), this line looks like it was replaced with: cpp But m_fps (declared in ratecontrol.h, no default initializer) still seems to be read in several places later in the file, e.g.: If I'm reading it right, m_fps is never reassigned anywhere else, so those reads are of an uninitialized member. That would explain the pattern you're seeing pretty well — MSVC's debug CRT poisons freshly allocated memory, so an uninitialized double there would come back with garbage in Debug but often "accidentally work" in Release. And since m_fps is only touched in the ABR/VBV/CBR paths, it'd only bite --bitrate runs, not CRF/CQP ones. Could well be I'm missing an initializer somewhere else in the flow — if so, apologies for the noise! But if it checks out, restoring something like: cpp right next to the new m_timebase line seems like it should clear it up. |
92282fb to
15fb730
Compare
|
Thank you, a bad oversight of mine. Unfortunately that does not solve it. |
0001-ratecontrol-initialize-m_durationDone.patch Hi @cubicibo , |
362c835 to
c209d50
Compare
|
Hi @cubicibo , Thank you |
|
Hi @cubicibo, |
|
Hi @cubicibo , Thank you |
|
I have found one more conformance issue. However it is present in the master branch, it does not come from this PR. x265 bitstreams sometime breach Equation C-18 (§ C.4). This is not a problem for most decoders using the H.222 leak method... but it still needs fixing. I will try to address it in another PR first. Regarding your question: Test set-up & toolings
I have included a readme to the Python HRD verifier. You are free to make any use of it. Command lines
Evaluation
With command line 2) on an arbitrary video: |
Thank you @cubicibo , we will verify from our end and get back to you |
|
Hi @cubicibo , |
b7ac8ef to
f32ac41
Compare
| H0(" Format of each line: framenum ffo picstruct.\n"); | ||
| H0(" ffo is the frame field order (0: progressive, 1: bff, 2: tff) and shall match the encode settings.\n"); | ||
| H0(" picstruct value, from H.265 Table D.2 enumeration, shall be compatible with the encode settings.\n"); | ||
| H0(" --log2-max-poc-lsb <integer> Maximum of the picture order count\n"); |
There was a problem hiding this comment.
Hi @cubicibo ,
May I know why this line of code is repeated
|
Hi @cubicibo , |
|
Apologies, I will revert that commit. I had figured it was an easier entry-point to most users contrary to the --ps-file. |
c9d6246 to
9cfe575
Compare
9c1b467 to
ce0b5a9
Compare


Internal:
User interface:
--pic-structand--frame-dupnow produce conformant bitstreams.--psfileto specify arbitrary pulldown patterns ("VFR-in-CFR" container).Limitation:
--frames(totalFrames) is defined, because this does not convey a duration.