Commit graph

100 commits

Author SHA1 Message Date
Harish Mahendrakar
46848b21f5 Decoder: Remove unnecssary optimization while setting MV context
Few MV cabac contexts were being used as WORD16 pointers
but were not guaranteed to be aligned to 2 byte boundary.

Bug: 33073518
Test: Tested with -fsanitize=alignment enabled on avcdec

Change-Id: I294179d6ec37b0f1d9cbe093b1f9780f036a9cb8
2016-11-24 12:20:42 +05:30
Harish Mahendrakar
ef2f525bec Decoder: Reset p_curr_ctxt->i1_ref_idx using memset
Since p_curr_ctxt->i1_ref_idx is not guaranteed to be 4 byte aligned,
use memset instead of using it as an int pointer.
On platforms that do not support unaligned stores, this change is needed

Bug: 33073518
Test: Tested with -fsanitize=alignment enabled on avcdec

Change-Id: I5970454be3250f6f87eab383f3b6afbf5b56f201
2016-11-24 12:19:42 +05:30
Harish Mahendrakar
e98bd1f5a0 Decoder: Aligned pi1_left_pred_mode[8] in _DecStruct definition
This array is sometimes accessed as two WORD32 variables.
On platforms that do not support unaligned load/stores, this needs
to be aligned to 4 byte boundary.

Bug: 33073518
Test: Tested with -fsanitize=alignment enabled on avcdec

Change-Id: I470bc868dde7049be12bee06ee0ba0c4c4bd8566
2016-11-24 12:18:48 +05:30
Harish Mahendrakar
4b6344b281 Decoder: Ignore dangling fields during flush
If decoder has decoded one field and is waiting for next field,
and flush is called, then ignore the current decoded field.

This is needed to ensure seek works in case of flush between field
decode calls

Bug: 32391809
Test: Tested manually by decoding clip in the above bug in Photos app

Change-Id: I72bb0385c216ebe262b346a56d3bc8fb97f90a7b
2016-10-25 11:47:19 +05:30
Bill Yi
63fed249f5 Merge commit 'f2dadab7e1' into HEAD 2016-06-28 08:59:01 -07:00
Harish Mahendrakar
0558888c28 Merge \"Decoder: Initialize few VUI params to signal unspecified values\"
am: 98a713ba39

Change-Id: Ib132cd86000079770635b8f101c8ce5affde8b10
2016-06-28 15:24:39 +00:00
Treehugger Robot
98a713ba39 Merge "Decoder: Initialize few VUI params to signal unspecified values" 2016-06-28 15:20:42 +00:00
Harish Mahendrakar
871f061df4 Decoder: Initialize few VUI params to signal unspecified values
Initialize video_format to 5 and colour_primaries, transfer_characteristics
and matrix_coefficients to 2 to signal that these are not present in the bitstream.

Bug: 29640760
Change-Id: Ib54ceadcd6d7962e3077bc7266d70983b1d0e141
2016-06-27 14:15:39 +05:30
Harish Mahendrakar
8b078e826e Decoder: Added support for exporting VUI params am: d5953ced23
am: a1fa8e86e8

Change-Id: I1363116738bb33b3c9a999ba7159f4c80d9eef89
2016-06-23 16:01:53 +00:00
Harish Mahendrakar
a1fa8e86e8 Decoder: Added support for exporting VUI params
am: d5953ced23

Change-Id: I01485a055330902830f64850c1ddfa2ce4b8ce25
2016-06-23 15:58:05 +00:00
Harish Mahendrakar
d5953ced23 Decoder: Added support for exporting VUI params
Bug: 27442922

Change-Id: I4bc3a9fb31ffea1e9e8ae32e5ed49fcc12fbdf42
2016-06-22 04:10:00 +00:00
Ray Essick
1cb4c241b9 Merge \\"Decoder: Simplified error checks on display stride\\" am: e8463cdf28
am: fb5a6f6fcc

Change-Id: I19f6dbf1268ad302a4c2fc5b8dd2f6f30948f2db
2016-06-21 21:25:06 +00:00
Harish Mahendrakar
fb5a6f6fcc Merge \"Decoder: Simplified error checks on display stride\"
am: e8463cdf28

Change-Id: Ie404c25afb8461451b738a174431c2cd6d6c03be
2016-06-21 21:22:17 +00:00
Ray Essick
e8463cdf28 Merge "Decoder: Simplified error checks on display stride" 2016-06-21 21:15:43 +00:00
Harish Mahendrakar
f773f0affa Merge \\\\\"Decoder: Initialize first_pb_nal_in_pic for error slices\\\\\" into mnc-dev am: b9d7cba8bf am: c73e000665 am: 59248aa67c am: c4ef0f6129
am: ac9332c9ac

Change-Id: I0e24a9a24d78be351bd3fcbca9ec7640b874b7f4
2016-06-21 19:04:25 +00:00
Robert Shih
ac9332c9ac Merge \\\\"Decoder: Initialize first_pb_nal_in_pic for error slices\\\\" into mnc-dev am: b9d7cba8bf am: c73e000665 am: 59248aa67c
am: c4ef0f6129

Change-Id: I57e93af0f4f9d3f3f2d0cbbccbf21397602cc87a
2016-06-21 19:01:42 +00:00
Harish Mahendrakar
c73e000665 Merge \"Decoder: Initialize first_pb_nal_in_pic for error slices\" into mnc-dev
am: b9d7cba8bf

Change-Id: I62f9c45eea70968942198b20f47c158dede39d8d
2016-06-21 18:53:18 +00:00
Robert Shih
b9d7cba8bf Merge "Decoder: Initialize first_pb_nal_in_pic for error slices" into mnc-dev 2016-06-21 18:47:11 +00:00
Harish Mahendrakar
9006751827 Decoder: Ignore few dpb errors am: 27b7a14f48
am: a31fec6b0d

Change-Id: I036f722e96f4c87e7b29b3ebbec14712eef5c1f4
2016-06-21 18:36:19 +00:00
Harish Mahendrakar
a31fec6b0d Decoder: Ignore few dpb errors
am: 27b7a14f48

Change-Id: I51fcd20f9633c2bdd067233bf93b53bad8ba9429
2016-06-21 18:33:32 +00:00
Harish Mahendrakar
ab9a435b91 Decoder: Do not conceal slices with invalid SPS/PPS am: 3a419eac8d am: 48b182db5d am: ea40cf81eb am: 44a2462a71
am: 49f36805b3

Change-Id: Ibe58fcb062ca5172ac10fc73b2ff750f49332935
2016-06-21 17:46:46 +00:00
Harish Mahendrakar
49f36805b3 Decoder: Do not conceal slices with invalid SPS/PPS am: 3a419eac8d am: 48b182db5d am: ea40cf81eb
am: 44a2462a71

Change-Id: I42e0c567f5c24841a2f678ff6e2faff85c002c71
2016-06-21 17:44:01 +00:00
Harish Mahendrakar
48b182db5d Decoder: Do not conceal slices with invalid SPS/PPS
am: 3a419eac8d

Change-Id: I09e962ab090f890a149cb967f2b04fd95a7d76d7
2016-06-21 17:35:49 +00:00
Harish Mahendrakar
27b7a14f48 Decoder: Ignore few dpb errors
Ignore dpb errors, where decoder fails to release a non-existing picture
from reference lists. This is needed to decode streams where few pictures
are missing.

Change-Id: I8ece68cb1fa22473029e16158cd86ce7a197027a
2016-06-21 08:13:38 +00:00
Harish Mahendrakar
cbf620e01c Decoder: Simplified error checks on display stride
Change-Id: Ifd926cf664dbeeb146d427f37a89ccc3c3e52cf5
2016-06-21 05:50:53 +00:00
Harish Mahendrakar
1d38163326 Merge \"Decoder: Treat first slice in a picture as part of new picture always\"
am: ce90119910

Change-Id: I3b843b6b49ff3430a23003dd7914fc984c360fa5
2016-06-20 20:52:01 +00:00
Ray Essick
ce90119910 Merge "Decoder: Treat first slice in a picture as part of new picture always" 2016-06-20 20:40:56 +00:00
Harish Mahendrakar
bee3d9b97c Decoder: Increment p_ctxt_inc_mb_map immediately after allocation
am: bd67b74643

Change-Id: I6e917d228d828a4903fe97393ed81826cf90c708
2016-06-20 19:48:56 +00:00
Harish Mahendrakar
87eeafeb7b Decoder: Treat first slice in a picture as part of new picture always
This is needed to decode streams with consecutive IDRs.

Change-Id: Ib737a4ef4b8c5bb7a57c90292102dd28af0615fe
2016-06-18 09:02:19 +00:00
Harish Mahendrakar
bd67b74643 Decoder: Increment p_ctxt_inc_mb_map immediately after allocation
This is needed to ensure free does not get a wrong address in case of allocation
failure.

Change-Id: I1818f2a8ae3cce8dd4e2293510ff63e617b83c5f
2016-06-18 09:01:41 +00:00
Harish Mahendrakar
7f4a43bcf9 Decoder: Padded gau1_ih264d_top_left_mb_part_indx_mod to avoid an out of bound read
am: 81a8c5d336

Change-Id: Ic5ad6d64d9ad5e7f9a80de8ab512ed3383b85ecf
2016-06-17 20:08:44 +00:00
Harish Mahendrakar
81a8c5d336 Decoder: Padded gau1_ih264d_top_left_mb_part_indx_mod to avoid an out of bound read
Change-Id: Ie8761de856ed8c7d08f3da61631c1bef446448e6
2016-06-17 03:54:34 +00:00
Harish Mahendrakar
7a54468cf8 Decoder: Initialize first_pb_nal_in_pic for error slices
first_pb_nal_in_pic was uninitialized for error clips

Bug: 29023649

Change-Id: Ie4e0a94059c5f675bf619e31534846e2c2ca58ae
2016-06-16 17:28:19 -07:00
Harish Mahendrakar
cdf6f0f4d2 Merge \"Fix stack buffer overflow in ih264d_process_intra_mb\"
am: 3d4c35ca83

Change-Id: Ic341effe90fc8e1614cb82890064689f22c97c3a
2016-06-16 17:29:25 +00:00
Harish Mahendrakar
d32eaf4029 Fix stack buffer overflow in ih264d_process_intra_mb
Aligned the sizes of au1_ngbr_pels to ensure SSE42 functions do not
result in stack buffer overflow

Change-Id: I0bfe493f94647046013759b3ec9db3c627ac471e
2016-06-16 03:23:08 +00:00
Harish Mahendrakar
3a419eac8d Decoder: Do not conceal slices with invalid SPS/PPS
Bug: 28835995
2016-06-14 13:43:54 -07:00
Harish Mahendrakar
b4c694d50a Merge \\\\\"Decoder: Fix slice number increment for error clips\\\\\" into mnc-dev am: 2e88a2aa67 am: d75185f90e am: abd921f407 am: 46635d205b
am: afe52d7476

Change-Id: If95df7faaa671bc981ef36a862b6023e37a8fc85
2016-06-10 21:46:09 +00:00
Marco Nelissen
afe52d7476 Merge \\\\"Decoder: Fix slice number increment for error clips\\\\" into mnc-dev am: 2e88a2aa67 am: d75185f90e am: abd921f407
am: 46635d205b

Change-Id: I33ae1d1daeb6b7ca83a7ce4913e6b7f40ca87283
2016-06-10 21:42:37 +00:00
Harish Mahendrakar
d75185f90e Merge \"Decoder: Fix slice number increment for error clips\" into mnc-dev
am: 2e88a2aa67

Change-Id: I791c029e3b39202db3f49f13fbb511904b5e8fef
2016-06-10 21:31:13 +00:00
Marco Nelissen
2e88a2aa67 Merge "Decoder: Fix slice number increment for error clips" into mnc-dev 2016-06-10 21:21:44 +00:00
Harish Mahendrakar
5e4f64c074 Decoder: Fix slice number increment for error clips
Bug: 28673410
2016-06-09 08:31:55 -07:00
Harish Mahendrakar
8e12bcbfb5 Fix slice params for interlaced video am: 2c9d67ffaf am: b70297ef4b am: 4abe7805da
am: 64e6a63272

* commit '64e6a63272':
  Fix slice params for interlaced video

Change-Id: I0aeefd91593569f95101c73e5830ed976e94f584
2016-05-26 00:23:01 +00:00
Harish Mahendrakar
64e6a63272 Fix slice params for interlaced video am: 2c9d67ffaf am: b70297ef4b
am: 4abe7805da

* commit '4abe7805da':
  Fix slice params for interlaced video

Change-Id: Ie82a2a710d461fa6a2192d3d63741b4eeb2b8ce0
2016-05-26 00:17:40 +00:00
Harish Mahendrakar
2c9d67ffaf Fix slice params for interlaced video
Bug: 28165661
Change-Id: I912a86bd78ebf0617fd2bc6eb2b5a61afc17bf53
2016-05-25 20:06:08 +00:00
Harish Mahendrakar
cdfd7573ec Fix slice params for interlaced video
Bug: 28165661
Change-Id: I912a86bd78ebf0617fd2bc6eb2b5a61afc17bf53
2016-05-25 02:25:00 +00:00
Harish Mahendrakar
e9f6d63e93 Decoder: Set u1_long_term_reference_flag to 0 for error concealment am: eacafb943c am: 4e5762ce4b am: 941c3b423d am: 81497a0788
am: c6d37bf231

* commit 'c6d37bf231':
  Decoder: Set u1_long_term_reference_flag to 0 for error concealment

Change-Id: I31699bfc2fe7243c2f0af40791b996d8f7475792
2016-05-24 01:01:58 +00:00
Harish Mahendrakar
c6d37bf231 Decoder: Set u1_long_term_reference_flag to 0 for error concealment am: eacafb943c am: 4e5762ce4b am: 941c3b423d
am: 81497a0788

* commit '81497a0788':
  Decoder: Set u1_long_term_reference_flag to 0 for error concealment

Change-Id: I8c6ee4489729f5036c8066ad8c4da1d28a5b9851
2016-05-24 00:54:11 +00:00
Harish Mahendrakar
4e5762ce4b Decoder: Set u1_long_term_reference_flag to 0 for error concealment
am: eacafb943c

* commit 'eacafb943c':
  Decoder: Set u1_long_term_reference_flag to 0 for error concealment

Change-Id: I8836bf700a7b77deff062d9d1737b903583ad6b2
2016-05-24 00:28:43 +00:00
Harish Mahendrakar
eacafb943c Decoder: Set u1_long_term_reference_flag to 0 for error concealment
For MBs which are in error, set u1_long_term_reference_flag to zero.
This ensures latest frame is used for concealment

Bug: 28470138
Change-Id: I58eab5bc1da277823f3dbb4103ba50867f8935dc
2016-05-23 21:26:38 +00:00
Harish Mahendrakar
7cefcdc6f5 Decoder: Initialize slice parameters before concealing error MBs am: 33db7a0f4e am: 129a6006b4 am: fc855de43f am: 634b546f34
am: f34b7a27a2

* commit 'f34b7a27a2':
  Decoder: Initialize slice parameters before concealing error MBs

Change-Id: Ic64b0d11d866510a7b312c41565fdb5fcadd25eb
2016-05-23 18:53:15 +00:00