- Dec 16, 2010
-
-
Ralph Giles authored
The specification says that the frame rate numerator and denominator MUST both be greater than zero. This wasn't checked as part of the structure validation code, and in fact passing a zero value here caused a segfault. The code now checks for this in oc_state_init() and returns TH_EINVAL, which is causes th_encode_alloc() and oc_decode_alloc() to return NULL. A check for that NULL return is also added to encoder_example.c to show that it may fail when an invalid th_info parameter is passed. svn path=/trunk/theora/; revision=17760
-
- Dec 14, 2010
-
-
Gregory Maxwell authored
svn path=/trunk/theora/; revision=17756
-
Timothy B. Terriberry authored
Right now we still immediately compute abs(dc), but we will need the signed value to do real DC costing. This commit should not change the output of the encoder. svn path=/trunk/theora/; revision=17755
-
- Dec 13, 2010
-
-
Ralph Giles authored
svn path=/trunk/theora/; revision=17753
-
Timothy B. Terriberry authored
The changes in r17745 made PROC and ENDP directives emit multiple lines, leading to mis-matched line numbers between the original RVCT source and the GNU translation. gas allows multiple statements per line, so use them to keep the line numbers in sync. Also, contrary to the commit message in r17745, function names actually do show up correctly in valgrind; I was testing the wrong binary. svn path=/trunk/theora/; revision=17752
-
Timothy B. Terriberry authored
Also knock another instruction off the PMOVMSKB emulation. svn path=/trunk/theora/; revision=17751
-
Timothy B. Terriberry authored
The wrong offset was being used for the shift factor in oc_enc_enquant_table_fixup_neon(), and the wrong value was being returned from oc_enc_quantize_neon() when the entire block was quantized to zero. svn path=/trunk/theora/; revision=17750
-
Timothy B. Terriberry authored
svn path=/trunk/theora/; revision=17749
-
- Dec 10, 2010
-
-
Timothy B. Terriberry authored
PROC now marks the corresponding symbol as a function, and ENDP emits an appropriate .size directive for it. These should help tools identify these functions, though valgrind still can't associate the function name with the corresponding code. svn path=/trunk/theora/; revision=17745
-
- Dec 09, 2010
-
-
Ralph Giles authored
I'd found these helpful for script debugging, but really it's better for scripts to print their own version of this information. The -q option should really mean no non-error output. svn path=/trunk/theora/; revision=17744
-
- Dec 07, 2010
-
-
Cristian Adam authored
Removed _BIND_TO_CURRENT_CRT_VERSION preprocessor directive for VS2008 project files. Now debug version of dump_video and encoder_example work. svn path=/trunk/theora/; revision=17739
-
Timothy B. Terriberry authored
r17728 now expects this to be cleared to zero before entering oc_enc_block_transform_quantize(), but we weren't doing so. svn path=/trunk/theora/; revision=17738
-
Timothy B. Terriberry authored
It helps to actually rename the function after changing its declaration. svn path=/trunk/theora/; revision=17737
-
Timothy B. Terriberry authored
Convert references to the stack buffer in the MMX fDCT to use esp-relative offsets, saving a register. Move the MSVC MMX fDCT into the MMXEXT section (as was done for the gcc one), since it now requires pshufw for the zig-zagging. svn path=/trunk/theora/; revision=17736
-
Cristian Adam authored
Fixed one GCC to Visual C asm instruction call. Now the optimized version produces the same output as the C version. svn path=/trunk/theora/; revision=17734
-
Timothy B. Terriberry authored
This removes one of the transposes from the fDCT, and avoids several zig-zag lookups during tokenization. This change also makes the encoder iDCT clear the input buffer like the decoder, which can be re-used for the next block, avoiding the need for a memcpy or memset in the tokenizer. This gives a 1.3% speed-up at the default speed-level (1), and a 3.1% speed-up at speed-level 2 (for 480p, on x86-64). svn path=/trunk/theora/; revision=17728
-
- Dec 02, 2010
-
-
Ralph Giles authored
This program shows how to query a few version-dependent library paramenters, such as the vendor string and maximum speed level, and prints a summary to stdout in 'header: value' format. I mostly wanted this as a utility to get the maximum speed level for benchmark scripts, but thought it structuring it as an example was better than stuffing it in tools. It would be reasonable to extend this to return decoder parameters like the maximum preprocessing level. svn path=/trunk/theora/; revision=17709
-
Ralph Giles authored
svn path=/trunk/theora/; revision=17708
-
Ralph Giles authored
svn path=/trunk/theora/; revision=17707
-
- Nov 30, 2010
-
-
Ralph Giles authored
Invoking the build with 'scons collect_metrics=1' will compile the library -DOC_COLLECT_METRICS, which enables recording training metrics. svn path=/trunk/theora/; revision=17692
-
- Nov 25, 2010
-
-
Ralph Giles authored
This makes it a little nice to call from a batch job with parallel executation. The messages indentifying the input file parameters and error messages are still printed. svn path=/trunk/theora/; revision=17660
-
oggk authored
svn path=/trunk/theora/; revision=17649
-
- Nov 24, 2010
-
-
Timothy B. Terriberry authored
This was ultimately named OC_ARM_ASM_MEDIA instead. It shouldn't have mattered in this case, as it shouldn't be possible to get OC_ARM_ASM_MEDIA without OC_ARM_ASM_EDSP, but clean it up anyway. svn path=/trunk/theora/; revision=17646
-
Ralph Giles authored
The SAD and SADT metrics have different ranges, so it is necessary to use different scale factors when comparing them. Originally we used SAD, and when SATD was added, the scale factor was updated without changing the name. This commit finally does so. However, it is intended that the code switch back to the SAD metric at higher speed levels, we also keep OC_SAD_SHIFT with its appropriate value, 6 according to Tim. Likewise, OC_SAD_BINS is renamed OC_COMP_BINS in expectation of supporting mode tables for both metrics. svn path=/trunk/theora/; revision=17645
-
- Nov 22, 2010
-
-
Ralph Giles authored
to the control codes passed. svn path=/trunk/theora/; revision=17639
-
- Nov 18, 2010
-
-
Ralph Giles authored
Thanks to Basil Gohar for pointing this out. svn path=/trunk/theora/; revision=17632
-
- Nov 09, 2010
-
-
Gregory Maxwell authored
Don't change the block qii flags if no ac coefficients will be coded in the selected mode. The code previously tried to do this but failed, instead it desynchronized the qii costing with the coded flags. 0.065dB SSIM improvement on 312kbit/sec foreman_cif.y4m. svn path=/trunk/theora/; revision=17624
-
- Oct 29, 2010
-
-
Timothy B. Terriberry authored
On non-glibc systems (Android), the system headers won't do it for us. This also simplifies its use, since we can guarantee it's always #define'd (i.e., as 0 on non-gcc builds). svn path=/trunk/theora/; revision=17578
-
Timothy B. Terriberry authored
svn path=/trunk/theora/; revision=17577
-
Timothy B. Terriberry authored
Signed/unsigned comparison and integer conversion overflow. svn path=/trunk/theora/; revision=17576
-
Timothy B. Terriberry authored
sse2trans.h was including encoder headers, when it can be used by the decoder alone. svn path=/trunk/theora/; revision=17575
-
Timothy B. Terriberry authored
sse2idct.c was needlessly including x86enc.h when it is part of the decoder. collect.c had a trailing space. svn path=/trunk/theora/; revision=17574
-
- Oct 25, 2010
-
-
Timothy B. Terriberry authored
Remove a few unused variables (that were assigned to, but never used), and add an explicit cast to convert -OC_LOTS_OF_BITS to unsigned, since the C64x compiler complains about the sign change (arguably rightly so). svn path=/trunk/theora/; revision=17565
-
Timothy B. Terriberry authored
svn path=/trunk/theora/; revision=17564
-
Timothy B. Terriberry authored
We don't actually use this for anything yet, but it may help calling applications (e.g., doing software YUV2RGB conversion). Also, change ref_frame_data to point directly to the desired reference frame, rather than require a lookup through ref_frame_idx first. This saves an indirection and gives a 0.7% speed-up at 720p on a Cortex A8. It should have an even bigger benefit on C64x, though it wasn't benchmarked there. svn path=/trunk/theora/; revision=17563
-
- Oct 20, 2010
-
-
Cristian Adam authored
svn path=/trunk/theora/; revision=17550
-
- Oct 13, 2010
-
-
Gregory Maxwell authored
mcenc.c: Skip the 4MV SATD in speed level 2. 2% speedup. Avoid duplicating the first set b candidate (correctly adding the surrounding accelerators hurt efficiency). svn path=/trunk/theora/; revision=17507
-
Timothy B. Terriberry authored
This removes some useless clamping and only computes set B predictors when they're actually going to be used. svn path=/trunk/theora/; revision=17506
-
- Oct 12, 2010
-
-
Timothy B. Terriberry authored
Coverity thinks we're overrunning this static array by passing it to memset. In reality, it's a multidimensional array, and guaranteed to be contiguous, but we might as well silence this warning. Reported in https://bugzilla.mozilla.org/show_bug.cgi?id=559343 svn path=/trunk/theora/; revision=17505
-
Timothy B. Terriberry authored
This should have had a _c suffix, which r17503 exposed. svn path=/trunk/theora/; revision=17504
-