| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| | |
Bug: 26399350
Change-Id: Id768751672a7b093ab6e53d4fc0b3188d470920e
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case of error in handling MMCO commpands/reference list creation,
ih264d_start_of_pic() was called again in ih264d_mark_err_slice_skip() resulting in
leaking a picture or an MV buffer in buffer manager.
To fix this, ensure prev_slice_err is set to 1 only if u4_pic_buf_got is zero, before
calling ih264d_mark_err_slice_skip() at the end of picture decode.
This will ensure ih264d_start_of_pic() is not repeated
Bug: 25818142
Change-Id: I7d5a9179533581eec663bc6a19a2901e7cce6af3
|
|\
| |
| |
| |
| |
| |
| | |
am: 943323f1d9
* commit '943323f1d9d3dd5c2634deb26cbe72343ca6b3db':
Return error when there are more mmco params than allocated size
|
| |
| |
| |
| |
| |
| | |
Bug: 25818142
Change-Id: I5c1b23985eeca5192b42703c627ca3d060e4e13d
|
|\|
| |
| |
| |
| |
| |
| | |
am: 4a524d3a8a
* commit '4a524d3a8ae9aa20c36430008e6bd429443f8f1d':
Decoder Update mb count after mb map is set.
|
| |
| |
| |
| |
| |
| | |
Bug: 25928803
Change-Id: Iccc58a7dd1c5c6ea656dfca332cfb8dddba4de37
|
| |
| |
| |
| |
| |
| |
| | |
This removes unnecessary changes from build to build.
Bug: 24204119
Change-Id: I25258314fe56ea186d38d756fb5fb04aa689a812
(cherry picked from commit f197ccb7562bac6f5bae40c9cb9dbb46a77baeb5)
|
| |
| |
| |
| | |
Change-Id: Ib017480389cb9f5204e5437716653016da348dba
|
| |
| |
| |
| |
| |
| |
| | |
Decoder may read 8 extra bytes at the end of this buffer, though it will never be used
Setting it to zero will ensure unitialized reads are avoided
Change-Id: I724239861cb9fa64f3a70cb5450e094cb3afa20c
|
| |
| |
| |
| |
| |
| |
| | |
Once all the MBs are decoded, simply break from decode loops and do not signal an error
This will handle cases where there may be extra bytes at the end of picture data
Change-Id: I6d8ec918df5375f135e60f85b9a56ab2a5313a64
|
| |
| |
| |
| |
| |
| | |
Skip error concealment when allocation fails for decoder buffers
Change-Id: I785f31cad5dca52c8c67cba78cdd330b7b4539e1
|
| |
| |
| |
| |
| |
| |
| |
| | |
Decoder now returns an error for resolutions greater than 3840x2176
Bug: 24542936
Change-Id: I38be0e4c5cf2a980bfd4c781f3b49171f73b5ccb
|
| |
| |
| |
| |
| |
| |
| | |
SPS will now include vui params
Removed a trailing space in ih264e_api.c
Change-Id: I67a57741689206e571e9a83f7e3360149f87e06a
|
| |
| |
| |
| |
| |
| | |
This is required for DRC tests in CTS .
Change-Id: Icd0fe10d97c6ee55f8358682a578bddb58590de4
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixed a NULL pointer reference, when flush is called before
decoding any pictures.
This was seen in following CTS test,
android.media.cts.DecoderTest#testCodecResetsH264WithSurface
Fixed code formatting issues in ih264d_set_flush_mode
Updated the testbench to call flush before decoding starts
Bug: 24405410
Change-Id: Ib04e0b15573b2482c9d5b43c8bc7dd30d8f8efdd
|
| |
| |
| |
| |
| |
| | |
Bug: 23453762
Change-Id: I129e5a2ac8b9a28f3c894ebca0aef7063ca5934e
(cherry picked from commit 040ec939c61f7dffb76c977b775b1bc1e82f2bde)
|
|/
|
|
|
|
|
|
|
|
|
| |
Memory allocations are now done based on contents of SPS
API changed to move allocations inside the library
Also changed strlen to strnlen
Bug: 24221026
Change-Id: I9130457f564cddb4da7ec6399cc9fe88ee871217
|
|
|
|
|
|
| |
Bug: 24157524
Change-Id: I4b319ef8e23e1ba5f84f52b92f40ba7fb1429101
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
FPS > 60 was resulting in an integer overflow, so using float now.
Bug: 22504214
Change-Id: I4626ba6a43167c00c42dd6440df37bd1eb1f151a
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added support to check num_ref_frames in SPS
and num_reorder_frames in VUI before returning error for level
Bug: 22860270
Change-Id: I392bab419385ca239836d200f9f2b064915a8a46
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The slice header structure has now been initialized to 0
Fixed bug in closing of threads in the case of error.
Bug: 22860270
Change-Id: I777e0b73ad2f083c72be179984f5c1cb00ededb6
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If ENTROPY_TRACE is defined, the value parameter gets evaluated
twice. Since this parameter includes ++, the pointer gets incremented
twice.
This fixes encoding with trace enabled.
Bug: 22860270
Change-Id: I3d71ac33d007301e488d264a33c7b5c4d4ff2b56
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now no picture in a gop will depend on any picture in the previous gop
All calls to force an IDR are respected as soon as possible
Bug: 22860270
Change-Id: Id2bcd5687c3fb786336a01894c1b9228d67a87a6
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Even if this 4x4 block isn't at the bottom or right border,
the other 4x4 intra blocks within the same macroblock may
use it for intra prediction.
This fixes intra coded macroblocks in b-frames.
Bug: 22860270
Change-Id: Ifdf48c1b2bbf232e785d6d5b8244aacba1ad3dd6
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, if this field wasn't set, the invalid coding mode
could lead to crashes later.
Bug: 22860270
Change-Id: If8dd2f8d5f2fbdd6bb76772344f959df23159167
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
BIPRED ME was discarding the halfpel motion vector components
in cost computation. That is fixed now.
Bug: 22860270
Change-Id: If6c77096d701a258920b14134ff120fd1540f254
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Optimized cabac functions for writing bypass bins.
Removed unused return from cabac flush function.
Removed the macro REV_NBITS.
Bug: 22860270
Change-Id: Iece82797f2f45a35281817a2b77a7c7fe4e02bd1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The stored i4_mb_distortion that was used as i4_max_sad previously
might come from a different coding mode - even if
pf_ime_compute_sad_16x16 returns early when i4_mb_distortion is
larger than ps_mb_ctxt_bi->i4_mb_distortion, the calculated i4_mb_cost
can still end up smaller than ps_mb_ctxt_bi->i4_mb_cost.
Therefore, set i4_max_sad to INT_MAX to avoid the early exit in
pf_ime_compute_sad_16x16 here, since it can't be used reliably (and
returning early can end up choosing a suboptimal mode).
This makes sure that the encoded output is identical when the SIMD
optimized routines are disabled, when using B-frames.
Bug: 22860270
Change-Id: I9b8d524f88020e557541700133c7a0b48fe6a3b8
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When encoding in header mode, the s_inp_buf struct that was written
to ps_video_encode_op->s_ive_op.s_inp_buf was completely uninitialized.
In ih264e_input_queue_update, make sure to initialize u4_is_last
when skipping frames.
Bug: 22860270
Change-Id: I87e677acd00baf4f732ca7d35ee192e7f1f73994
|
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes valgrind warnings when encoding with b-frames.
Bug: 22860270
Change-Id: I922314e5e6fd09db3ba60e60863e2611309886d5
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since 6cb6772805, the actual level used is
MAX(u4_max_level, ih264e_get_min_level()), which means that it isn't
a fatal error to set u4_max_level to a too low level (if the caller
doesn't know or care). Despite this, the actual value set by the caller
was still used for initializing the RC.
This allows the caller to not have to set u4_max_level (currently
every caller has to duplicate a table or code snippet for determining
the right level for each resolution). The caller still can set it
to a higher value if he wants to explicitly use a higher level than
what is necessary.
This makes sure that the output is identical even if u4_max_level is
set too low.
Bug: 22860270
Change-Id: Icdc6c0652a97568d1eafc050226357a9d643d809
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In case a P frame was marked as the last frame to encode, the B frames
previous to it in the same gop were not getting encoded. This is fixed now.
Bug: 22860270
Change-Id: I871f2a1d52b8db9ee75426b00287b58203586f23
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since 90a3904fd3 and d020be5ac7, this field doesn't have any actual
effect - the strides are taken from the input pictures.
Bug: 22860270
Change-Id: I9b08cbf8ee558e038d0017a6176d7b3bd3c428bd
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Encoding a single frame used to make encoder to go into infinite
loop. That is fixed now
Bug: 22860270
Change-Id: I51752bdc5fd6071868884c2ff6074c14d05c8564
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes building with compilers that are strict about the pre-C99
rule about having all variable declarations before statements.
(The previous version of this commit was originally made before
the commit adding support for main profile, which added a bunch
more similar issues.)
Bug: 22860270
Change-Id: I0a927deb2ef4125f79429d108439e249fa531607
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously they were only marked as the pointers pointing to const
data, but the array themselves being non-const.
Bug: 22860270
Change-Id: Ib5a9af6298615b2c40367a21e728899418b09935
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is no point in intentionally disabling this feature; it
isn't enabled by default by the compiler - and if it were to be
enabled by default (if the toolchain baseline includes it, because
it can be expected to be supported everywhere) there would be no
reason to disable it.
Bug: 22860270
Change-Id: I67019eea63c4fb7183d9e47cf16bc8485022fef2
|
|/
|
|
|
|
|
|
| |
Some compilers can't handle this, and these occurrances are typos.
Bug: 22860270
Change-Id: I82349f103cef1f196d1a85dae307aff83c7d6090
|
|
|
|
| |
Change-Id: I8190ce01d313f987f142a0c7ef5ae31f01562510
|
|
|
|
| |
Change-Id: Id30fc1a9c007f2f32ed3375bbf02085f0edad5a0
|
|
|
|
|
|
|
| |
This fixes building with compilers that are strict about the pre-C99
rule about having all variable declarations before statements.
Change-Id: I06dd0cc42a6dbe90025c3c913a0c8d9ffb0acbcb
|
|
|
|
|
|
|
|
|
| |
If the current slice isn't BSLICE, u1_weighted_bipred_idc is
uninitialized, which valgrind can complain about (mostly in uninitialized
builds). By reordering the conditions, we avoid doing conditional
jumps based on uninitialized data.
Change-Id: I4d601fd1a4e34d85fe5992ecb934ac3747953960
|
|
|
|
|
|
|
|
|
|
|
|
| |
If i4_header_mode is set (without the caller explicitly requesting it),
the next frame to be encoded will be missed altogether (when only
a header is output).
Instead force a header to be generated prepended to the next frame.
If the caller explicitly requests header mode, it will be output
in a separate call.
Change-Id: If475717edf980bccb2076f880c60c9dd7dede904
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of them was benign and didn't risk any data race; they
were used for write-only memory during init.
The array as_itt_memtab in ih264e_get_rate_control_mem_tab
could however cause a real data race, if multiple threads
try to initialize an encoder at the same time, since it
used as temporary storage when mapping between different
structs.
Change-Id: I3ca29f0e3be2fad154becc3ee29867e591975a74
|
|
|
|
|
|
|
| |
When header mode is enabled, the SPS is populated before this
field was initialized in ih264e_pic_init.
Change-Id: I7e38828e12bee15bd3a53562b4e4d0d65354326a
|
|
|
|
|
|
|
| |
The --help option is handled by the normal argument parsing loop
below, but that is only invoked if argc > 2.
Change-Id: Icff3625412c340565c062628f2657c41db73068e
|
|
|
|
|
|
|
|
|
| |
Each round in the loop uses both argv[i] and argv[i + 1].
This fixes crashes if given an odd number of parameters, 3 or
more.
Change-Id: I9b8be99042eb7d0f69ebd87166d9cc920d15a950
|