- 14 Jun, 2019 6 commits
-
-
-
-
-
-
-
In preparation to the pub cleanup.
-
- 11 Jun, 2019 7 commits
-
-
Derek Buitenhuis authored
Signed-off-by:
Derek Buitenhuis <derek.buitenhuis@gmail.com>
-
Timothy B. Terriberry authored
"kb/s" in communication always means 1000 b/s.
-
Timothy B. Terriberry authored
We now properly track Show Existing Frame frames, and only add rate back to the rate control buffer on TU boundaries.
-
Timothy B. Terriberry authored
This logic was buried deep inside FrameInvariants::new_inter_frame(), but we will need it elsewhere to make guess_frame_subtypes() work. Separate out the static configuration into InterConfig, and pass in the variable state as function parameters. This patch makes new functions to - Determine the index of an output frame in its reorder group - Get the order hint for a given output frame - Get the pyramid level of an output frame - Get the reference frame slot where a decoded frame will be stored - Get whether or not a given output frame will be shown - Get whether or not a given output frame is a Show Existing Frame Not yet converted: - Logic to select the references used by an inter frame This patch introduces no functional changes.
-
Timothy B. Terriberry authored
Instead of using generic terms like "idx" and "number", explicitly describe every variable involving frame indices in terms of whether it is counting input frames or output frames. This removes an output-centric bias that may not be obvious in some places (group_len vs. group_src_len), and immediately makes several bugs in guess_frame_subtypes() obvious. This patch introduces no functional changes. It is just renaming. PUBLIC API CHANGE: -Packet::number gets renamed
-
Timothy B. Terriberry authored
Despite the name, we were passing FrameInvariants to encode_frame() as &mut. There were two places that it actually mutated the contents. 1) In write_sequence_header_obu(), several fields were set to constants. Given that we write the sequence header multiple times, but its contents should never change, the initialization does not belong in this function, as that is just asking to violate this constraint if we ever make them non-constant. Instead just initialize the fields when the rest of the FrameInvariant struct is initialized, since the values are currently constant anyway. We can find a better place than write_sequence_header_obu() (one that really is called once per sequence) if we ever want to make them non-constant. 2) The ref_frame_sign_bias[] fields are initialized at the very start of encode_frame(). These can instead be initialized in new_inter_frame() as soon as ref_frames[i] is set. With the above two changes we can drop the &mut and ensure that FrameInvariants really is invariant.
-
Luca Barbato authored
-
- 08 Jun, 2019 1 commit
-
-
Luca Barbato authored
-
- 05 Jun, 2019 6 commits
-
-
Luca Barbato authored
-
Luca Barbato authored
-
Luca Barbato authored
The remaning field was not updated
-
Vibhoothi authored
Prepares for publishing to crates.io
-
-
-
- 04 Jun, 2019 3 commits
-
-
Luca Barbato authored
-
Luca Barbato authored
Fixes #1330
-
linkmauve authored
`Muxer` is a trait, and passing dynamic traits without the `dyn` keyword is now deprecated.
-
- 03 Jun, 2019 5 commits
-
-
David Michael Barr authored
-
Derek Buitenhuis authored
There's no reason to explicitly bind this to the max keyframe interval. It's useful to, for example, set it larger than 1.5x the keyframe interval for short intervals (1-3s) to prevent bitrate starvation after larger than expected (complex) keyframes. Signed-off-by:
Derek Buitenhuis <derek.buitenhuis@gmail.com>
-
Luca Barbato authored
The build target in `build.rs` is available as environment variable at runtime, not compile time. While at it refactor the code to support the future ARM assembly contributions.
-
Derek Buitenhuis authored
It wasn't supposed to be enabled, and we don't handle it correctly. Signed-off-by:
Derek Buitenhuis <derek.buitenhuis@gmail.com>
-
- 01 Jun, 2019 3 commits
-
-
Luca Barbato authored
So the cli can exit cleanly on sigterm.
-
-
David Michael Barr authored
This is a bug fix and aligns to rate-control in Theora and Daala.
-
- 29 May, 2019 4 commits
-
-
Derek Buitenhuis authored
Signed-off-by:
Derek Buitenhuis <derek.buitenhuis@gmail.com>
-
David Michael Barr authored
-
David Michael Barr authored
These were derived by analyzing the data collected for the first iteration and applying a 3-segment piecewise-linear fit. The boundaries were aligned to integer values of pixels-per-bit, while optimizing for similarity to a cubic interpolation of the control points (log-quantizer as a function of log-bitrate.) Testing against objective-1-fast, these values appear unbiased within a fifth of a standard deviation prior to trial encodes. After adjusting scale by trial encode, there is no significant bias and the standard deviation of initial frame sizes is on the order of 3%, for all frame types except P-frames.
-
David Michael Barr authored
-
- 28 May, 2019 5 commits
-
-
-
Updates to the Visual Studio 2019 AppVeyor image, which contains Visual Studio 16.1. We don't use msbuild so it shouldn't matter that much.
-
Move to unsigend arithmetic in LRF box accumulations, and simply guard the one subtraction that can underflow (that was the reason we were using signed ints to begin with). Fixes an overflow in 12-bit encodes.
-
Xu Guangxin authored
-
Xu Guangxin authored
-