]>
granicus.if.org Git - libvpx/log
Johann [Fri, 12 Sep 2014 22:02:03 +0000 (15:02 -0700)]
Remove unused vp8_strict_quantize
Change-Id: I4c35ed2de8b54751b69f4801454a1ccc35b500b0
Johann [Wed, 13 Aug 2014 19:45:03 +0000 (12:45 -0700)]
Remove unused vp8 quantize functions
Exact fast quantize and inexact regular quantize are unused.
Change-Id: I5a81f5059c896c919f70038af7de04d63823d26d
Jim Bankoski [Wed, 13 Aug 2014 17:54:33 +0000 (10:54 -0700)]
Merge "vpx_internal_error -> fix -Wunused-function issues"
Deb Mukherjee [Wed, 13 Aug 2014 16:55:39 +0000 (09:55 -0700)]
Merge "Initialization to prevent asan failure on google3"
Deb Mukherjee [Wed, 13 Aug 2014 15:41:40 +0000 (08:41 -0700)]
Initialization to prevent asan failure on google3
Reinstates an assignment to prevent an asan failurere on google3.
Not sure why the failure happens. This was removed in a recent patch
https://gerrit.chromium.org/gerrit/#/c/71068/.
Change-Id: Ifd9ccffd4c2164f4de38b21821ffb28bd779b0f3
Jim Bankoski [Wed, 13 Aug 2014 15:40:14 +0000 (08:40 -0700)]
Merge "intra blocks disallowed inadvertently"
Jim Bankoski [Wed, 13 Aug 2014 15:11:22 +0000 (08:11 -0700)]
Merge "Update PATENTS to reflect s/VP8/WebM/g"
Jim Bankoski [Wed, 13 Aug 2014 14:58:01 +0000 (07:58 -0700)]
vpx_internal_error -> fix -Wunused-function issues
Moved to global function to avoid unused function warnings...
Change-Id: I4e9002dcb20748f6d8d84cbbe6ef2de0bd9a8018
Paul Wilkins [Wed, 13 Aug 2014 09:56:19 +0000 (02:56 -0700)]
Merge "Minor Two pass rate control adjustments."
James Zern [Wed, 13 Aug 2014 07:24:31 +0000 (00:24 -0700)]
Merge "decode_api_test: fix type conversion warning"
James Zern [Wed, 13 Aug 2014 06:40:48 +0000 (23:40 -0700)]
Merge "libyuv: update to r1041"
James Zern [Wed, 13 Aug 2014 06:11:38 +0000 (23:11 -0700)]
decode_api_test: fix type conversion warning
size_t -> uint32 in the call to vpx_codec_decode()
Change-Id: Ibf39d3749321c97292b35ac0631fa22211cff800
James Zern [Sun, 10 Aug 2014 23:15:18 +0000 (16:15 -0700)]
libyuv: update to r1041
Change-Id: I38dad398844ee424a7a92a745ab703645018d02b
James Zern [Wed, 13 Aug 2014 05:48:27 +0000 (22:48 -0700)]
Merge "get_ref_frame: check ref_frame_map value"
James Zern [Wed, 13 Aug 2014 04:11:36 +0000 (21:11 -0700)]
Merge "VP8D_GET_FRAME_CORRUPTED: check frame pointer"
James Zern [Wed, 13 Aug 2014 04:11:11 +0000 (21:11 -0700)]
Merge "vpx_codec_decode: check data size"
James Zern [Wed, 13 Aug 2014 03:16:47 +0000 (20:16 -0700)]
Merge "inline vpx functions in headers to avoid unused function warning"
James Zern [Wed, 13 Aug 2014 03:15:14 +0000 (20:15 -0700)]
Merge "fixes several -Wunused-function warnings"
James Zern [Wed, 13 Aug 2014 02:21:20 +0000 (19:21 -0700)]
Merge "Fix a run-time integer overflow"
Deb Mukherjee [Wed, 13 Aug 2014 01:06:21 +0000 (18:06 -0700)]
Merge "Rework y4mwrite test to pass google3 tests"
James Zern [Sun, 10 Aug 2014 01:54:28 +0000 (18:54 -0700)]
get_ref_frame: check ref_frame_map value
'ref_frame_map' is initialized to -1. avoids using an invalid index if
VP9_GET_REFERENCE/VP8_COPY_REFERENCE controls are issued after a decode
error.
Change-Id: I4599762c4d0b07a5943a72bf4a86ccb596cc062a
James Zern [Sun, 10 Aug 2014 01:47:58 +0000 (18:47 -0700)]
VP8D_GET_FRAME_CORRUPTED: check frame pointer
if the decode of the first frame fails, frame_to_show may not be set.
fixes a crash in vpxdec with corrupt data.
Change-Id: I5ab9476d005778a13fd42a39d05876bb6c90a93c
Jim Bankoski [Tue, 12 Aug 2014 23:28:08 +0000 (16:28 -0700)]
inline vpx functions in headers to avoid unused function warning
Change-Id: I80284ae82915b9df56f7c5ef4953bd53e8cffd1f
Jim Bankoski [Tue, 12 Aug 2014 23:51:07 +0000 (16:51 -0700)]
fixes several -Wunused-function warnings
Change-Id: I4dc2cb255f4fe30998b6ee61184895dee9f5da8e
Yaowu Xu [Fri, 8 Aug 2014 15:56:24 +0000 (08:56 -0700)]
Fix a run-time integer overflow
Change-Id: I87255d8a25ef8c7d235cbf3c8887d7bed7892cfe
Jim Bankoski [Tue, 12 Aug 2014 23:22:32 +0000 (16:22 -0700)]
intra blocks disallowed inadvertently
At speed 6 the smallest partitioning was 16x16 and biggest
intra block was 8x8, essentially disallowing all intra blocks
which produces ugly artifacts when revealing new video.
Change-Id: I364042d4c64e09be0666ade64aac94d0a1b586cf
Deb Mukherjee [Mon, 11 Aug 2014 20:44:27 +0000 (13:44 -0700)]
Rework y4mwrite test to pass google3 tests
Reverts to using tmpfile() for non-Windows platforms. On google3
the test directory does not have write permissions, and hence the
Y4mWriteTest fails. This patch fixes the issue.
On Windows, a temporary file is created in the temp directory
that has write permissions.
The tests pass on linux, mingw, and MS visual studio.
Change-Id: Ibada1d80e25d8b8e5b6a9d3d597533674bd9024c
Alex Converse [Mon, 11 Aug 2014 23:58:45 +0000 (16:58 -0700)]
Fix pickmode for intra DC blocks
Change-Id: I4906043ec1e3577ba37622a235c54adacb66125a
Paul Wilkins [Fri, 25 Jul 2014 09:19:19 +0000 (10:19 +0100)]
Minor Two pass rate control adjustments.
Alter way in which we identify static scenes.
Remove some redundant code.
Change-Id: I883c2ea2e341770648a8663d8881f720ed099b61
James Zern [Tue, 12 Aug 2014 06:08:45 +0000 (23:08 -0700)]
Merge "remove unused fields from BOOL_CODER / vp9_writer"
James Zern [Tue, 12 Aug 2014 06:02:45 +0000 (23:02 -0700)]
Merge "remove remaining references to XMA"
James Zern [Sun, 10 Aug 2014 02:16:18 +0000 (19:16 -0700)]
remove remaining references to XMA
the bulk of the functionality was removed in:
a42b5c2 Removing legacy XMA features from libvpx.
BUG=840
Change-Id: I8ca51d6aa76028f36d0eb1a15d2f2e3161e12ea4
James Zern [Tue, 12 Aug 2014 01:43:51 +0000 (18:43 -0700)]
Merge "vp9_write_bit_buffer: fix function name typo"
Jingning Han [Tue, 12 Aug 2014 00:56:48 +0000 (17:56 -0700)]
Merge "Enable fast forward txfm and quant for rate-distortion search"
Dmitry Kovalev [Mon, 11 Aug 2014 23:32:51 +0000 (16:32 -0700)]
Merge "Implementing right flushing for simple_encoder."
Alex Converse [Mon, 11 Aug 2014 22:47:58 +0000 (15:47 -0700)]
Merge "Add tune-content command line option"
Lou Quillio [Mon, 11 Aug 2014 19:14:07 +0000 (12:14 -0700)]
Update PATENTS to reflect s/VP8/WebM/g
Sync with http://www.webmproject.org/license/additional/
modified: PATENTS
modified: third_party/libwebm/PATENTS.TXT
Change-Id: I97fc588589654c83c6cb7e2e2b909f23a370db8a
Dmitry Kovalev [Mon, 11 Aug 2014 21:10:33 +0000 (14:10 -0700)]
Implementing right flushing for simple_encoder.
simple_encoder: Flush encoder. According to the current API spec we need
to call vpx_codec_encode() until vpx_codec_get_cx_data() returns NULL.
Change-Id: Ibc37706e5257a3d51e5421ca17f77ab41249d9b5
Minghai Shang [Mon, 11 Aug 2014 20:43:25 +0000 (13:43 -0700)]
[spatial svc]Remove CONFIG_SPATIAL_SVC for ss_enable_auto_alt_ref in vpx_codec_enc_cfg to fix heap-overflow issue in asan config
Change-Id: Icdf08501db5f416285f751d316941dfacd2c69ba
James Zern [Sun, 10 Aug 2014 01:35:40 +0000 (18:35 -0700)]
vpx_codec_decode: check data size
When a valid data pointer is given make sure the size is greater than
zero.
A previous check for vp9 was incorrectly removed in:
7050074 Make the api behavior conform to api spec.
No semantics for valid pointers + 0-sized frames are defined for VPx
codecs, so move the check to vpx_codec_decode(). This avoids an assert
in vp9.
+ add some basic invalid param testing for decoder init/decode/destroy
Change-Id: I99f9cef6076d15874fd72ac973f2685d8a2353c3
Dmitry Kovalev [Mon, 11 Aug 2014 18:03:20 +0000 (11:03 -0700)]
Merge "Removing unised OUTPUT_YUV_SRC define."
Jingning Han [Mon, 11 Aug 2014 15:53:34 +0000 (08:53 -0700)]
Merge "Integrate fast txfm and quant path into skip_recode system"
Jingning Han [Mon, 11 Aug 2014 15:53:25 +0000 (08:53 -0700)]
Merge "Extend skip_txfm flag into array to cover YUV planes"
Deb Mukherjee [Sun, 10 Aug 2014 17:08:42 +0000 (10:08 -0700)]
Merge "Adds spatial-svc macros to code to allow disabling"
Tom Finegan [Sat, 9 Aug 2014 02:19:03 +0000 (19:19 -0700)]
Merge "test/vpxenc.sh: Convert vpxenc() to a simple wrapper."
Marco Paniconi [Sat, 9 Aug 2014 00:17:15 +0000 (17:17 -0700)]
Merge "vp8: Code cleanup for control of denoiser mode."
Dmitry Kovalev [Sat, 9 Aug 2014 00:14:01 +0000 (17:14 -0700)]
Removing unised OUTPUT_YUV_SRC define.
Change-Id: Ia88eebf10c8620dadaa66722543db291e44fe104
Jingning Han [Thu, 7 Aug 2014 05:48:37 +0000 (22:48 -0700)]
Enable fast forward txfm and quant for rate-distortion search
This commit enables encoder to select fast forward transform and
quantization path according to the prediction residual sse/variance,
in the rate-distortion optimization scheme.
Change-Id: Ief9fc3844fd4107166d401970e800c6e5ce2b5fe
Marco Paniconi [Tue, 29 Jul 2014 22:06:57 +0000 (15:06 -0700)]
vp8: Code cleanup for control of denoiser mode.
Change-Id: Icb9918dd38d15061d62852e6a2d905e8ceb2c1ac
Deb Mukherjee [Fri, 8 Aug 2014 23:11:02 +0000 (16:11 -0700)]
Adds spatial-svc macros to code to allow disabling
Adds a couple of CONFIG_SPATIAL_SVC macros to allow compilation
when spatial-svc is disabled.
Change-Id: I67f84406d1d3fa26f225d9c6518161a0841f2d29
Dmitry Kovalev [Fri, 8 Aug 2014 23:07:47 +0000 (16:07 -0700)]
Merge "Moving pass from VP9_COMP to VP9EncoderConfig."
Adrian Grange [Fri, 8 Aug 2014 22:56:18 +0000 (15:56 -0700)]
Merge "Common encode/decode function to get reference frame"
Tom Finegan [Fri, 8 Aug 2014 03:08:28 +0000 (20:08 -0700)]
test/vpxenc.sh: Convert vpxenc() to a simple wrapper.
- Split vpxenc() into vpxenc() and vpxenc_pipe().
- Drop all but one positional param (the input file) in favor
of passing args directly to vpxenc.
- Add an extra lossless test that explicitly sets min-q and
max-q to 0.
Change-Id: I7d5f7b495f8b9447388c5f459bc9f6de2214caf2
Dmitry Kovalev [Fri, 8 Aug 2014 21:58:23 +0000 (14:58 -0700)]
Merge "Removing legacy XMA features from libvpx."
Dmitry Kovalev [Fri, 8 Aug 2014 21:27:34 +0000 (14:27 -0700)]
Moving pass from VP9_COMP to VP9EncoderConfig.
We had a very complicated way to initialize cpi->pass from
cfg->g_pass:
switch (cfg->g_pass) {
case VPX_RC_ONE_PASS:
oxcf->mode = ONE_PASS_GOOD;
break;
case VPX_RC_FIRST_PASS:
oxcf->mode = TWO_PASS_FIRST;
break;
case VPX_RC_LAST_PASS:
oxcf->mode = TWO_PASS_SECOND_BEST;
break;
}
cpi->pass = get_pass(oxcf->mode).
Now pass is moved to VP9EncoderConfig and initialization is simple:
switch (cfg->g_pass) {
case VPX_RC_ONE_PASS:
oxcf->pass = 0;
break;
case VPX_RC_FIRST_PASS:
oxcf->pass = 1;
break;
case VPX_RC_LAST_PASS:
oxcf->pass = 2;
break;
}
Change-Id: I8f582203a4575f5e39b071598484a8ad2b72e0d9
Dmitry Kovalev [Fri, 8 Aug 2014 20:55:34 +0000 (13:55 -0700)]
Merge "Cleaning up vp9_encodeframe.c."
Adrian Grange [Fri, 8 Aug 2014 15:59:05 +0000 (08:59 -0700)]
Common encode/decode function to get reference frame
Replaced encoder and decoder functions to get a pointer
to a reference frame with a common function, vp9_get_ref_frame,
and simplified it.
Change-Id: Icb206fcce8caace3bfd1db3dbfa318dde79043ee
Adrian Grange [Thu, 31 Jul 2014 19:21:17 +0000 (12:21 -0700)]
Remove coding_use_prev_mi member from VP9_COMMON
This was shadowing the use of error_resilient_mode, but with
the opposite sense.
Change-Id: Ie4d30263a304fe4b3e94f0c7741db6888cc6afd8
Alex Converse [Fri, 8 Aug 2014 16:30:47 +0000 (09:30 -0700)]
Merge "Fix active_map speed 6."
Alex Converse [Fri, 8 Aug 2014 16:30:44 +0000 (09:30 -0700)]
Merge "Cleanup SEG_LVL_SKIP handling in encode_superblock."
James Zern [Fri, 8 Aug 2014 02:54:53 +0000 (19:54 -0700)]
Merge "Fix bug 807"
levytamar82 [Thu, 24 Jul 2014 07:20:19 +0000 (00:20 -0700)]
Fix bug 807
in the sub_pixel_*variance* function the dst is aligned to 16 bytes and not
to 32 bytes - now load unaligned data
Change-Id: I2e0b9745543697efc56fefa32857ea10117af135
Tom Finegan [Fri, 8 Aug 2014 01:08:02 +0000 (18:08 -0700)]
test/vpxenc.sh: Enable the VP9 lossless test.
Change-Id: Iff403dfb4c8face0494f0dba840ce91f51e9ca04
James Zern [Thu, 7 Aug 2014 23:47:12 +0000 (16:47 -0700)]
Merge "vp9 ssvc test: Remove disabled tests."
Tom Finegan [Thu, 7 Aug 2014 23:46:43 +0000 (16:46 -0700)]
Merge "vpxenc tests: Relocate vpxenc wrapper."
James Zern [Thu, 7 Aug 2014 23:11:19 +0000 (16:11 -0700)]
Merge "Fix bug 806"
Alex Converse [Thu, 7 Aug 2014 22:54:26 +0000 (15:54 -0700)]
Fix active_map speed 6.
Fix the interaction between active map and reuse_inter_pred_sby. The
reuse_inter_pred_sby feature expects inter predictors to already be
built, but blocks with active map on skip this step.
Change-Id: Ibb2bf0d228f678935d82a0ede9cb0919ab7c8878
Alex Converse [Thu, 7 Aug 2014 22:52:34 +0000 (15:52 -0700)]
Cleanup SEG_LVL_SKIP handling in encode_superblock.
Change-Id: Ib7497ba08696765cbc1b2cc4218d37f4298f278c
Tom Finegan [Thu, 7 Aug 2014 17:53:52 +0000 (10:53 -0700)]
vp9 ssvc test: Remove disabled tests.
The disabled tests require a mode parameter that has been removed
from the ssvc example.
BUG=https://code.google.com/p/webm/issues/detail?id=833
Change-Id: I1a5d67628ed769cc5372c4a864f33d5569b6eb13
Jim Bankoski [Thu, 7 Aug 2014 22:10:25 +0000 (15:10 -0700)]
Merge "tools_common.c: unsigned signed mismatch addressed"
Dmitry Kovalev [Thu, 7 Aug 2014 21:55:54 +0000 (14:55 -0700)]
Cleaning up vp9_encodeframe.c.
Change-Id: Ia3001ae5c44faee3978fc3eb7a027cd9712a0373
Marco Paniconi [Thu, 7 Aug 2014 21:40:22 +0000 (14:40 -0700)]
Merge "vp8: for spatial resize, reallocate denoiser in vp8_allocate_comp."
levytamar82 [Thu, 24 Jul 2014 07:54:59 +0000 (00:54 -0700)]
Fix bug 806
in the function sad32x32x4d and sad64x64x4d the source is aligned to 16 bytes
and not to 32 bytes - the load is now unaligned.
Change-Id: I922fdba56d0936b5cf72e4503519f185645a168c
Dmitry Kovalev [Thu, 7 Aug 2014 21:12:32 +0000 (14:12 -0700)]
Merge "Removing direct references to VP9_COMP."
Marco Paniconi [Thu, 7 Aug 2014 20:53:50 +0000 (13:53 -0700)]
vp8: for spatial resize, reallocate denoiser in vp8_allocate_comp.
Change-Id: I1827efe2126501a4a5637ee3ae85233d7526bc0e
James Zern [Thu, 7 Aug 2014 19:34:11 +0000 (12:34 -0700)]
Merge "vp9_bitstream: make some function params const"
Tom Finegan [Thu, 7 Aug 2014 18:15:40 +0000 (11:15 -0700)]
vpxenc tests: Relocate vpxenc wrapper.
Move vpxenc() from tools_common.sh to vpxenc.sh.
Change-Id: If3bc1e8616f7e0334d39b560946e467482fe5cf4
Deb Mukherjee [Thu, 7 Aug 2014 18:15:38 +0000 (11:15 -0700)]
Merge "Changes hdr for profiles > 1 for intraonly frames"
James Zern [Sat, 2 Aug 2014 20:46:27 +0000 (13:46 -0700)]
vp9_bitstream: make some function params const
Change-Id: Ic49e290c7c88c55e730a0b2b0eb16ee3d0f120e7
Alex Converse [Thu, 7 Aug 2014 17:53:01 +0000 (10:53 -0700)]
Merge "vp9_cx_iface.c: warning missing default"
Dmitry Kovalev [Thu, 7 Aug 2014 17:18:08 +0000 (10:18 -0700)]
Merge "Adding ticks <-> timebase units conversion functions."
Deb Mukherjee [Tue, 5 Aug 2014 20:00:43 +0000 (13:00 -0700)]
Changes hdr for profiles > 1 for intraonly frames
Specifies the bit-depth, color sampling and colorspace
for intra only frames for profiles > 0
Also adds checks to ensure that profile 1 and 3 are
exclusively used for non 420 streams.
Change-Id: Icfb15fa1acccbce8f757c78fa8a2f60591360745
Yaowu Xu [Thu, 7 Aug 2014 14:16:39 +0000 (07:16 -0700)]
Merge "configure: add --enable-coefficient-range-checking"
Jim Bankoski [Thu, 7 Aug 2014 13:58:13 +0000 (06:58 -0700)]
tools_common.c: unsigned signed mismatch addressed
Change-Id: I919ca42794f13751ca099868e73892d9df64e45f
Jim Bankoski [Thu, 7 Aug 2014 13:53:24 +0000 (06:53 -0700)]
vp9_cx_iface.c: warning missing default
Change-Id: I18cbdad6031d14d4c1a818c0ab33bbedf7b33e19
Jim Bankoski [Thu, 7 Aug 2014 13:24:17 +0000 (06:24 -0700)]
Merge "vp9_rd.c: cleanup ugly expression"
Hangyu Kuang [Thu, 7 Aug 2014 00:44:53 +0000 (17:44 -0700)]
Merge "Make the api behavior conform to api spec."
Yaowu Xu [Tue, 29 Jul 2014 20:40:55 +0000 (13:40 -0700)]
configure: add --enable-coefficient-range-checking
This commit adds a configure time option used to enable strict error
checking in decoder to make sure intermediate stage cofficients of
inverse transforms are within valid range of signed 16 bit integer.
For valid VP9 input streams, intermediate stage coefficients should
always stay within the range of a signed 16 bit integer. Coefficients
can go out of this range for invalid/corrupt VP9 streams. However,
strictly checking this range for every intermediate coefficient can
be a burden for decoder, therefore such validation is only enabled
with configure option --enable-coefficient-range-checking.
Change-Id: I47d47c8c4e48a922c3d223ca59064f51b3f0f5ed
Jim Bankoski [Wed, 6 Aug 2014 23:34:47 +0000 (16:34 -0700)]
vp9_rd.c: cleanup ugly expression
Change-Id: I066763c2e3ae69ab772bb986da97af9b504f0329
Minghai Shang [Wed, 6 Aug 2014 23:18:21 +0000 (16:18 -0700)]
Merge "[spatial svc]Add is_spatial_svc() helper function."
Jingning Han [Wed, 6 Aug 2014 23:11:22 +0000 (16:11 -0700)]
Integrate fast txfm and quant path into skip_recode system
This commit integrates the fast transform and quantization process
into skip_recode scheme in the rate-distortion optimization loop.
Previously the fast transform and quantization process was only
enabled for non-RD coding flow.
Change-Id: Ib7db4d39b7033f1495c75897271f769799198ba8
Marco Paniconi [Wed, 6 Aug 2014 23:09:21 +0000 (16:09 -0700)]
Merge "vp8 bugfix: Reallocate denoiser when spatially resizing."
Minghai Shang [Wed, 6 Aug 2014 22:20:51 +0000 (15:20 -0700)]
[spatial svc]Add is_spatial_svc() helper function.
Change-Id: Ice5376100d8e27cbdaddfd3cd06898cedd2720fe
Dmitry Kovalev [Wed, 6 Aug 2014 21:58:53 +0000 (14:58 -0700)]
Adding ticks <-> timebase units conversion functions.
Change-Id: I75abd57367a7974a9fab8a727b2bbc54dea428c3
Marco Paniconi [Wed, 6 Aug 2014 18:14:51 +0000 (11:14 -0700)]
vp8 bugfix: Reallocate denoiser when spatially resizing.
This is needed to update the width/height and stride parameters
for the reference buffers that the denoiser uses.
Change-Id: Id51b3bdcb56bbbc8187865544ccd3d872a0d51fe
Adrian Grange [Wed, 6 Aug 2014 21:50:51 +0000 (14:50 -0700)]
Merge "Create function vp9_preserve_existing_gf"
Dmitry Kovalev [Wed, 6 Aug 2014 19:59:02 +0000 (12:59 -0700)]
Removing direct references to VP9_COMP.
Change-Id: Ic37624d807884e71f08b50fd04892f03f2708ba7
James Zern [Wed, 6 Aug 2014 19:25:06 +0000 (12:25 -0700)]
Merge "Write VP9E_SET_TUNE_CONTENT to the correct location."
James Zern [Wed, 6 Aug 2014 19:15:36 +0000 (12:15 -0700)]
Merge "vp9_subexp: remove vp9_compute_update_table()"
Hangyu Kuang [Fri, 1 Aug 2014 02:04:35 +0000 (19:04 -0700)]
Make the api behavior conform to api spec.
When no more data is available, vpx_codec_decode should
be called with NULL as data and 0 as data_sz.
vpx_codec_get_frame iterates over a list of the frames
available for display. The iterator storage should be initialized
to NULL to start the iteration. Iteration is complete when this
function returns NULL.
Also change the unit test to conform to the api spec.
Change-Id: I4b258b309f5df3d37d10c82f01492c0394181c2a