get rid off compiler warnings
get rid off compiler warnings
improved decoder robustness upon resync markers in BVOP
MT deblocker
fix for typo on pred mv init (thanks to Lasse Collin)
decoder: better distinguish between xvid and non-xvid streams
API change: signal fourcc to xvidcore
back-port from HEAD: - add resync-marker range check - return E_FAIL on XVID_ERR_MEMORY error in dshow
Bugfix: - Added missing resync marker range check in decoder.c (reported by IBM X-Force. Thanks go to John McDonald and Christopher Valasek) - return E_FAIL instead of S_FALSE upon XVID_ERR_MEMORY error in dshow frontend (reported by IBM X-Force. Thanks to John McDonald and Mark Dowd)
fix for bad resync_marker length in b-vops (both enc and dec) Thanks to Mathieu Monnier for the report (mathieu.monnier at polytechnique dot org)
- small bug reported by Greg Handi
- Back ported several important bug fixes from head to release-1_1-branch
fix for the visual_object_verid vs. video_object_layer_verid problem of 6.3.3, reported by Li Xiang (lixiang01 at gmail dot com) Thanks for report and test bitstreams!
- Applied the most recent bugfixes from cvs-head to 1_1 release branch as well.
- Initialize dec->bs_version to high value. Before it seemed unititalized for non XviD streams...
- (hopefully) fixed the decoder bugs reported by Michael Niedermayer
cleanings in code spotted by sparse (ed dot gomez at free dot fr>
> > - 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)
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
- workaround for wrong chroma rounding in very old XviD builds
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.
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
RRV removed from everything else
Fix vector bound checking for bvops
Fix decoding slowdown regression
make sure that MV is in range in b-frames too. prevents crashes with broken bitstream
Decoder speedups: merge interpolation and dst averaging for bvop blocks, unify qpel framework (should slow things for PPC until new functions get merged)
Small cleanup (will ease future patches thanks to the unified add_residual pointer), no speedup at all
ASM data section cleanups + important bugfix to bvop ref interpolation rounding
Fixes from my tree, especially the bvop ref block interpolation fix
Speedups for decoder
Faster getcoeff + on the fly dequant
Small fixes
low_delay fix
Merging 1.0.1 fixes
DC clipping bug take #2
Merging release-1_0 fixes
Commited fixes from my branch (timestamps in decoder, missing va_end calls, bad license header...
patch-26 (stable merge), patch-27 no 64bit, patch-28 (setedges only once per frame)
Wrong DC prediction fixed
won't crash if stream doesn't start with an i-vop
won't crash if stream doesn't start with an i-vop
set versions to 1.1 version check for dec_frame_t->brightness
better MV clipping - does not break DX50 streams which have motion out of range
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).
brightness control
xvidcore 1.0.0 rc3 merge back to HEAD
MV clipping to handle invalid bitstreams; quantization table in decoder's stats
don't use comants to mark out pieces of code
automatic workaround for dev-api-3 setedges bug
prevents an ugly crash. we shouldn't read more bitstream than we have, ever
bug: interlacing + gmc
an ugly bug (by me), I wonder why noone noticed before
quant gets updated for SKIP blocks - for postprocessing
postprocessing changes
signal cartoon mode in bitstream
some quality improvements for postprocessing
PP crash fixed
* copyright fix(?) * ending new lines missing (gcc) * added $Id$ field
N-VOPs fixed
postprocessing (deblocking) code ported from Isibaar branch + speed-up
whenever decoder fails, we know about it
* Thread safe MPEG4 quantization functions. Cleaned up version of patch provided by Michael - fixed compiling problems on gcc - added const qualifiers every where it was possible to help C compiler optimization. - added the mpeg_quant_matrices param to all ASM function prototype in comments (even if it's not used, that shows we do it deliberatly) - forces m[intra][0][0] = 8, otherwise XviD could write invalid streams. * Added real CRC computing in xvid_bench.c
* encoder.c: GMC code fix in encoder.c. Now gmcval is initialized correctly when using GME. * xvid_decraw.c: Fix elementary stream output. * plugin_2pass2.c: Small parsing bug in stats reading in 2pass2. * decoder.c: Read resync markers in bframes.
Removed unused next_block vars
cleanups, speedups, etc
interpolate mode + qpel decoding fixed; MACROBLOCK->mb_type completely replaced by MB->mode
Quantization namespace and API changes
interlacing support for b-vops and s-vops
removed trailing spaces
fix to mcsel/acpred bit reading (were swapped)
Better architecture separation
API changes
3 warp point GME - first commit
Activated simple_idct for MMX - Backward compatibility with bistream version 9 ensures the use of the standard idct_mmx function
don't use Walken idct anymore, simple idct is now used by default instead
Added legal header
ISO C89 comment style
Removed this annoying \n from DPRINTF output. DPRINTF behaves now like usual printf. Just for fun, i decided to exercice my regexp skills: for i in `find . -name "*.c"` ; do sed s/'\(DPRINTF(XVID_DEBUG.*\)"\([^"]\+[^\\][^n]\)"\(.*\)$'/'\1"\2\\n"\3'/g $i > $i.tmp; mv $i.tmp $i done Nice isn't it ? It just adds a \n to every DPRINTF call that was relying on old behavior (automatic trailing \n).
* dynamic bvop decision stats bug fixed * added runtime debug level option. this only only activated when _DEBUG is defined. level is specified globaly, via "xvid_glb_init_t.debug" and XVID_DEBUG_xxx defines. references to previous DPRINTF_LEVEL_xxx's have been replaced throughout libxvidcore * futher bitrate zone fixes for plugin_2pass2.c * removed old ratecontrol.c from msvc project * xvid_encraw.c specifc: * added "-max_key_interval integer" option * renamed -debug to -vop_debug * added "-debug integer" option, which sets xvid_gbl_init_t.debug field * s/length/len/ status line * vfw specific: * zone/bitrate typos fixed ("you eediot") * renamed "debug" regkey to "vop_debug" * added "debug" regeky and textbox which sets xvid_gbl_init_t.debug field
- fast b-frames - dynamic qpel - qpel asm code - postprocessing
XVID_ERR_END
dquant cleanup xvid_pluing_lumimasking added xvid_encraw -lumimasking option added
++api v1.-127.0
Small fixes patch
- 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)
Moved dev-api-3 to HEAD -- Nasty but efficient -- Merging work has been done too
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.
bugfix, average motion vector clipping in qpel mode
decode GMC blockbased (speedup)
Cleanup GMC, bugfix GMC+QPel
Major update: Support for GME/GMC with 2 warppoints
global.h macro cleanup cpu_detection cleanup, XVID_CPU_ASM added sse2 stuff enabled, femms now utilized
missing decoder emms's SWAP(_T_...) moved divx/xvid id to bitstream.c minor warnings cleanup
gmc+bframes decoding support
XVID_API_UNSTABLE, XVID_DEC_DISCONTINUITY
Another series of warnings for aggressive compilers
mingw/dprintf cleanup, portab.h updated from release-0.9.0
decoder cleanup, deblocking filter
fixed rrv decoding bug, introduced during decoder cleanup
decoder cleanup
rrv encoding update
rrv i-vop encoding
gcc -Wall cleanup
reduced resolution vop decoding support, packed_mode cleanup
ANSI C compliancy - thx Rick Foos
rounding fix
bframe+qpel decoding support, bframe decoding bugfix, qpel interpolation speedup, bframe decoding speedup
decoder bframe fix, koepi bframe_offset, additional xvid_enc_frame->intra types
License Change
packed bitstream decoding support
bframes decoding bugfix
packed bframes 0x7f decoder bug
encoder: new colorspace; decoder: auto width/height, basic gmc, experimental rrv
chroma rounding again
qpel chroma rounding fixed
Fixed copyrights
oops, commited wrong code, now fixed...
b-frame decoding fix
qpel update
qpel support code
alternate-vertical-scan encoding/decoding support
removed incomplete field-mv support
Removed DEBUG and DEBUG1/2 calls
Removed DEBUGXXXs calls
pross email address updates
interlacing bugfix (inter cbp behaviour)
fix the first frame is green wrong
Minor Cleanup
qpel decoding support
bframe encoding bugfixes, ME unification
Add 'per slice' rendering aka DR method 2
advise for how to fix my b-frame decode code
fix my some wrong with b-frame deocde at direct mode
Fix a little bug 'mb->quant = 8' in decode_bframe()
support the decode examples in ex1
fix a little bug and added the BFRAMES_DEC_DEBUG support
fix my wrong moment ago
help upload for roaming
get_pmv2/get_pmvdata2
resync patch
resync support, check_cpu_features() fixed
minor fixes: bframe N_VOP support, custom quant bug, BFRAME inc_frame_num()
some small fixes
Cosmetic - CodingStyle Applied - Legal Headers will be added later
#define BFRAMES
add low_delay decode support
no message
fix some my B-frame decode error
add B-frame decode support
sad values can be negative (Cristoph post scriptum to a mail in the dev maillist)
Cosmetic, added the RCS Id field
add some B-frame support
interlacing bugfix
reworked vlc tables
interlacing fix and speedup - compensated data wasn't being used in block reconstruction
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.
LINUX: proper alignement on the stack
interlacing support - slow (MBDecideFieldDCT()), buggy (p-frames), incomplete (field motion prediction)
alignment stuff
xvid_malloc/xvid_free
In some circumstances acpred_flag was used unitialized - now it's set to zero
moved sources
Initial revision
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.