GetPresentationPosition returns the last time a sample was written to
the hardware.
Calling it on a stop stream should return 0 sample written, but the
timestamps of that measure is of little importance.
Thus allow this timestamp to be 0 indicating that the measure was never
actually made.
Test: vts-tradefed run vts --module VtsHalAudioV2_0Target
Test: call/play music/record/video...
Bug: 36311550
Change-Id: I3c33b60f98e8cbea269a7739cc1889af932dcff5
Signed-off-by: Kevin Rocard <krocard@google.com>
getDevice does not return a Result, thus it can not return NOT_SUPPORTED.
Consider NONE as not supported.
Test: vts-tradefed run vts --module VtsHalAudioV2_0Target
Test: call/play music/record/video...
Bug: 36311550
Change-Id: I3b6f7a1fbc1d1535faf549f5b031461cb39d1722
Signed-off-by: Kevin Rocard <krocard@google.com>
DebugDump does not return an error code, thus the implementation can not
return not implemented.
As a result, the test can not expect any output from the function.
Only test that the call does not crash and add a log if the function is
probably not implemented in the test.
Test: vts-tradefed run vts --module VtsHalAudioV2_0Target
Test: call/play music/record/video...
Bug: 36311550
Change-Id: I2c18958bceb1eb638491f9afce9d8e8025ccd3ec
Signed-off-by: Kevin Rocard <krocard@google.com>
Return an error if framesCount or frameSize are null to avoid a division
by zero when calculating the buffer size.
The message queues are allocated with a buffer size but if two big they will
assert not return an error.
Thus take some margin on the buffer size check.
Note that both function should be refactored as 99% identical.
Test: vts-tradefed run vts --module VtsHalAudioV2_0Target
Test: call/play music/record/video...
Bug: 36311550
Change-Id: I0576e9016ef2e567c8d4e171c6237883d9865db9
Signed-off-by: Kevin Rocard <krocard@google.com>
Those functions had lots of copy paste on errors and
the following patch will even add more error detections.
Refactor the hidl_cb call to avoid all duplication.
Note that both function should be refactored as 99% identical.
Test: vts-tradefed run vts --module VtsHalAudioV2_0Target
Test: call/play music/record/video...
Bug: 36311550
Change-Id: I40d6926b4f9f5e3aba51e878f55fb013f4ca09c1
Signed-off-by: Kevin Rocard <krocard@google.com>
Some values of AudioMode are exposed although implementation detail.
Make sure the client can not use them.
Test: vts-tradefed run vts --module VtsHalAudioV2_0Target
Test: call/play music/record/video...
Bug: 36311550
Change-Id: If513c2a06efa8a92459f0af80c63232fc63302b0
Signed-off-by: Kevin Rocard <krocard@google.com>
setHwAvSync and setParameters were implemented in the pre-hidl interface
as set_parameters.
Unfortunately set_parameters did not return an error if a key was not
implemented.
As most HIDL implementation will be a wrapper around the pre-hidl
interface, allow those functions to return OK on not implemented key.
Test: vts-tradefed run vts --module VtsHalAudioV2_0Target
Test: call/play music/record/video...
Bug: 36311550
Change-Id: Icfcaa02b7d63e03375fddc90dc5a803754c1874f
Signed-off-by: Kevin Rocard <krocard@google.com>
When sending parameters to the HAL (and some getters are implemented
with getParameters), the client expect a status consistent
with the other HIDL methods. Ie: not implemented or success and failure.
Unfortunately, the legacy get_parameter interface, which currently most
Audio HIDL implementation are a wrapper around, do not return such error
code.
Get parameters return a list of key values.
- If a requested key does not return a key value pair, consider it not
implemented
- If a requested key returns a key not followed by a correct value,
consider it a failure
- otherwise it is a success
Test: vts-tradefed run vts --module VtsHalAudioV2_0Target
Test: call/play music/record/video...
Bug: 36311550
Change-Id: Id6711e9c1974fe5a336b6de83a9b6d14f74437c9
Signed-off-by: Kevin Rocard <krocard@google.com>
In order to avoid style inconsistency as well as non functional
modification in following patches,
fix the style of all files modified for the fix of the VTS tests.
Patch generated with:
$ clang-format -i --style file -- <file list>
Bug: 36311550
Test: compile
Change-Id: I53dbcdabf959a6100e34a2ee4d0f951d525049cb
GPS prefix; also made some comment fixes in IGnssMeasurementCallback.hal
BUG: 37946308
Test: Existing tests still pass.
Change-Id: Ia29c3f3943f0373e18634ddeede2ff5eb8998050
1) IRadio.setAllowedCarriers
Fix IRadio.setAllowedCarriers to pass no restrictions.
Passing restrictions will block all other SIM cards until
a new IRadio.setAllowedCarriers with no restriction is
invoked. Even factory reset will not recover.
2) IRadio.nvResetConfig
IRadio.nvResetConfig with ResetNvType RELOAD causes radio restart.
All subsuquent scripts fail with cause RADIO_NOT_AVAILABLE.
Fix to use ResetNvType ERASE which does not restart the radio.
Test: VTS
Bug: 37946160
Change-Id: Ib671758414cc97e1a596358306f89eed13918c48
To fix the build for new devices.
Bug: 36097717
Bug: 35356977
Test: on master, m system_compatibility_matrix.xml -j
Change-Id: Ie7a3da46930b3627f4eb6b77c3ba8e50fa2b21ed
This is intended to clarify whether surprising zeroing out of HAL
control structures happens to a particular HAL module, or to any
HAL module at random.
Unfortunately, the crash itself can't be prevented as
audioflinger can't work around a HAL outage, and needs to be
restarted anyway.
Bug: 36225019
Test: verified that the logged string contains the information
Change-Id: I5843d89b4e5385b4ce269f72b5891ccb646daeba
This reverts commit e4228e7aa6.
Further analysis of the bug has shown that the problem is not related
to the use of multiple inheritance.
Bug: 36225019
Change-Id: Icdcaf84061c0ecf29f891521bd961c3ee89f1cfc
Bug: 32023356
Test: make vts.
preload elementary stream information during decoding
instead of using extractor to get the frame boundaries, frame
flags and timestamp information, they are read from a metadata
file in the resources directory on demand. Instead of doing it
on demand, we load the entire file information and use it. This
modification comes in handy for future test fixtures
Change-Id: I3a434018111eb66008f17c24b4c2c16d0db22ed1
bug fix: wait on input consumption
after queuing all the frames that need to be processed by
the component, the application continues its job of deinitializing
the component before ensuring all the inputs were decoded.
This is corrected.
Change-Id: I09a11fd5badabe2889ba243383145be07be51953
add end of stream test for audio decoder
component is provided an input with nFlags field set OMX_BUFFERFLAG_EOS.
the application expects this flag to be returned via one of its output
buffers. this flag is passed to the component at different timings to test
the robustness.
Change-Id: I00e3fdd5ef50d93f2620d8b0e9fc3c358de428d7
add timestamp deviation test for decoder components
the list of timestamps received from the component is
compared with the list provided to the component for any
differences
Change-Id: Ifcc16b7a00f58e1c1dfdba9f538d307ddcbfcc71
add option to configure resource files path
default location of resource files is /sdcard/media/. client can provide
choice of this location via the option -P.
example: VtsHalMediaOmxV1_0TargetVideoDecTest -C <component> -R <role> -P /sdcard/res/
Change-Id: Ib8d3af03c19a171e3bbb9839f7e331cbe576b24b
add flush test for audio & video dec components
while decoding a group of frames, flush call is made and it is
checked if all the i/o buffers are sent back to client. we then
seek to the next keyframe and test for decoding. monotonous
increase of timestamps is ensured.
Change-Id: Id48c76c157ebdfdefd3003e57519da3bd9715973
Bug: 35915444
Test: Boot and run the test successfully on sailfish
Change-Id: I5965d1ffbc4f1a89454f962698ce67adc4c35293
Signed-off-by: Sandeep Patil <sspatil@google.com>
When setLayerBuffer() was called on a layer previously destroyed by
destroyLayer() the code would crash. Instead, return an error.
Bug: 37159844
Test: Ran vr flinger in a way that would trigger the crash, and
confirmed that I now get error logs instead of crashing. Unfortunately
the error code is consumed by the Composer wrapper class and not
propagated back to the caller, but that's a separate issue (b/37901601).
Change-Id: I75a5b954d47a1deac44d03851f60f347085eca89
Additionally adds log markers at test start and ends tests early which
fail necessary preconditions.
Test: Run against default and sample EVS drivers
bug: 37687125
Change-Id: Ie34674df5fe099dd4f380df485801ab0288147e9
We still not sure what causes crashes in Device::get|setParam*,
but it seems that it is somehow caused by the fact that the parameters
code is in a separate class with virtual methods, from which
Device class inherits along with IDevice interface.
The workaround is to substitute multiple inheritance with
delegation in Device class. Hopefully this will either eliminate
crashes or make the underlying reasons more clear.
Some of the code got reformatted by clang-format as a presubmit
requirement.
Bug: 36225019
Test: make
Change-Id: Id785c3565bbebd5acc26ca46472961698d9c6208
Note, current.txt change (as opposed to addition) is only allowed
because this is an unreleased interface.
Bug: 32593292
Test: builds
Change-Id: I95381d1a3a456aeadbc472e2dbbffde19cb43e6c