This commit was manufactured by cvs2svn to create tag 'release-1_0_0'.
Marking 1.0.0
two tooltips should show now
Wrong DC prediction fixed
patch-23 (unix build cleaning) and patch-24 (VOL corruption when fps=1/1)
very small visual fix
won't crash if stream doesn't start with an i-vop
a typo
calc is able to open already-opened audio tracks
Cleaning
#define ARCH_IS_LITTLE_ENDIAN missing for xvid_enc/decraw fixed xvid_decraw compile warnings and div0 error added xvid_decraw MSVC stdin eof warning
Trellis fix
memory leak fixed
ugly bug
amd k6-II+/III+ patch
oooooooops I borked vhq>1 - should be ~5% faster now (with qpel)
better MV clipping - does not break DX50 streams which have motion out of range
PGM support back
3dnowext+mmxext fix
colorspace fix for RGB16 (C function only)
I prefer english speaking ;-)
Brightness slider and dering checkbox now invisible
Fix: Include stdarg.h _only_ for MS .NET
marking RC4
100% safe version of framedrop fix
frame dropping fix - it is now virtually disabled with bframes+closed gop
frame dropping fix - it is now virtually disabled with bframes+closed gop
final cleanup - dead code removed
small fast qpel typo
Free ressources smartly
Sorry no time to split this devapi4->1.0 branch merging
Fixes
This commit was manufactured by cvs2svn to create branch 'release-1_0-branch'.
xvidcore 1.0.0 rc3 merge back to HEAD
xvidcore 1.0.0 rc3 merge back to HEAD
xvidcore 1.0.0 rc3 merge back to HEAD
xvidcore 1.0.0 rc3 merge back to HEAD
xvidcore 1.0.0 rc3 merge back to HEAD
Bitstream fixes (mainly a VOL syntax error and a missing/wrong paddings)
We might have done that long ago -- updates API version to 3.0
VHQ is P4 compatible again | improved PBI decision *again*
ugly bugs fixed, R-D works better now
switched back to Walken idct
don't use Walken idct anymore, simple idct is now used by default instead
Dummy, stupid fix to the default 10s keyframe interval
Added module building for MacOSX.
yay, R-D motion search ^__^
cleanups, minor fixes
Added config.status to distclean target
Unix system should use SONAME=libname.so.major
hopefully, intra frame at every scene change (we really need it to cut things)
b-frames look good in still motion, after all
"What bug could i invent today ?"
improved vhq (does not decrease psnr anymore - at least for low quants) and tweaked p/b/i decision again
bframe_threshold works again - I didn't know anyone uses it ;>
faster; better vhq; bframe-decision changed again
bframe_threshold not supported -> disabled
a bit faster + a small bugfix
Fixes 32 bit misaligned reads on ARM (+ some sync work with old 0.9.x tree for cleanups)
CBR + b-frames bugfix
Fixed some cut&paste errors and some other small things
Fix aligment problem for dct blocks
Fix aligment problem for dct blocks
sad cleanup
vc.net support
cleanups; dark blocks prevented in bframes; warning: bframes have lower quality due to thresholding: decrease quantizer (150/0 for example);
cleanups; it is able to compensate bframes correctly (for internal decoding)
Little more speedup for calc_cbp_c()
Speedup for calc_cbp_c(), loop unrolling / 64bit integers
Fixes installation in non existent path.
plain C speedup for halfpel-interpolate
Added signed ptr_t type (called intptr_t as in C99)
some cleanups ; revised p/b decision with sensitivity control ; max iframe interval works again
some cleanups ; revised p/b decision with sensitivity control ; max iframe interval works again
Minor fix (still_left_in_buffer underflowed too early)
Fixes a bunch of small things on cygwin, and unix (soname and bootstrap)
This one should work everywhere
sad16v, removed CRC error for sad16
Rename cbpy_tab to xvid_cbpy_tab to avoid naming conflicts (with ffmpeg)
Corrected Colorspace (MPEG-4 uses YCbCr, not YCrCb)
Now finally: really xvid_bstat
Preliminary xvid_stat with bframes
xvid_bstat.c
xvid_bstat
cleanups
cleanups
msvc warning fixup
- better fix
Fix 'which' output dependency. If it is still not right, then we'll have to find another solution.
- Fixes a couple of portability issues - Activates tests even for plain C version ToDo: Move tests flags to the xvid.h file and _document_ them.
Fixed a wrong Latex command
- Added simple autoconf detection for >= 2.50 version
Small fixes patch
Ported 0.9.x "unsigned/signed comparison warnings" fix
ANSI C'ification
Forward port of stable fix (v1.15)
Fixed array duplication -- moved to motion_est.c
Removed compiler warnings (gmc uninitialize, unused variable)
Removed compiler warning (filename temp array was uint8_t instead of char)
Raised CACHE_LINE to 64 (optimal for Athlon/P4, 32 would be enough for P2/3)
- Header - Changed tabs to spaces for helpers - ToDo: Doxygen the header again.
- Header - ANSI C comments
- GPL Header - ANSI C comments - Min Chen removed from comments (no offense, the name will be added to the header when i'll restore copyrights just like i did for 0.9.x)
- typo fix
- GPL header - Ansi C comments
Oops static libraries are not versioned
testing
Table duplication fix (Moved tables to a C module - kept declarations in header)
futher portab.h, ARCH_IS_xxx fixes
Last changes from pete
chromatic optimization -- forgottent bits from the merge
Moved dev-api-3 to HEAD -- Nasty but efficient -- Merging work has been done too
Ready for 0.9.1
line feed fixup
patch-13 More "unknown compiler" friendly portab.h file. patch-14 The PPC port is now disabled because it is outdated. patch-15 Added the configure bootstrap script. patch-16 Changed linking option on PPC platforms (-flat_namespace) patch-17 Added IA64 DCT source choice according to the compiler basename. patch-18 Fixed xvid_encraw help message. patch-19 Fixed libxvidcore.def, revamped Makefile output, fixed ia64 build, added ranlib detection. patch-20 Removed BFrame outdated bframe/qpel decoding.
Fix namespace conflicts on PPC platform
PPC port is disabled, it uses Plain C version now.
Should now be more "unknown compiler" friendly
Helper script to generate the configure script and all needed files
I made all these changes on my own working copy until i had something really usable wihtout regressions for most users. I think its place is now in CVS. Here is a ChangeLog summary generated from my local patches. base-0 Imported xvidcore 0.9.0 into arch repository patch-1 Updated to current stable CVS_HEAD patch-2 Changed build system for Unix OSes patch-3 Fixes for the new build system in sources. patch-4 Fixed options and added the --disable-assembly option patch-5 Fixed a BSD checking in nasm output format. patch-6 Fixed the "ar" "s" option for some platforms. patch-7 Changed the way I add strings into variables. patch-8 Fixed portab.h for _DEBUG target and GCC/ICC compilers. patch-9 Added Altivec detection (Guillaume Morin) patch-10 Fixed MacOSX build. patch-11 Fixed WIN32/_MSC_VER confusion and updated MSVC libxvidcore.dsp project file. patch-12 DivX4 compatibility layer has been turned into an option (default:disable). ToDo: - Fix IA64 assembly file selection. - Do I disable PPC assembly code ? (according to Guillaume, it needs to be updated)
Fixed a bug where run_esc==-1 was indexing an array -> segfault (spoted on a strong arm CPU ;-)
Fixed a bunch of unsigned/signed comparisons assignments
Small fix
ptr_t fix (s_kraste at ira.uka.de)
Fixes from MfA
Much lighter VLC implementation (saves >6MB)
coeff level [-2047,2047]
Changed my email
Program's name fix in a printf
Fixed a buffer overflow in vlc_init (lacked a few more VLC in intra/inter tables) - should solve the static problem on MSVC targets too
Fixed bitrate/bpp report
Added Hinted ME code to show how to use it
Another series of warnings for aggressive compilers
Fix the fix
cleanup
smp remove patch <rickf at ebenchmarks.com>
Fix for 0 aligned blocks
Ansi C + Win32 update for xvid_bench
Added 2 last projects and added a workspace
EMMS() is not a timer
ANSI C compliancy - thx Rick Foos
now REALLY support for ICC
ICC support
Separated parts for location restrictions and linking permissions
Changed license
License changed
License changed
License changed
License changed
License changed
License changed
License changed
License Change
Added -I for nasm
doxygen comments cleanup
Changes optimzation from -Os to -O2 (10% speedup on gcc 3.2)
XVID_ENC_ENCODE typo fix
Added doxygen comments
Added doxygen documentation generation files
Fixed copyrights
Added Min Chen
Changed Michael Militzer to name + email (next patch will fix copyrights with the right holders)
fixed stupid-programmer interlacing bug fields could have been incorrectly handled due to missing bias test
- Removed a stupid ')' squatting the previous gruel's patch :-) (did you ever check the code compiled ?)
tiny ia64 fix
Bugfix for parameters of MBQuantIntra() [unused code]
Bugfix for parameters of MBQuantIntra() [unused code]
Updated - Release is now ready IMO
- Added string.h so gcc does not complain about an undeclared strcmp function.
Outdated, and not needed anymore
Added to project
All the txt went to README
- Updated - Added all examples here
Last small fixes
Added to project
Fixes
Updated - MSVC compatibility - MP4U support - Single m4v file support
added decore and encore exports
cygwin mingw-runtime notice
- Fixed a typo error in unix mseconds
- Oops the unix mseconds had a typo mistake
Updated
Some trivial fixes
- Added command line - Added simple mp4 video stream container support (header + :size,data: + ... + :size,data:) - Fixed PGM saving - Win32/MSVC compatibility
Updated - unix2dos applied
field-dct decision bias (thanks to Michael Niedermayer for the idea!)
amended copyright
removed incomplete field-mv support
Fix typo mistake
Removed DEBUG and DEBUG1/2 calls
mingw/msvc compat. patch
Updated
- Removed definitively bframe ME code
- Added main contributors
Udated copyright holders
- First sparcs have a 32bit address bus. If one day we plan to have sparc 64 support, then we'll add ARCH_USPARC.
bugfix - custom matrix mode used to force vol header for every frame
fixed msvc compilation
- Fixed MIPS and SPARC macros/constants
- Changed DECLARE_ALIGNED_MATRIX
Updated
Removed DEBUGXXXs calls
Cleaned (hopefully)
Updated
Renamed file Makefile.linux->Makefile.linxuxx86
Changed header
Synced with last Makefile.linux changes
Changed profiling option, added arcs profiling, branch probabilities, and test coverage
Removed SMP cflag and added BFRAMES_DEC (lacks real testing).
msvc dsp fix
- Disabled bframe specific code and macros. My tests seem to confirm this patch does not hurt but i keep these #if 0 #endif just in case i have to revert things easily.
Fix fps report (this patch has been lost somewhere, i'm pretty sure to have fixed that a few days ago)
- Removed LUMIMASKING test for quality 6
- Fixed a problem where when using fixed quantizer, xvid_stat was reporting the use of q default_bitrate
pross email address updates
removed smb_motionest.h reference
msvc6 static vlc tables fix
- Possible memory leak if second malloc fails
Stupid bug for a stupid guy like me, sorry
Old files renamed
renamed to libxvidcore.dsp
Removed in favour of xvidcore.dsw
Fixed a remaining endif statetement forgoten in the file
These examples do not show no more things than xvid_stat... so i remove them
Used by cygwin
Updated, creates a dll and its import lib too
- Removed last bits of BFRAMES #ifdefs
- Removed code from Christoph that should have never been there.
Fixed PSNR (Was only calculated for Y channel)
Fixed a bug in pgm writing (we must interleave data from u and v channels)
- Added command line parsing (for ease of use) - Basic win32 compatibility (I had to lose precision to make it win32 compatible using clock() ... the manual page says POSIX fixes CLOCK_PER_SEC at 1000000, so it should give us millisecond precision, i think it's enough) - Make things static, and const when necessary - Fixed some bugs in pgmreader when stream was != stdin - My usual cosmetic and cleaning work.
Was only used by bframe encoder
This stable version will not include smp support
- header cleanup - removed bframe-support
Fixed an uninitialized variable (gcc 3.1)
Fixed a VC++ compiler warning
Fixed lot of VC++ compiler warnings
Updated
Removed font.c from Makefile (only used in bframe)
Adde legal header + canard copyright
Added legal header + copyright (go canard, go !) :-)</private joke>
- Added legal headers - Cosmetic
Added legal header
Added headers, removed unused code
- hey this file is mine :-) Apply my copyright.
- Legal header - Cosmetic
- Changed header - Extended peter's copyright to 2002 - Cosmetic separation between logical sections
- Respect const qualifier changes in vlc_codes.h
- Changed const type qualifiers
updated copyright headers
Original README file from Intependent JPEG Group software as required by their license since we use parts of their code for integer (i)DCT
updated copyright header
updated copyright headers
- Pure cosmetic - tabs->spaces
updated license header
- removed const qualifiers because the functions do not return const matrices (i'll change that in a later time)
- Fixed compilers warnings - Clarified a comment
- Compiler warning fixed.
- Little mistake in previous commit fixed, all bframe functions have been disabled
- Moved get_coeff from vlc_codes.h - Disabled MBCodingBVOP with #ifdef 0 #endif (Will be removed completly when i'm sure it doesn't hurt)
moved get_coeff inlined function to mbcoding.c
- Changed header - Added static qualifier to local arrays - Cosmetic
- Added GPL Header + patent infringement - Cosmetic - The inlined function will be moved later
Updated
- Hmmm, i've been obliged to revert the previous patch because ofthe mmx code using the same arrays, so they need to be global. We'll have to fix that, because it's not *thread safe*.
- Added newline at eof to shut up gcc 3.x compilers
- Added headers - Added copyrights - Removed old getpmv functions
Removed old get_pmv calls
- Added Legal header - Cosmetic - Added Copyrigths
- header fixed - removed history from file - moved peter's copyright to top of file
- Header - Copyright - Warning about tread safeness in this module
- Legal header - Copyright
- Fixed copyright - Removed history
Removed SMP
Removed B-frames
typo
Removed B-frames
- Update license/copyright header - Removed history header
- Update license/copyright header - Removed history header
- Update license/copyright header - Removed history header
typo
- Update license/copyright header - Removed history header
Little mistake
Added legal header + copyright (definitive)
- Changed header - Removed history from file
- Removed history - Added copyright (definitive)
Added copyright
- Added copyrights (yeehaw, my only copyrighted file in XviD :-) - Removed history from file
Added patent infringement notice
- Added header - Cosmetic
Removed history
- Header changed - Small cosmetic schanges
Call MBPrediction only of INTRA/INTRA_Q blocks
- Added legal header - Michael's copyright (until we find who is the origibal author)
Updated
- Updated legal header with Peter's copyright for 2002
Added legal header
- Added information about possible patent infringements - Added NotaBene about the non thread safe state of the code
Thanks to christoph i removed this nasty horrible bug ! Kidding of course :-)
- Removed simple BFRAMES part of structures ToDo : remove last BFRAMES bits once bframe code has been removed from the stable tree
- Fixed header to mention possible patent infringement - Removed History
Added $Id$ keyword again
Removed BFRAME code
Removed History, moved copyright.
- Added legal header - Temporary copyright
- Added legal header - Added copyright (temporary set to Michael)
Added $Id$ keyword again
Added $Id$ keyword again.
Removed BFRAMES parts of the code.
- Removed history header - File Copyright to Michael until we find who wrote this file
- Added new item - Moved the $id$ keyword out of the box
Removed BFRAMES part of the code
- Removed History Header - Added Michael Militzer Copyright (well Michael seems to be the first contributor)
- Removed History from file header. - Moved Peter copyright to the top of the file.
Removed BFRAMES parts of the code
Stable tree ToDo List
Removed BFRAMES options
Reentrancy problem fixed in adaptive code
interlacing bug fix - to comply with spec, no field blocks at boundary
interlacing bugfix (edging behaviour)
interlacing bugfix (inter cbp behaviour)
Support for timestamps even without #define BFRAMES
Added low_delay=1 for non-Bframes mode.
x_pos, y_pos are not needed in MBTransQuantInterBVOP()
shatty's beos patch
initial commit. raw test application for XviD native API, including support for B-Frames.
updated coeff thresholding to Radek's decision criteria
Ooops, first bugfix was an outdated version and the CVS got stuck...
Bugfix chroma motion compensation in BFRAMES mode. Block based has to be used, even if BFRAMES is active, because we cannot rely on XVID_HALFPEL (XVID_HALFPEL is not needed if max_bframes<=0)
adapt to the new calling interface of hafpel8
fixing a bug in make test
very small bugfix for interpolated ME (thanks to Radek)
Use MBTransQuantInterBVOP (skips work) for small B-frame speedup
Added several MB-functions which do the same as MBTransQuantInter/Intra now, but split into several routines. MBTransQuantInter2/Intra2 do the same as -Inter/Intra but using the split up routines, MBTransQuantBVOP skips unneeded decoding operations for B-VOPs.
sse2 dequant funcs revamped
New variable pEnc->last_sync for (more) correct time-codes in B-frames mode. Not a 100% clean solution. NOTE: Whole Timecode management must be rewritten!
windows b-frames fix
Fix missing symbol error when compiled without bframes support (thx monrad on IRC-opn)
"first frame p-frame" bugfix
switched back to old lumi masking code
fix the first frame is green wrong
Oops, a 'k' had run away.
First support for XVID_GREYSCALE: chroma DC is zeroed, AC is not saved. No speed improvement, but working feature.
new global flag XVID_GR[EA]YSCALE to ignore chroma components when encoding
Fixed wrong sad8bi for b-frames direct mode (thanks to Radek!)
Modified to only drop if blockcount is _less_ than ratio instead of _less or equa_, otherwise drops were still possible, even for drop=0 (-> bframe crash)
Fixed timecode problem for direct mode with max_bframes>1
halfpel search for MODE_INTERPOLATE and MODE_DIRECT
Modified SKIP mb behaviour for Pframes when Bframes are active: Check if intermediate B-block can be skipped, too. Check for SKIP is now done in encode_pframe(), not in MBCoding().
Interpolated and DirectMode motion estimation (DiamondSearch) for B-Frames. Slow, but working, this might have been the final step to a complete implemenation of b-frame encoding. Btw... it's 5.a.m so don't trust this CVS entry!
Finally Cut&Paste and Search&Replaced Square8_MainSearch, so PMV_USESQUARES8 is now functional. Also, some minor fixes.
Fixed embarrassing bug in Dimaond16/8_MainSearch (iDirection was overwritten)
Enable B-frame + INTER4V (not bugfree yet)
Fix B-frame: Direct Mode with INTER4V
Minor Cleanup
New fields deltamv, directmv[4] in Macroblock for more logical B-frame ME
Disable SKIP handling for _DISABLE_SKIP defined
Change name of static lib to libxvidcore.a
Added #ifdef _DISABLE_SKIP in MBCoding(). If this is defined, there will be __no skipped macroblocks__ in P-frames! This is of course bad (bigger files), but it's needed for clean B-frame encoding until we have a workaround for the SKIP-flaw in the standard. :-(
Added motion/x86_asm/sad_3dn.asm because it was missing (good reason!)
qpel decoding support
Thread safe version.
Little mistake with the stack pointer.
Thread safe version.
sad[16,8]_mmx, sad[16,8]_3dn, sad8_xmm
Some %define to make the code easier to read.
Range check for B-frame quantizer
bframe encoding bugfixes, ME unification
Small fix to make sure negative values => defaults settings
frame_drop_ratio
output_slice() msvc compiler fix
Add missing #ifdef around some bframe code
slower implementation, without rounding errors
slower implementation, without rounding errors
futher improved sad8 and sad16
removed debug code
Bugfix for B-frame encoding (new parameters time_bp, time_pp to BVOP-ME)
Minor fix for time-hack
Add 'per slice' rendering aka DR method 2
Added debugging and profiling options - could be useful
Fixed for Bframes encoding and maybe decoding, too.
B-frames encoding "ME" for direct mode (and minor other things)
sse/sse2 os support detection
added sse2 os triggers
removed static data; added sse2 os triggers
cglobal fix
cbp_sse2.asm & sad_sse2.asm added
advise for how to fix my b-frame decode code
extended documentation and comments
some comments
fixes some bug with claiming the wrong fp registers
further aggerssive optimizations
fix for a bug in the ia64 idct, that prevents compilation with intel ecc
Global assembler optimization of halfpel8_refine, via inlinig of sad for ia64
Global assembler optimization of halfpel8_refine, via inlinig of sad for ia64
Global assembler optimization of halfpel8_refine, via inlinig of sad
fix my some wrong with b-frame deocde at direct mode
Fix a little bug 'mb->quant = 8' in decode_bframe()
XVID_ENC_PARAM->num_threads
support the decode examples in ex1
add the decode examples
move to test_enc.bat
removing rounding bug, that yields pink color drift in P-frames
fix a little bug and added the BFRAMES_DEC_DEBUG support
Preparations for block-based-interpolation ME: PMVfastIntSearch16 (pre-version)
Minor change: Switch from get_pmv to get_pmv2
Minor bugfix.
Step towards blocks based interpolation ME: get_ipmv/get_ipmvdata
Minor change: Switch to get_pmv(data)2 instead of get_pmv(data)
Minor change: Switch to get_pmv2 instead of get_pmvdata in HintedME
Inserted preliminary support for intel's ecc in portab.h
generated with itanium idct generator
itanium idct generator
bswap with ia64-asm
fixing for ia64, again
preparations for block based ME
Added pentium/pentiumpro switches. Slightly faster for 2.95 than i686
sync to support latest CVS source code
undo my wrong
reupload
fix my wrong moment ago
help upload for roaming
Function prototypes for dequant_inter_xmm, dequant_intra_xmm
Skal's tweaked dequant functions
near jumps
long long replaced by int64_t
Added switch for _SMP (default disabled)
Remove "short jump out of range" by using JZ/JMP instead of JNZ
Include XMM and 3DN routines (which are seperate files now)
replaced read_tsc() by read_counter() from portab.h
split mmx,xmm,3dnow,sse2 code into different files, SMP fix, Skal's tweaked asm code
BugFix for EPZSSearch16
Added motion/smp_motion_est.c for multithreaded ME support
Minor modifications for supporting multithreaded ME. Without _SMP symbol there should be no changes in behaviour.
Routines for mulithreaded ME. XviD has to be compiled with -D_SMP option for these files to be treated at all.
compatible with ia64, now
Optimized assemby
Added font.c for BFRAME mode
get_pmv2/get_pmvdata2
killed warnings, ecc compatible
resync patch
optimizied, but not fully operatial on ecc, genidct.py needs some fixing, not all files needed are committed. stay tuned.
imporoved verions of sad8 and 16
re-fixing check_cpu_features compiling / linking issue, hopefully it is sufficent for all platfroms, now
resync support, check_cpu_features() fixed
- added inter4v description - added details about each ME flag (thx christoph)
define internale labels, locally for debugging, with .L
fixing a problem with check_cpu_features, that prevents compiling of the codec on platforms other than x86.
fixing dos linefeed
some assembler optimizations done, all warnings can be ignored.
some assembler optimizations done
fixed_vop_rate
minor dx50bvop fix
- Updated to 2.1 API version - Still work to do (indicated by ToDos :-)
added font.c, sgi-irix64 makefile, dx50bvop working
- transfer_8to16sub2_mmx activation - Compile fixes (a missing image/font.h ???) - Linux Makefile update to take care of last changes in feature constants
XVID_GLOBAL_*, XVID_CPU_CHKONLY, timestamp fix, font.c
minor fixes: bframe N_VOP support, custom quant bug, BFRAME inc_frame_num()
bframes patch
fix a little bug
dev16 is optimized, now.
bframe patch
*** empty log message ***
optimizations, correct transfer_8to16sub2_xmm
Skal's test and benchmarking tool
ProfDrMorph's new (unoptimized) Luma Masking code: luminance masking now works with relative values instead of absolute ones the new code raises/lowers oberall quant for especially bright/dark frames ( Weber-Fechner law: humans see less differences in bright scenes ) every pixel with a very low lumi value is set to 0 for better compressability ( again the Weber-Fechner law; below a certain intesity humans won't see anything )
fix a little bug in use custom quant matrix
add #ifdef BFRAMES
- added legal header - added function descriptions
- Added legal header - The x86 specific function 'check_cpu_features' is only declared when ARCH_X86 is defined
- Commented (really needed ?) - Added legal header
- Added transfer_8to16sub2_xmm (B frames compensation)
- Removed an unuseful piece of code
- Removed an opcode (used during my tests)
- Added a transfer_8to16sub2_xmm function (Needs testing)
This file is not useful
- Added legal header - Cosmetic
- Added comments - Changed the FSF address
correcting windows path name in include
ia64 changes
ia64 changes
some small fixes
updated Makefile.djgpp, added DECLARE_ALIGNED_MATRIX to portab.h for unknown/other platform
msvc asm{} codingstyle fix
IA64 assembler files, initial version, only partly optimized
- Added legal header - Added comments about the functions
- Cosmetic - Added legal header
- Mainly Cosmetic. - 'bool' type is now 'int', natural cpu size variable. (Dev Mail-List suggestion from Christoph Lampert)
Cosmetic
Added comments, documented all returned values
Cosmetic and ANSI C comment style (just this header as it may be included in an ANSI C project.
EMMS macro replaced by the emms() function.
Added the $Id$ RCS keyword
Added to the project so every one can (try) to conform to this
Cosmetic - CodingStyle Applied - Legal Headers will be added later
Another bunch of 80 column cut, ANSI C comments - There's still work to do there :\
Small memory leak fixed
80 Column cutting. I've put all the encoder_create cleaning code in goto statements, this is a clean way to do that job but some people don't like goto statements
Added lot of new gcc features for 3.1 and added comments. We can set environment variables to preset CC and CFLAGS now
Small change, avoid calling free with a random address
Last bits of "Rate control per instance" patch
Rate control structure per encoder
to compress xvid source code package size
todo cleanup
fix some bug
Returned to old style MotionEstimation (one loop for INTER and INTER4V)
fix a little bug
example for use xvidcore to compress iamge
Added AdvDiamond_MainSearch by sysKIn which seems to be faster and better than normal Diamond_MainSearch, at least for plain fullpel search. It can be activated by PMV_ADVANCEDDIAMOND16/8 flag.
added PMV_ADVANCEDDIAMOND to activate new Diamond MainSearch by sysKIn
#define BFRAMES
no message
mean reduced SAD, C-version
Small bugfix in MotionEstimation (wrong prediction for INTER4V)
Use INTER4V only if neighbours move different than current block. Save quality, some speedup.
Optimization options for AMD K6
general cleanup, first modifications for new INTER4V heuristics
SAD values in MACROBLOCK have to be signed integer
Fix for gcc
Tests to not double check vectors in PMVfast16/8 (only in prediction, not during diamonds phase). Minor speedup.
add low_delay decode support
MotionEst(): set sad8[] also for INTER mode to correct values (for get_pmdata)
Another minor fix for get_pmvdata()
correted get_pmvdata returning wrong SAD for left boundary blocks with MV (0,0)
low_delay
bitstream finc/fbase bug fix
no message
fix some my B-frame decode error
Added "per encoder" quality setting
Removed the "not ANSI compliant" BFRAMES after the #endif
quant range checking
add B-frame decode support
no message
sse2 idct/fdct
removed coeff clamping
#define BFRAMES
Adapted to new API
fix a little compile bug(in DEBUG mode)
Cosmetic, gpl header
sad values can be negative (Cristoph post scriptum to a mail in the dev maillist)
Sad values can be negative (Christoph Lampert Post scriptum in a mail to the dev mail list)
Cosmetic, added the RCS Id field
Cosmetic, added GPL header and RCS id field
Added the RCS $
- Added quiet_encore symbol so transcode can use XviD with its divx4 API - Added comments - Added possible ToDos and pointed out 2 major problems : + Reentrance + the quality setting for the encoder part
added divx4_general_preset to compelety determine quality levels.
Fixed some minor issues in ME, changed calc_delta16/8 to non-linear function of quant (from a paper on H.26L). Now inter4v finally gives some improvement.
Adapted PMVFast16/8 for using prevMB instead of pMB, seems to work.
Re-Added get_pmv() for returning median predictor only without all the other stuff like neighbours and SAD values.
#ifdef'd OutputDebugString because it's _DEBUG an Windows only
FRAMEINFO
sse2 quant_intra/dequant_intra/dev16/(faster)sad16
add some B-frame support
remove some compile warning
knhor - 020420 - add install
knhor - 020420 - add freebsd support
fixed bug when using lumi masking with hinted ME
beginnings of sse2 support (disabled)
rewrite log2bin() use asm386(only in VC)
updated to reflect cbr changes
foxer's updated cbr code
support for foxer's updated cbr code
Text file how to use xvid_stat with explenation of parameters
advanced example how to use XviD including statistical analysis of encoding and decoding speed and quality
bframe "support" code
segfault fix
AC vlc coding bugfix, thanks to Vivien Chappelier
PPC update
decoder speedup
PSNR calculations
PSNR calc
interlacing bugfix
debug output for cbr
moved HintedMEGet() on intra, to FrameCodeI()
hinted motion estimation support (raw or compressed)
reworked vlc tables
Added -mvec comment
source C files for sad Altivec
splat -> vxor optimizations
Added EPZS and EPZS^2. Unfortunately slower and not really better than PMVfast
optimization
CFLAGS fix
PPC trivial fixes
cygwin Makfile, thanks milan
PPC update
SAD in Altivec
Little fix
fixed crash when using lumi masking in cbr mode (i'm such an idiot)
fixed crash when using lumi masking in cbr mode (last time..)
fixed crash when using lumi masking in cbr mode (removed development code)
fixed crash when using lumi masking in cbr mode
merged image/pMBs create and destroy stuff into single if()
interlacing speedup - transfer strides used instead of manual field-to-frame conversion
interlacing fix and speedup - compensated data wasn't being used in block reconstruction
win32 fix - #define can't immediately follow #define ;-)
Sorry, the previous patch was buggy. This one shoud fix the problem
Big patch, use it with care (tests done with GNU/Linux) : - Trivial warnings in encoder.c line 282 ret1 = ret 2 = 0; - Lot of "New line at end of file missing" warnings fixed (gcc3) - All 2d arrays have been turned into 1d arrays To force alignment of matrices on stack, use DECLARE_ALIGNED_MATRIX (read portab.h) Win32 users should give feedback.
DIRS_PPC update
dct altivec
ASM update
fixed some warnings
LINUX: proper alignement on the stack
aligned memory for better performance
first bits of Altivec support
PPC Altivec version
interlacing support - slow (MBDecideFieldDCT()), buggy (p-frames), incomplete (field motion prediction)
added *.h to msvc project, removed __declspec(align(..)) for _MSC_VER <= 1200
Changed rc_buffersize to 16 as decided in the forum
s/16/CACHE_LINE/
Fixed a bug when malloc aligns the data itself - Added comments
foxer's cbr mode (hijacks the rc_buffersize variable and uses it as reaction delay - easier than changing xvid.h)
read words in memory instead of hw
no message
cosmetica
loop2 now uses CTR
some label cleanups
use simplified mmemonics
CR0 use
use 386 cpu 'bts' in 'cbp |= 1 << (edx-1)
Added first PPC asm port
no message
adopted to new API
cbp_calc for PPC
Added GNU CC alignment
removed intel asm parts
Fixed bug pointed by canard (out of bounds reading and a big mistake in j upper limit)
BSWAP,EMMS macro for LinuxPPC
LinuxPPC Makefile
I prefer this traditional way of alignment
alignment stuff
xvid_malloc/xvid_free
added 3dnow hv interpolation
added interpolate8x8_halfpel_hv_xmm
Disabled DEBUG-messages in Linux, if _DEBUG not set
removed init_timer
removed debug output
disable win32 debug output in release builds (encodes 0.7% faster)
change release compilation inlining mode to "any suitable" - runs faster (just)
prevented RateControlUpdate() being called in non-cbr encodes (bitrate isn't 0 anymore - it's set to 900000 in encoder_create())
INTRA_Q/INTER_Q mcbpc bugfix
readme
no message
no message
qmatrix bugfix
Fixed warning about csp_tmp unitialized
Fixed gcc warnings
Fixed implicit declaration of malloc - #include <stdlib.h>
Fixed brackets for coeff_tab3, coeff_tab7, coeff_tab10 and coorect indentation of all code
Fixed gcc warning about '/*' into comments
Fixed lot of gcc warnings about '/*' into comments
Small cleanup for gcc warnings and code indentation (thx emacs indent-region :-)
In some circumstances acpred_flag was used unitialized - now it's set to zero
New tree structure
bugfix
now compatible with new XviD API
custom qmatrix support
moved sources