- Make the static compile targets link
- Synced with cvs head version
- bleh. increment build string
- updated graphics
- updated profile definitions
- Update vfw profile definitions and packed bs enforcement
- back ported some important bug fixes from head to release-1_1-branch
- Back ported several important bug fixes from head to release-1_1-branch
This commit was manufactured by cvs2svn to create branch 'release-1_1-branch'.
- Applied the most recent bugfixes from cvs-head to 1_1 release branch as well.
tuning lambdas for better PSNR and vhq0 mode decision
Bits from my repo
release-1_1_0 version patch: set build string to "xvid-1.1.0" set XVID_VERSION to 1.1.0 set XVID_BS_VERSION to 40 remove XVID_UNSTABLE
This commit was manufactured by cvs2svn to create branch 'release-1_1-branch'.
cleanings in code spotted by sparse (ed dot gomez at free dot fr>
typo fixed (thanks squid_80)
+ removed the x_Ref%4 in qpel.h, in favor of x_Ref>>2. As suggested by Gruel, there might be a compiler problem for some very very exotic platform. Hence, i've added a test_compiler() in xvid_bench.c, to be sure everything are ok. Hope the test is correct. + added benches for interlaced decoding, as supplied by Christoph Kühnel (info at intek-darmstadt dot de). Thanks a lot.
- Renamed and extended the profiles
vfw quality presets
TODO/Changelog update
compatibility with haali media splitter: - FORMAT_MPEG2Video support - handle uppercase MP4V fourcc/clsid
minor xvid_{enc,dec}_raw fixes: - fix clock resolution (thanks yuri khan) - link vfw32.lib for win32 avifile support - honour avifile stream length
- added avi/avs input support - various new options
- Wiped the remainders of RRV encoding support - Marked the RRV flags as obsolete in xvid.h API
vfw: replace "Picture Aspect Ratio" with "Display Aspect Ratio"
bugfix: calc_cbp_mmx was ignoring negative coeff case. have replaced "coeff_sum>0" evaluation with "coeff_sum != 0" see http://forum.doom9.org/showthread.php?t=100275 for description of bug.
+ve/-ve cbp test (to demonstrate fault with current calc_cbp_mmx function
todo: vfw enhancement
> > - uint32_t intra_dc_threshold; /* fake variable */ > > + int intra_dc_threshold; /* fake variable */ This patch fixes a warning spotted by gcc 4.0.1, because &intra_dc_threshold is passed to some function which expects a int*, not a uint32_t* (on 64bit this is important, even if this is fake data, the callee could corrupt the stack writing 64bit to a 32bit allocated destination)
msvc fails on void* arithmetic in xvid_bench.c
update example documentation to "newer" commandline arguments for encraw/decraw (the arguments were changed ~2003). bugfix: prevent endless loop when useful_bytes==1 within xvid_decraw.c
renamed dshow "Aspect_Ratio" registry key to "Decoder_Aspect_Ratio", in order to prevent conflict with vfw encoder registry key.
update ChangeLog to "1.1.0 <beta3/final tbd>"
OutputDebugString cleanup
bugfix: support for aspect ratio when decoding unpacked b-frames
Field interlaced decoding, contributed by Christoph Kuehnel decoder.c ========= - Some new defines for DIV - <decoder_mb_decode> modified: had wrong address offsets for interlaced - <decoder_mbinter_field> = new function for interlaced - <get_motion_vector_interlaced> = new function for interlaced motion vector prediction - <decoder_pframe> modified so that it differs between frame and field prediction global.h ======== - For field motion prediction MACORBLOCK has new member that is the average of field1 and field2 motion vector = <mvs_avg> xvid.c ====== - For field predicted macroblocks we need new field oriented transfer functions. For colour calculations they may only process 4 lines (one field from the colour macroblock that is 8x8). So I introduced 4 new function pointers: <transfer8x4_copy, interpolate8x4_ ...) mbcoding.c ========== - _DEBUG code; index is checked against 64 interpolate8x8.[c,h,asm] =========================== - New 8x4 functions mbpredicition.[c,h] =============== - New function <get_pmv2_interlaced> for interlaced prediciton according to spec mem_transfer.[c,h,asm] ============== - New 8x4 function
msvc6 fails upon "std" function argument name; renamed std to stride as a workaround
older mingw platform sdk compatibility
Added Carlo's optimized cbp calc function, and bench (slightly edited). (carlo dot bramix at libero dot it)
- workaround for wrong chroma rounding in very old XviD builds
* Writing pointed data is always better than memory addresses (Patch by GomGom) * Trivial style thingies (Patch by GomGom) * No width and height declared in write_tga bug (Patch by GomGom, spotted by Paul Kurucz ptk9417 at ritvax.isc.rit.edu)
Fix for x86_64 + gcc 4.1.x patch by Martin Drab <drab at kepler dot fjfi dot cvut dot cz>
disable packed-bframes widget for dxn profile
added RD modes using the "-vhqmode [0..4]" switch (as in VfW). Default currently is 0, but 1 (RD_MODEDECISION) might be a good choice.
made "-asm" default behaviour. This has been annoying me for years... added "-noasm" switch to disable it.
added the '-grey' option, for GREYSCALE coding.
fix for crc computation on BIG_ENDIAN platforms. Patch by Paul Kurucz ( ptk9417 at ritvax dot isc dot rit dot edu )
+ Aligned local arrays in test_transfer() of xvid_bench.c + optimized the C-version of mem_transfer.c. You can activate the new code by commenting out the "#define USE_REFERENCE_C" at the beginning of the source file.
oops... forgotten file
+ Added IEEE-1180 and Walken-compliant SSE2 Idct. Disabled by default (line 515 of xvid.c) until proven fully safe. Should give binary-equal results than the mmx and xmm versions.
encoder.c: simplify_time() optimized by Euclid. bitstream.c: write_video_packet_header() was buggy and kind of obfuscated, as noticed by Sigdrak at free.fr. from Edouard: gcc4 warning removal. - No executable shared objects installed (Do not install the lib as executable. It's no use as the SO has no main symbol anyway, and the static lib is not runnable anyway.) - Statically link xvid_bench with libxvidcore.a - New autoconf garbage removal - Quotes in configure.in
encoder.c: better error handling upon MEM_ERROR bitstream.c: faster log2bin (xvid_bench.c updated) bitstream.c: added unused functions: BitstreamWriteEndOfSequence() BitstreamWriteGroupOfVopHeader() write_video_packet_header() Original input: sigdrak at free.fr and Angela Belda. Thanks.
GCC4 support added (thx to Edouard Gomez)
Added a verification bench 'bench.pl'. You should customize the 'bench_list.pl' list with the bitstreams you want to check for decoding. Updated 'xvid_bench.c'.
clock() returns time in milliseconds. Thx to Mark L at yahoo dot com.
- Fix alignement issue (patch from Alexandre Ganea)
bugfix: correct max bitrate display for slider layout: "(kbps)" added to avgerage bitrate labels within calculator dialog
improved profile/level id auto-detection
New 1.1.0-beta2 release
- Fixed the cartoon mode bug reported by CruNcher
xvidcore ======== * added XVID_GLOBAL_DIVX5_USERDATA global flag * removed the bvop delay warning text ("warning: nothing to output), as this often confuses joe user. * minor changed to closed gop image_printf statement: s/"DX50 BVOP->PVOP"/"CLOSED GOP BVOP->PVOP" * additional comments for low_delay_default mode within decoder_decode() * divx userdata string: s/DivX999b000/DivX503b1393. this has been suggested by dxn for improved hardware compatibility [nb: i dont have a hardware player to confirm this] * vbv_peakrate constraint is ignored if <= 0 vfw frontend ============ * dxn profiles now confirm to "DivX Certified Profile Compatibility v1.1", February 2005. this document was provided by DivXNetworks, USA. when a dxn profile is selected, strict conformance is enabled: - force 1:1 picture aspect ratio - disable bframes if interlacing is enabled - force maximum of 1 consecutive bvops for the portable and ht profiles, 2 bvops for the hd profile - always write divx 5 userdata string to bitstream - force packed bitstream option - updated dxn vbv parameters * added PROFILE_4MV flag. 4mv is now disabled for the dxn handheld profile. * moved PROFILE_AS/PROFILE_ARTS/PROFILE_S to config.c * profile[].max_bitrate now measured in bit/sec (not kbps) * profile->level box: widgets are now greyed-out if they are not used. * increase vertical size of profile drop down list. * about box button: s/Dismiss/OK
Merged 2 fixes from my branch and the ChangeLog update
- Applied dshow patch by Antonz
- New lambda tables for R-D motion search. The old tables were obviously taken from h.264, which uses a logarithmic quantizer scale. This lead to bad results at very low bit-rates. With this patch, compression efficiency at low bit-rates is greatly improved.
+ Ok, finally realized that the cartoon mode bug is mostly GMC related. So new try ;-)
- must be 0x3f and not 0x2f - d'oh!
- Cartoon mode bugfix
assume that fcode also limits average MV in mcsel==1 blocks. fixes a visual bug caused by different prediction from such MV
sad_mmx register dependency speed optimisation contributed by dark sylinc (dark_sylinc at yahoo dor com dor ar)
removed "(??? need to be confirmed)" comment
set xvid_init_t.debug on decompress_begin()
Marking 1.1.0-beta1
It's better to have a crlf license for vfw as it gets included in the resources.
cartoon mode in zones - fix
fixed overflow in bitrate calculator <-- fix to this fix
reduced resolution removed; closed gov removed; trellis on by default
fixed overflow in bitrate calculator
something to make calculator work again, after last fix ;)
Fixes merged from my branch
by popular request, cartoon mode was moved to Zones
Wrong mov size, should have used 32bit
Preliminary x86_64 linux port
add CBP cost as soon as possible (yet another bvop-vhq speedup)
missing GPL header
xmm-ed transfer8to16_2() - faster bvop-vhq
Merged release-1 branch patches + changelogs update
faster vhq - bail out of intra RD calculations even sooner
faster vhq - bail out of different RD calculations sooner
faster bvop-vhq
faster bvop-vhq
serious optimizations, both speed and psnr improved
more encoder.c cleanups
small clenup - move GREYSCALE code to mbcoding
small cleanup - move fcode-code to a separate function
fixed yesterday's "fix"
Merged fixes for PPC, should improve GNU gcc support nad fix a couple of bugs for wrong data alignment
speed things up by keeping quant-squared in SearchData
speed things up by using VHQ's cbp
new fcode code
RRV removed from everything else
RRV removed from MC
RRV removed from ME
VBV; default profile changed to 'unrestricted' to keep it off. RRV hidden
default brightness should be zero, always
AdvDiamond() fix
Added -interlaced switch for interlaced MPEG-4 encoding.
bugfix: enable decoding when input width is not mod 8.
Merged PPC work from christoph nageli
Fixes from my branch, 64bit fixes, credits to christoph nageli, DEST support in Makefile
don't touch a frame that doesn't have at least 4 bytes. safety, and removes one visible error in a rare case
Unfixed the fix.
Fixed fix in DiamondSearch()
DiamondSearch fix
best_sad not initalized correctly
Fixes and enhancements
This really is API 4.1
Merging with 1.0 tree
Symbols' size for ia32+elf
two compiler warnings fixed
Fixes thread safety and write to RO segment !
Thread safety for C version
Marking change of API
Mark Functions in asm files -- added yasm support in configure.in
Typo+error
Fix decoding slowdown regression
make sure that MV is in range in b-frames too. prevents crashes with broken bitstream
Fixes - see patch-69 chaneglog entry for details
Decoder speedups: merge interpolation and dst averaging for bvop blocks, unify qpel framework (should slow things for PPC until new functions get merged)
using wrong PAR values
GNU/Linux MinGW cross-compile fix.
no message
Updated dshow patches for mingw
Changelog updates
Small cleanup (will ease future patches thanks to the unified add_residual pointer), no speedup at all
Just a patch in my tree, that is equivalent to latest pete commit on this file, so just cosmetic
Use slashes to allow cross compilation
updated dx90sdk patch for gcc3.3.x debug project now works with dx90sdk
license dialog resource fix: msvc resource editor will nolonger deletes mingw specific stuff.
ASM data section cleanups + important bugfix to bvop ref interpolation rounding
one more SKIP fix - more for internal PSNR calculations than for anything else
SKIP fix - wasn't exactly right before
a bugfix. it's not THE bug I've been looking for, but bug nonetheless
"directx 9.0 sdk update (summer 2003)" patch
Added memset to 0x00 for xvid_dec... structures.
Merging bits
VHQ for bframes (disable it in 1st pass)
VHQ for bframes widget
VHQ for bframes (fix 2)
VHQ for bframes (fix)
C99'ism
VHQ for bframes
b-frame VHQ flag
gcc build environment
gcc build environment
AR: FormatType safety
Fixes from my tree
Fixed sysKin mess
double lamesness of me: 1st, wrong commit. 2nd, not knowing how to undo
VMR7/9 Aspect Ratio code - originally developed by minolta
VMR7/9 Aspect Ratio code - originally developed by minolta
*** empty log message ***
assorted vfw bugs reported by makc on xvid.org forums - DRV_OK and DRV_CANCEL deprecation - ICM_GETINFO pointer check - biSizeImage stride fix
Dcoder's sse2 brightness code xvid.h vbv comments
Dcoder's sse2 brightness code xvid.h vbv comments
Speedups for decoder
suggestion from xvid.org forum
assorted fixes from Dcoder: - support for large audio bitrates - AAC and HE-AAC support - alexnoe OGM formula - calculate AUDIO KBYTE size when using AUDIO AVG BITRATE - calculate AUDIO AVG BITRATE when using AUDIO SIZE
Fixed mingw compile
manual Aspect Ratio selection widget (from Koepi)
Top Field First widget (by Koepi)
Faster getcoeff + on the fly dequant
Forgotten bits from my tree
added 1.1 changelog + updated 1.0 one
Renamed 1.0 changelog
skip check for chroma was broken
bs_get_matrix() buglet
small redesign of subpel refinement function -- missing file :/ sorry
new ME for b-frames + small redesign of subpel refinement function
missing free()
quick fix: qpel and chroma-sad had overlapping memory targets
low_delay fix
Coding style + DPRINTF
Merging 1.0.1 fixes
1.1.0 versioning rules for vbv msvc compile time error
Initial version of VBV support, activate in 2pass by setting vbv_size!=0
Merging release-1_0 fixes
uninstaller icon
+ / * b0rk. best typo ever
biSizeImage is in bytes, not bits
audio bitrate -> size calc buglet
Keep 1.0 and 1.1 in sync - bframe bugfix
calc: support more audio and subtitle extensions
ugly trellis bug
supports ICM better
patch-26 (stable merge), patch-27 no 64bit, patch-28 (setedges only once per frame)
oops a bug
smarter SKIP
small cleanup
1st stage cleanup: new fast qpel
very small visual fix
won't crash if stream doesn't start with an i-vop
deringer
removed libxvidcore_static.def
calc is able to open already-opened audio tracks
Merging 1.0 fixes, fix for h263 mmx quant
set versions to 1.1 version check for dec_frame_t->brightness
memory leak fixed
ugly bug
static library for msvc (for xvid_bench) added xvid_encraw_static, xvid_decraw_static projects win32 stdin warning for xvid_decraw fixed xvid_decraw compile warnings and div0 error
Reverted previous patch, was buggy
Optmized mem transfers, h263, plane sse
Merged 1.0 fixes
better MV clipping - does not break DX50 streams which have motion out of range
stats->type set to NOTHING by default in some instances stats->type was not being set (namely lowdelay=1, packed=1, type=nvop).
debug level parameter
Merged PPC port + 1.0 tree fixes
Merged PPC port + 1.0 tree fixes
experimental frame dropping fix
final cleanup for 1.0 - dead code removed
msvc float/double warning
Merged 1.0 branch fixes
brightness control
N-VOPs fix
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