Commit Graph

46 Commits

Author SHA1 Message Date
Michael Niedermayer 467a55a4ee avutil/md5: workaround clang 3.5 #20849
This avoids several failures on fate.ffmpeg.org, and thus makes real
bugs easier to spot

Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-05 00:43:48 +02:00
Giorgio Vazzana 7e03886bbb avutil/md5: reindent after previous commits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-25 16:11:08 +02:00
Giorgio Vazzana a67304d05f avutil/md5: move loop inside inner function
AMD Athlon(tm) II X3 450 Processor

size: 1048576  runs: 1024  time:    5.660 +- 0.023
size: 1048576  runs: 1024  time:    5.661 +- 0.030
size: 1048576  runs: 1024  time:    5.656 +- 0.022
size: 1048576  runs: 1024  time:    5.647 +- 0.026

size: 1048576  runs: 1024  time:    5.428 +- 0.037
size: 1048576  runs: 1024  time:    5.426 +- 0.034
size: 1048576  runs: 1024  time:    5.426 +- 0.034
size: 1048576  runs: 1024  time:    5.428 +- 0.038

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-20 22:07:48 +02:00
Giorgio Vazzana d0a34aeedf md5: optimize second round by using 4-operation form of G()
4-operation form is preferred over 3-operation because it breaks a long
dependency chain, thus allowing a superscalar processor to execute more
operations in parallel.
The idea was taken from: http://www.zorinaq.com/papers/md5-amd64.html

AMD Athlon(tm) II X3 450 Processor, x86_64

$ for i in $(seq 1 4); do ./avutil_md5_test2; done
size: 1048576  runs: 1024  time:    5.821 +- 0.019
size: 1048576  runs: 1024  time:    5.822 +- 0.019
size: 1048576  runs: 1024  time:    5.841 +- 0.018
size: 1048576  runs: 1024  time:    5.821 +- 0.018

$ for i in $(seq 1 4); do ./avutil_md5_test2; done
size: 1048576  runs: 1024  time:    5.646 +- 0.019
size: 1048576  runs: 1024  time:    5.646 +- 0.018
size: 1048576  runs: 1024  time:    5.642 +- 0.019
size: 1048576  runs: 1024  time:    5.641 +- 0.019

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-20 04:27:34 +02:00
Reimar Döffinger 24c65eb29f md5: avoid unnecessary copying.
Where necessary use memcpy instead.
Thanks to Giorgio Vazzana [mywing81 gmail] for
spotting this loop as the cause for the bad
performance.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-05-17 21:16:02 +02:00
Michael Niedermayer 99efd59626 Merge commit 'cb45553f577f8e0ebfe05d3287e1b6fa5859b967'
* commit 'cb45553f577f8e0ebfe05d3287e1b6fa5859b967':
  Remove pointless #undefs of previously forbidden functions.
  fate: Add dependencies for bmp, cdxl, dfa, mp3

Conflicts:
	doc/examples/muxing.c
	libavfilter/filtfmts.c
	libavutil/des.c
	libavutil/eval.c
	libavutil/log.c
	libavutil/parseutils.c
	tests/fate/mp3.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 13:34:45 +01:00
Anton Khirnov cb45553f57 Remove pointless #undefs of previously forbidden functions. 2012-12-04 21:40:22 +01:00
Michael Niedermayer ac090fa68c lavu: keep context size variables
They are essential to be able to use the utils without av_malloc()
That is for example use with malloc(), memalign(), some other
private allocation function, on the stack or others.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 14:33:41 +01:00
Michael Niedermayer f391e405df Merge commit 'e002e3291e6dc7953f843abf56fc14f08f238b21'
* commit 'e002e3291e6dc7953f843abf56fc14f08f238b21':
  Use the new aes/md5/sha/tree allocation functions
  avutil: Add functions for allocating opaque contexts for algorithms
  svq3: fix pointer type warning
  svq3: replace unsafe pointer casting with intreadwrite macros
  parseutils-test: various cleanups

Conflicts:
	doc/APIchanges
	libavcodec/svq3.c
	libavutil/parseutils.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 14:52:34 +02:00
Martin Storsjö 9a92aea27b avutil: Add functions for allocating opaque contexts for algorithms
The current API where the plain size is exposed is not of much
use - in most cases it is allocated dynamically anyway.

If allocated e.g. on the stack via an uint8_t array, there's no
guarantee that the struct's members are aligned properly (unless
the array is overallocated and the opaque pointer within it
manually aligned to some unspecified alignment).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-11 23:35:27 +03:00
Giorgio Vazzana c78cf00bd8 md5: consistently use uint32_t instead of unsigned int
Basically to make code clearer and adherent to the
standard. RFC 1321, on page 2 states

Let the symbol "+" denote addition of words (i.e., modulo-2^32
addition). Let X <<< s denote the 32-bit value obtained by circularly
shifting (rotating) X left by s bit positions.

on page 3, section 3.3 states:

A four-word buffer (A,B,C,D) is used to compute the message digest.
Here each of A, B, C, D is a 32-bit register.

so the algorithm needs to work with integers that are exactly 32bits
in length. And indeed in struct AVMD5 the MD buffer is declared as
"uint32_t ABCD[4];", while in the function that performs the block
transformation the state variables were "unsigned int"s. On
architectures where sizeof(unsigned int) != sizeof(uint32_t) this
could be a problem, although I can't name such an architecture from
the top of my head.
On a side note, both the reference implementation in RFC 1321 and the
gnulib implementation (used by md5sum program on GNU systems) use
uint32_t in the transform function.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-16 12:47:46 +02:00
Michael Niedermayer 976a8b2179 Merge remote-tracking branch 'qatar/master'
* qatar/master: (40 commits)
  H.264: template left MB handling
  H.264: faster fill_decode_caches
  H.264: faster write_back_*
  H.264: faster fill_filter_caches
  H.264: make filter_mb_fast support the case of unavailable top mb
  Do not include log.h in avutil.h
  Do not include pixfmt.h in avutil.h
  Do not include rational.h in avutil.h
  Do not include mathematics.h in avutil.h
  Do not include intfloat_readwrite.h in avutil.h
  Remove return statements following infinite loops without break
  RTSP: Doxygen comment cleanup
  doxygen: Escape '\' in Doxygen documentation.
  md5: cosmetics
  md5: use AV_WL32 to write result
  md5: add fate test
  md5: include correct headers
  md5: fix test program
  doxygen: Drop array size declarations from Doxygen parameter names.
  doxygen: Fix parameter names to match the function prototypes.
  ...

Conflicts:
	libavcodec/x86/dsputil_mmx.c
	libavformat/flvenc.c
	libavformat/oggenc.c
	libavformat/wtv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-04 00:45:21 +02:00
Mans Rullgard 82494cad9d md5: cosmetics
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 18:19:19 +01:00
Mans Rullgard fa49fc72d9 md5: use AV_WL32 to write result
This is simpler, safer, and removes the undocumented requirement of
aligned output buffer.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 18:19:19 +01:00
Mans Rullgard 44496ff2d6 md5: include correct headers
This file needs stdint.h but not string.h

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 18:19:18 +01:00
Mans Rullgard edf4dbff33 md5: fix test program
This makes the md5-test program print something meaningful and not
smash the stack.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 18:19:18 +01:00
Mans Rullgard 2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Måns Rullgård 8fc0162ac4 Add av_ prefix to bswap macros
Originally committed as revision 24170 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-10 22:12:30 +00:00
Måns Rullgård e6b22522c9 bswap: change ME to NE in macro names
Other parts of FFmpeg use NE (native endian) rather than ME (machine).
This makes it consistent.

Originally committed as revision 24169 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-10 22:09:01 +00:00
Måns Rullgård 2ed6f39944 Replace many includes of libavutil/common.h with what is actually needed
This reduces the number of false dependencies on header files and
speeds up compilation.

Originally committed as revision 22407 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 17:39:19 +00:00
Måns Rullgård 63613fe615 Replace WORDS_BIGENDIAN with HAVE_BIGENDIAN
Originally committed as revision 19508 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-26 12:20:04 +00:00
Diego Biurrun 89c9ff504b spelling/grammar/consistency review part I
Originally committed as revision 16840 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-28 00:16:05 +00:00
Aurelien Jacobs b250f9c66d Change semantic of CONFIG_*, HAVE_* and ARCH_*.
They are now always defined to either 0 or 1.

Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-13 23:44:16 +00:00
Diego Biurrun e503674c4a Add necessary, remove unnecessary #includes.
Originally committed as revision 16547 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-11 21:03:42 +00:00
Michael Niedermayer 53e9d0105f Fix generated md5, it was wrong for some input lengths.
Fix issue634.

Originally committed as revision 15335 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-15 22:10:28 +00:00
Michael Niedermayer 59abc29e69 fixing warning
md5.c:150: warning: passing argument 2 of 'av_md5_update' from incompatible pointer type

Originally committed as revision 11665 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-30 04:50:09 +00:00
Diego Biurrun f3635240b7 Fix a couple of 'return type defaults to int' and 'control reaches end of
non-void function' warnings in test code.

Originally committed as revision 11491 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-01-10 10:35:37 +00:00
Diego Biurrun f8a80fd69d main() --> main(void)
Originally committed as revision 11079 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-11-23 00:52:56 +00:00
Diego Biurrun 7b94177e37 Group all copyright and author notices together.
Originally committed as revision 9483 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-05 10:37:29 +00:00
Carl Eugen Hoyos 154e30f6c2 rename attribute_unused to av_unused and moves its declaration to common.h
patch by Carl Eugen Hoyos cehoyos chez ag or at
original thread: [FFmpeg-devel] [PATCH] attribute_unused -> av_unused
date: 05/29/2007 01:23 PM

Originally committed as revision 9155 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-30 09:32:25 +00:00
Michael Niedermayer ad73e79cab 160 bytes smaller object file, ask gcc devels why
Originally committed as revision 8407 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-14 19:47:58 +00:00
Michael Niedermayer f1505ce3bc explain where the T table comes from
Originally committed as revision 8406 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-14 19:43:31 +00:00
Michael Niedermayer e057461dac cosmetic (order context variables like in sha1)
Originally committed as revision 8386 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-13 12:40:13 +00:00
Michael Niedermayer e657aa3415 #undef printf under #ifdef TEST (needed for testing)
Originally committed as revision 8384 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-13 12:20:04 +00:00
Michael Niedermayer ef3c7c3328 borrow finalization algo from sha1 (100byte smaller)
Originally committed as revision 8383 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-13 12:19:20 +00:00
Michael Niedermayer e1b62250ac get rid of b_used variable (same size with CONFIG_SMALL)
Originally committed as revision 8382 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-13 11:57:26 +00:00
Steve L'Homme 949b1a13bf Replace most of the %lld and %llx by their (cleaner) PRI*64 counterparts.
patch by Steve Lhomme, slhomme divxcorp com

Originally committed as revision 6868 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-11-01 22:39:58 +00:00
Diego Biurrun b78e7197a8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
and fix GPL/LGPL version mismatches.

Originally committed as revision 6577 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-07 15:30:46 +00:00
Diego Biurrun a020e2c5f0 Add proper LGPL header.
Originally committed as revision 5634 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-05 22:57:47 +00:00
Diego Biurrun da2e9781bb spelling typo
Originally committed as revision 5633 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-05 22:56:45 +00:00
Luca Barbato 5351c29cbe fix endianess build in a better way
Originally committed as revision 5596 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-03 11:11:22 +00:00
Luca Barbato a8d88e03d2 big endian fix
Originally committed as revision 5592 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-03 09:16:13 +00:00
Måns Rullgård d10fda8ee2 1l: put that int i back
Originally committed as revision 5587 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-02 20:20:28 +00:00
Måns Rullgård 4dddc5e10c kill warnings
Originally committed as revision 5585 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-02 19:26:22 +00:00
Ivo van Poorten f28660eb3f cast pointers to make compiler happy
remove test define

Originally committed as revision 5582 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-02 19:00:15 +00:00
Michael Niedermayer 94d85eaf34 md5 support
depending on CONFIG_SMALL this can either be compiled to a fully unrolled kernel / rfc reference style md5 routine
or a single loop similar to what mplayer uses

Originally committed as revision 5565 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-07-01 10:02:08 +00:00