History log of /frameworks/av/media/libstagefright/codecs/avc/enc/src/sad_mb_offset.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
42d515121f11389df082dd02319904c99dd50cd6 21-Aug-2012 Martin Storsjo <martin@martin.st> avcenc: Update a comment about the inline assembly

Since the inline assembly was fixed in commit 3fdb405597f the
comment was no longer accurate.

Change-Id: Id4f8a111d1fa6e0c2e97f7db64262e8d1604c519
/frameworks/av/media/libstagefright/codecs/avc/enc/src/sad_mb_offset.h
3fdb405597f0e062a9bb8af20199c5e67f0f764c 13-Apr-2012 Martin Storsjo <martin@martin.st> avcenc: Fix the gcc inline assembly constraints

Use +r for registers whose value is used as input to the block.

Also switch input registers to output registers with +r, for
registers that are modified by the assembly block (SUB_SAD in
sad_inline.h).

Without this, the inline assembly fails on modern gcc versions
(tested on gcc 4.6), where the intended input value never is
loaded into the registers, causing segfaults at runtime.

Currently this assembly isn't used, but this change makes it
work properly if enabled.

Change-Id: I37c247cd5c8aff213445e31ab3bd33d8f0f37e05
/frameworks/av/media/libstagefright/codecs/avc/enc/src/sad_mb_offset.h
ccde1257952d2c073e51ecba6180060570ffa41f 13-Apr-2012 Martin Storsjo <martin@martin.st> avcenc: Properly indent assembly blocks

Also line break multiline assembly blocks - previously they were
virtually unreadable.

Change-Id: Icb269909b78746e26b28ab7dcb6979c4655a0b0c
/frameworks/av/media/libstagefright/codecs/avc/enc/src/sad_mb_offset.h
b7ca7dc9652456181080bf28ec376bc5a36cf6a2 16-Aug-2012 Jean-Baptiste Queru <jbq@google.com> Merge "avcenc: Clarify the ifdefs surrounding inline assembly"
955585cca11173b07e2e7db3d636ee97b69b053b 13-Apr-2012 Martin Storsjo <martin@martin.st> avcenc: Fix indentation

Change-Id: I4fcdf619e3b75387a7909272f3164b8d608b6cc2
/frameworks/av/media/libstagefright/codecs/avc/enc/src/sad_mb_offset.h
f5af6314db25ff3bef9bd2eeba201bc6cc60805d 13-Apr-2012 Martin Storsjo <martin@martin.st> avcenc: Clarify the ifdefs surrounding inline assembly

Previously, the code was structured like this:

#if defined(__GNUC__) && defined(__arm__)
/* Generic C implementation */
#elif defined(__CC_ARM)
/* RVCT version */
#elif defined(__GNUC__) && defined(__arm__)
/* GCC arm assembly version */
#endif

This had two implications - the gcc arm version never was used
in practice, and the code required -D__arm__ to build at all for
other architectures.

The inline assembly constraints are buggy (requires changes so as
to not crash), and if fixed, the optimizations still aren't faster
than the generic C code on modern gcc versions. Therefore, just
ignore them and use the generic C code.

Due to the peculiar code block ordering and preprocessor conditions,
the generic C code is what has been used before anyway, but it
did require -D__arm__ to build, which can cause problems if building
for other architectures, if the system headers have ifdefs for this
define. This change makes it build without that define.

Change-Id: Ib3fcf5651ee720310b7dff10fd04279b5f90759c
/frameworks/av/media/libstagefright/codecs/avc/enc/src/sad_mb_offset.h
29a84457aed4c45bc900998b5e11c03023264208 03-Jul-2010 James Dong <jdong@google.com> Initial checkin for software AVC encoder

- Since the software encoder assumes the input is YUV420 planar,
color conversion needs to be added when the input color format
does not meet the requirement. With this patch, I only added
a single color conversion from YUV420 semi planar to YUV420
planar. We can add more as we go.

Change-Id: If8640c9e5a4f73d385ae9bb2022e57f7f62b91b9
/frameworks/av/media/libstagefright/codecs/avc/enc/src/sad_mb_offset.h