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_halfpel_inline.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_halfpel_inline.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_halfpel_inline.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_halfpel_inline.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_halfpel_inline.h
|