Commit graph

37 commits

Author SHA1 Message Date
Chamarthi Kishore
ad2eaf8c7d libavc: Add MDCV, CLL, CCV and AVE SEI messages
This commit add support for encoding and decoding of MDCV, CLL, CCV and
AVE SEI messages

Test: avcenc -c enc.cfg, avcdec -c dec.cfg
Bug: 141931623

Change-Id: Idc0b0db5291482ae2bc19cdff65669c32374b02a
2019-10-24 17:20:00 +05:30
S Hamsalekha
65477dcfb9 Decoder: Replacing some numbers with equivalent macros.
Bug: 118445723
Test: vendor
Change-Id: I2dbdf3bf289c34409db341d7c0502cd88a20bab5
2019-03-28 14:40:47 -07:00
Isha Kulkarni
34769a5b08 Decoder: Fix Integer Sanitizer Issues
Bug: 118445723
Test: vendor
Change-Id: I719898beb93ca5d20d9822f685ac6d4920252cdf
2019-03-28 14:40:40 -07:00
Isha Shrikant Kulkarni
fc7139a53e Decoder: Fix Integer Sanitizer issues in ih264d_process_bslice
Bug: 118445723
Test: vendor
Change-Id: Ib5d8f72be016330beafa6e7996976eeff1b23c39
2019-03-28 14:40:17 -07:00
TreeHugger Robot
04c6e3baba Merge "Decoder: Fix undefined left shift" 2018-04-10 22:44:09 +00:00
Ritu Baldwa
9083317185 Decoder: Fix CLZ return value
Since left shift by 32 is undefined value, making it 31.

Bug: 73337905
Bug: 73337480
Bug: 73337472
Test: manual
Change-Id: Id03991e75ea32d29bafa2d0bbb2bda7d5876fb03
2018-04-10 13:57:22 -07:00
Ritu Baldwa
4be8f62fca Decoder: Fix undefined left shift
Bug: 73337131
Bug: 71446680
Bug: 73337973
Test: review
Change-Id: Idbbbf9db5f75cedb4a821296ee79c8a47b768a2f
2018-04-09 09:12:03 -07:00
Martin Storsjo
f1c718c267 armv8: Remove unnecessary register shuffling
Change-Id: I48f79644a7c31dd82c1c531fb534b9e1c8a0d729
2016-10-06 10:29:44 +03:00
Martin Storsjo
e5b0a782fa armv8: Use neg instead of sub #0, neg as replacement for rsb
When the arm code has been ported to aarch64, occurrances of
the rsb instruction have been replaced according to the
following pattern:

arm:
    rsb rB, rA, #X

aarch64:
    sub xTMP, xA, #X
    neg xB, xTMP

When the immediate constant #X is zero, we can just as well
use a plain neg instruction without any extra subtraction.

Change-Id: I637be20b469d8d4e7fac712e8039c7e3eedb8c54
2016-10-06 10:29:44 +03:00
Martin Storsjo
37edf81bad arm: Use neg instead of rsb with a #0 immediate
Change-Id: I52cc96b15a553e3c757d2a627c1e2201fc832f24
2016-10-06 10:29:44 +03:00
Martin Storsjo
6958350a65 armv8: Remove unnecessary sign extensions
After loading a single byte with ldrb and immediately moving
it into a vector register with dup .8b, there's no point in
sign extending it to 64 bit inbetween.

Similarly in the second case, when adding a number of pixels,
there's no need to sign extend between additions, just do the
additions using the 32 bit register names.

Change-Id: Ie37f47b93138643ffd05169a3792bc39967dbea3
2016-10-06 10:29:44 +03:00
Martin Storsjo
d91f49ad65 armv8: Add missing sign extension for WORD32 parameters
For WORD32 parameters, the upper half of the parameter
registers is undefined (even though it is zero in most cases).

When easily doable, use the 'w' register names for such
parameters instead of doing the sign extension with a
separate instruction.

This fixes crashes in some configurations, when built with
clang, which can pass nonzero bits in the high half of registers
more aggressively than GCC.

Also fix the parameter/register mappings; use wN register
names where applicable, and fix incorrect parameter
placement. (Some functions still were documented to have
only 4 parameters in registers.)

Change-Id: Icedf6503b064149d1a651ff1c6a76de5c01722ea
2016-10-06 10:29:43 +03:00
Martin Storsjo
391a0d9418 arm, armv8: Fix C function signature data types
Some parameters had incorrect types. Some were consistently
wrong in both arm and armv8 versions, while others only were
wrong in the armv8 version.

Change-Id: I3efd5c66b32516484fbaa42067d3b12d73fbf09e
2016-10-05 14:24:54 +03:00
Martin Storsjo
545b474453 armv8: Remove duplicated, incorrect function argument declarations
Having incorrect comments is only misleading and confusing.

Change-Id: I7560e152194c8d50d6218b0b2144a9628218b7c3
2016-10-05 14:24:53 +03:00
Martin Storsjo
11a0471851 armv8: Remove an unused register assignment
Nothing actually uses this register here.

Change-Id: I15ae625d17e126b515f9458b921b97fa6dcb6a85
2016-10-05 14:24:53 +03:00
Martin Storsjo
1b025fff7c arm, armv8: Fix some comments to refer to the right register
Change-Id: I4483a6090d684b95f738e737d6a78cae45ee4655
2016-10-05 14:23:53 +03:00
Martin Storsjo
91d2783e2b Mark arrays of pointers as const
Previously they were only marked as the pointers pointing to const
data, but the array themselves being non-const.

Change-Id: Ib5a9af6298615b2c40367a21e728899418b09935
2015-06-27 00:43:36 +03:00
Marco Nelissen
ac694327a0 Merge "Remove all other thread implementations than pthread" 2015-06-25 14:29:09 +00:00
Martin Storsjo
cc89b12115 Remove all other thread implementations than pthread
Change-Id: Id30fc1a9c007f2f32ed3375bbf02085f0edad5a0
2015-06-25 13:31:23 +03:00
Martin Storsjo
cc87241e79 Don't declare variables after statements
This fixes building with compilers that are strict about the pre-C99
rule about having all variable declarations before statements.

Change-Id: I06dd0cc42a6dbe90025c3c913a0c8d9ffb0acbcb
2015-06-25 13:29:52 +03:00
Martin Storsjo
ab3f812396 arm: Use vqmovun instead of vqshrun #0
binutils gas automatically produces vqmovun when vqshrun is used
with a zero shift.

This is required for building the armv8 assembly with the clang built-in
assembler.

Change-Id: Ie986978e4508a085e4e4c76f8db9a8a8394c4fec
2015-06-24 20:45:42 +00:00
Martin Storsjo
d847c7fd84 arm: Use unified syntax, ldrsheq instead of ldreqsh
clang only supports the new, unified arm syntax (UAL), while binutils
gas supports both (and defaults to the old syntax). Explicitly declare
that the unified syntax is used, and use the right form of these
instructions that is supported by both.

Change-Id: I9a3940e060c129861c7a542ccf09035dbd1766ae
2015-06-24 20:45:21 +00:00
Martin Storsjo
622cf7a838 armv8: Use the cmn instruction instead of doing cmp with negative values
binutils gas automatically converts cmp with negative values to use
the cmn instruction instead.

This is required for building the armv8 assembly with the clang built-in
assembler.

Change-Id: If6465ea1bec252446c49cf497153e3ef3dad905a
2015-06-24 20:45:05 +00:00
Martin Storsjo
db02f57bdc armv8: Remove redundant NEON element size declarations
When specifying one specific lane of the vector, the number of
lanes don't need to be specified.

The clang built-in assembler doesn't allow the redundant
declarations, while binutils gas work fine with both forms.

Change-Id: I86077ce0774d4594a1295b6860e4944df87dde2f
2015-06-24 20:44:24 +00:00
Martin Storsjo
584cbb6996 Remove the ithread_exit function
This function is dangerous since it behaved differently on different
platform implementations. It is not used for any actual purpose, and
not currently necessary.

Change-Id: I9702e9943065235c7a7b29dc6c6eeb36212e7ce1
2015-06-24 20:41:03 +00:00
Harinarayanan K K
134291ea0b Added support for Main Profile toolsets in encoder.
Added support for CABAC entropy coding.
Added support for B slices.
Fixed an issue in rate control constant QP mode.

Change-Id: Ib759d35e8e943f941aa9b8bbff0362d92c619994
2015-06-24 20:36:11 +00:00
Marco Nelissen
f42f40e32b Merge "Remove some unused source files and headers" 2015-06-24 20:33:38 +00:00
Martin Storsjo
c334599831 Remove some unused source files and headers
They seem to have been included by accident. Nothing includes
them or refer to the symbols declared in them. (The other functions
declared by the header don't have any matching implementation either.)

Change-Id: I1c77a21226613bda0b029dd4ea5da207aa7cae09
2015-06-18 12:04:55 +03:00
Naveen Kumar Ponnusamy
413352ef55 SSSE3/SSE4 Intrinsics Optimizations
Change-Id: I55c74d9b2a0b323886d8a80eaad899b187c22cd7
2015-06-11 10:03:18 +05:30
Martin Storsjo
329d7714ba Fix a typo in gas_ih264_lvl_tbl, set proper sizes for level 1.1
The table values themselves were correct, but the level values
were swapped for 1.1 and 1B.

This fixes encoding using level 1.1, which previously got the
wrong (too small) sizes (corresponding to level 1B).

Change-Id: Ic0acc58eb5841710ffd8be54bf97800fdbb40855
2015-06-03 15:45:01 +00:00
Lajos Molnar
8be65ff529 Merge "Fix a typo in gai4_ih264_max_luma_pic_size" 2015-06-03 15:33:23 +00:00
Hamsalekha S
caab4fe068 Multithreading changes and better error resilience
Fixed the following bugs
Issue 21145276
Issue 21144884
Issue 21181133
Issue 21181134

Decoder now returns error if the level in stream is higher than level at init

Change-Id: I8892c62bd98f7854d046510330c05a1e9ca826b2
2015-05-19 17:38:02 +05:30
Martin Storsjo
23461c3cb0 Fix a typo in gai4_ih264_max_luma_pic_size 2015-05-15 14:40:26 +03:00
Harish Mahendrakar
25e8adb631 Resolved warnings and fixed alignment of few assemblies
Resolved warnings seen in x86 modules
Fixed alignment of few modules
Updated comments in few arm modules for consistency
Fixed warnings seen in clang build

Change-Id: I0623169b5e84a6a6f09c3d2212e754101272f5e9
2015-05-05 17:35:10 +00:00
Lajos Molnar
cd9e51fc2b fix file permissions
Change-Id: Ia4f99d5b963acd8d8a1afc2fbdf06b122d898f63
2015-05-05 17:34:51 +00:00
Harish Mahendrakar
c72323e723 Fixed few issues seen in CTS tests
Added support for encoding non-multiple of 16 dimensions
Added support for encoding dimensions smaller than 64x64
Aligned coeff data to 4 byte boundary

Change-Id: I111093950f94698296d8499a2845cfe2db6c557b
2015-04-28 19:17:04 +05:30
Hamsalekha S
8d3d303c79 Initial version
Change-Id: I7efe9a589cd24edf86e8d086b40c27cbbf8b4017
2015-04-02 15:59:02 +05:30