Commit graph

354 commits

Author SHA1 Message Date
Marco Nelissen
e7873697a6 Merge "Return error in SPS/PPS parsing when extra bytes are read from input" 2015-10-09 15:50:36 +00:00
Marco Nelissen
cceb0ba683 Merge "Decoder: Once all the MBs in a picture are decoded ignore remaining bytes" 2015-10-09 15:50:06 +00:00
Harish Mahendrakar
f377e8cb05 Decoder: Memset 8 extra bytes at the end of internal bitstream buffer
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
2015-10-09 15:49:32 +00:00
Marco Nelissen
09c58b2c06 Merge "Decoder: Fixed an out of bound read in intra pred buffers" 2015-10-09 15:49:13 +00:00
Harish Mahendrakar
3abab0f52a Return error in SPS/PPS parsing when extra bytes are read from input
Bugfix: 24157524

Change-Id: I4b319ef8e23e1ba5f84f52b92f40ba7fb1429101
2015-10-09 01:04:10 +00:00
Harish Mahendrakar
a2b785c1ee Decoder: Once all the MBs in a picture are decoded ignore remaining bytes
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
2015-10-09 01:03:59 +00:00
Harish Mahendrakar
3f4ed79115 Decoder: Fixed an out of bound read in intra pred buffers
Bug fix: 23453762
Change-Id: I129e5a2ac8b9a28f3c894ebca0aef7063ca5934e
2015-10-09 01:03:08 +00:00
Harish Mahendrakar
3d9f217e4e Decoder: Exit gracefully in case of allocation failure
Skip error concealment when allocation fails for decoder buffers

Change-Id: I785f31cad5dca52c8c67cba78cdd330b7b4539e1
2015-10-09 01:02:36 +00:00
Marco Nelissen
800acb9b4f Merge "Decoder: Added a check for unsupported resolutions" 2015-10-08 20:32:12 +00:00
Harish Mahendrakar
76bd1f1474 Decoder: Added a check for unsupported resolutions
Decoder now returns an error for resolutions greater than 3840x2176

Change-Id: I38be0e4c5cf2a980bfd4c781f3b49171f73b5ccb
2015-10-06 09:05:19 +05:30
Harish Mahendrakar
0778ebc0e2 am 39f8ae0a: Decoder: Fixed an issue in handling flush
* commit '39f8ae0a35':
  Decoder: Fixed an issue in handling flush
2015-09-26 05:30:38 +00:00
Harish Mahendrakar
39f8ae0a35 Decoder: Fixed an issue in handling flush
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

Change-Id: Ib04e0b15573b2482c9d5b43c8bc7dd30d8f8efdd
2015-09-02 16:51:43 +05:30
Marco Nelissen
8c2c86f653 am fe2bfd39: Merge "Decoder: Reduced memory requirements"
* commit 'fe2bfd392c':
  Decoder: Reduced memory requirements
2015-08-20 23:15:19 +00:00
Hamsalekha S
1c1e2f2ce9 am 4202606c: Encoder added support for VUI params
* commit '4202606c70':
  Encoder added support for VUI params
2015-08-20 23:15:19 +00:00
Marco Nelissen
fe2bfd392c Merge "Decoder: Reduced memory requirements" 2015-08-20 22:43:40 +00:00
Harish Mahendrakar
34b3e479f4 Decoder: Reduced memory requirements
Memory allocations are now done based on contents of SPS
API changed to move allocations inside the library

Also changed strlen to strnlen

Change-Id: I9130457f564cddb4da7ec6399cc9fe88ee871217
2015-08-04 17:50:14 +05:30
Hamsalekha S
4202606c70 Encoder added support for VUI params
SPS will now include vui params
Removed a trailing space in ih264e_api.c

Change-Id: I67a57741689206e571e9a83f7e3360149f87e06a
2015-08-04 11:27:29 +05:30
Harish Mahendrakar
658e8d9a85 am 2eaba5eb: Encoder: Fixed an issue in handling FPS greater than 60
* commit '2eaba5ebd1':
  Encoder: Fixed an issue in handling FPS greater than 60
2015-08-03 18:45:47 +00:00
Ronghua Wu
b10d216f93 am 374e7a89: Merge "Encoder: Fixed an issue in handling FPS greater than 60" into mnc-dev
* commit '374e7a8984':
  Encoder: Fixed an issue in handling FPS greater than 60
2015-08-03 18:14:57 +00:00
Ronghua Wu
374e7a8984 Merge "Encoder: Fixed an issue in handling FPS greater than 60" into mnc-dev 2015-08-03 18:07:01 +00:00
Harish Mahendrakar
bb1543bd85 Encoder: Fixed an issue in handling FPS greater than 60
FPS > 60 was resulting in an integer overflow, so using float now.

Bug: 22504214
Change-Id: I4626ba6a43167c00c42dd6440df37bd1eb1f151a
2015-08-03 09:45:14 -07:00
Harish Mahendrakar
2eaba5ebd1 Encoder: Fixed an issue in handling FPS greater than 60
FPS > 60 was resulting in an integer overflow, so using float now.

Change-Id: I4626ba6a43167c00c42dd6440df37bd1eb1f151a
2015-08-03 12:13:51 +05:30
Hamsalekha S
308ae11ce9 am c8581659: Support for level greater than level at init in Decoder
* commit 'c858165962':
  Support for level greater than level at init in Decoder
2015-07-31 19:05:28 +00:00
Hamsalekha S
ed297a4b1e am 8a503281: Support for level greater than level at init in Decoder
* commit '8a50328131':
  Support for level greater than level at init in Decoder
2015-07-31 19:02:26 +00:00
Hamsalekha S
e3da14c4e7 am e789d1d2: Decoder: Fixed issues shown by Valgrind
* commit 'e789d1d2e2':
  Decoder: Fixed issues shown by Valgrind
2015-07-31 19:02:25 +00:00
Martin Storsjo
43af91db4e am bbc83b16: Don\'t use side effects in the macro PUT_BITS_SEV parameters
* commit 'bbc83b16b9':
  Don't use side effects in the macro PUT_BITS_SEV parameters
2015-07-31 19:02:23 +00:00
Harinarayanan K K
6423373ac5 am dbe9ac89: Made gops closed
* commit 'dbe9ac8936':
  Made gops closed
2015-07-31 19:02:20 +00:00
Martin Storsjo
55dc090755 am 860f7520: Always do recon of 4x4 intra blocks
* commit '860f75203e':
  Always do recon of 4x4 intra blocks
2015-07-31 19:02:19 +00:00
Martin Storsjo
9a3e4479ae am 33134b26: Validate the u4_entropy_coding_mode field
* commit '33134b2617':
  Validate the u4_entropy_coding_mode field
2015-07-31 19:02:18 +00:00
Harinarayanan K K
63ac809183 am 8ce82804: Fixed issue in cost computation for BIPRED ME
* commit '8ce82804ab':
  Fixed issue in cost computation for BIPRED ME
2015-07-31 19:02:18 +00:00
Doney Alex
34cdc7fc18 am 0574be65: Cabac optimizations
* commit '0574be65f4':
  Cabac optimizations
2015-07-31 19:02:17 +00:00
Martin Storsjo
67e59edb69 am eddf6a33: Use INT_MAX as i4_max_sad in ih264e_evaluate_bipred
* commit 'eddf6a33fe':
  Use INT_MAX as i4_max_sad in ih264e_evaluate_bipred
2015-07-31 19:02:16 +00:00
Martin Storsjo
81ce210ab5 am 6fb90f8f: Make sure that apv_bufs[0] and u4_is_last always are set
* commit '6fb90f8fec':
  Make sure that apv_bufs[0] and u4_is_last always are set
2015-07-31 19:02:15 +00:00
Martin Storsjo
44bf7d013d am dc4c6140: avcenc: Initialize avg_time
* commit 'dc4c6140a9':
  avcenc: Initialize avg_time
2015-07-31 19:02:14 +00:00
Martin Storsjo
37247e1a4b am a6bcaf36: Check the width/height and adjust level used for RC
* commit 'a6bcaf3690':
  Check the width/height and adjust level used for RC
2015-07-31 18:53:29 +00:00
Harinarayanan K K
21e6c0c5c7 am 01168dc0: Fixed encode of trailing B frames
* commit '01168dc07e':
  Fixed encode of trailing B frames
2015-07-31 18:53:28 +00:00
Martin Storsjo
ad9fb1869b am b0aadd0c: Remove the now unused stride field from the set dimensions struct
* commit 'b0aadd0c45':
  Remove the now unused stride field from the set dimensions struct
2015-07-31 18:53:27 +00:00
Harinarayanan K K
74c858ae94 am 0cf554f7: Fixed encode of single frame
* commit '0cf554f73b':
  Fixed encode of single frame
2015-07-31 18:53:26 +00:00
Martin Storsjo
9aada81fcd am 4b09a8c0: Don\'t declare variables after statements
* commit '4b09a8c011':
  Don't declare variables after statements
2015-07-31 18:53:25 +00:00
Martin Storsjo
a7935f26f1 am 698de0ed: Mark arrays of pointers as const
* commit '698de0ed5c':
  Mark arrays of pointers as const
2015-07-31 18:53:25 +00:00
Martin Storsjo
c3f753bbb6 am 970dfc0e: Don\'t set -mno-avx
* commit '970dfc0e82':
  Don't set -mno-avx
2015-07-31 18:53:23 +00:00
Martin Storsjo
0b751f46ac am 61791a91: Remove double semicolons (empty statements)
* commit '61791a91be':
  Remove double semicolons (empty statements)
2015-07-31 18:53:22 +00:00
Hamsalekha S
8a50328131 Support for level greater than level at init in Decoder
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
2015-07-31 18:53:17 +00:00
Hamsalekha S
e789d1d2e2 Decoder: Fixed issues shown by Valgrind
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
2015-07-31 18:52:32 +00:00
Martin Storsjo
bbc83b16b9 Don't use side effects in the macro PUT_BITS_SEV parameters
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
2015-07-31 18:51:33 +00:00
Harinarayanan K K
dbe9ac8936 Made gops closed
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
2015-07-31 18:51:20 +00:00
Martin Storsjo
860f75203e Always do recon of 4x4 intra blocks
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
2015-07-31 18:51:09 +00:00
Martin Storsjo
33134b2617 Validate the u4_entropy_coding_mode field
Previously, if this field wasn't set, the invalid coding mode
could lead to crashes later.

Bug: 22860270

Change-Id: If8dd2f8d5f2fbdd6bb76772344f959df23159167
2015-07-31 18:51:00 +00:00
Harinarayanan K K
8ce82804ab Fixed issue in cost computation for BIPRED ME
BIPRED ME was discarding the halfpel motion vector components
in cost computation. That is fixed now.

Bug: 22860270

Change-Id: If6c77096d701a258920b14134ff120fd1540f254
2015-07-31 18:50:48 +00:00
Doney Alex
0574be65f4 Cabac optimizations
Optimized cabac functions for writing bypass bins.
Removed unused return from cabac flush function.
Removed the macro REV_NBITS.

Bug: 22860270

Change-Id: Iece82797f2f45a35281817a2b77a7c7fe4e02bd1
2015-07-31 18:50:37 +00:00