Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d06a5ee4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Use reference or pointer in tuner vts."

parents a11926de ac8f96b9
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

#include "FilterTests.h"

void FilterCallback::startFilterEventThread(DemuxFilterEvent event) {
void FilterCallback::startFilterEventThread(DemuxFilterEvent& event) {
    struct FilterThreadArgs* threadArgs =
            (struct FilterThreadArgs*)malloc(sizeof(struct FilterThreadArgs));
    threadArgs->user = this;
@@ -69,9 +69,8 @@ void FilterCallback::filterThreadLoop(DemuxFilterEvent& /* event */) {
    // end thread
}

bool FilterCallback::readFilterEventData() {
bool FilterCallback::readFilterEventData(const DemuxFilterEvent& filterEvent) {
    bool result = false;
    DemuxFilterEvent filterEvent = mFilterEvent;
    ALOGW("[vts] reading from filter FMQ or buffer %d", mFilterId);
    // todo separate filter handlers
    for (auto event : filterEvent.events) {
@@ -107,7 +106,7 @@ bool FilterCallback::readFilterEventData() {
    return result;
}

bool FilterCallback::dumpAvData(DemuxFilterMediaEvent event) {
bool FilterCallback::dumpAvData(DemuxFilterMediaEvent& event) {
    uint32_t length = event.dataLength;
    uint64_t dataId = event.avDataId;
    // read data from buffer pointed by a handle
@@ -127,7 +126,7 @@ bool FilterCallback::dumpAvData(DemuxFilterMediaEvent event) {
    return true;
}

bool FilterCallback::readRecordData(DemuxFilterTsRecordEvent event) {
bool FilterCallback::readRecordData(DemuxFilterTsRecordEvent& event) {
    ALOGD("[vts] got DemuxFilterTsRecordEvent with pid=%d.", event.pid.tPid());
    return true;
}
+5 −7
Original line number Diff line number Diff line
@@ -77,8 +77,7 @@ class FilterCallback : public IFilterCallback {
        android::Mutex::Autolock autoLock(mMsgLock);
        // Temprarily we treat the first coming back filter data on the matching pid a success
        // once all of the MQ are cleared, means we got all the expected output
        mFilterEvent = filterEvent;
        readFilterEventData();
        readFilterEventData(filterEvent);
        mPidFilterOutputCount++;
        // mFilterIdToMQ.erase(filterEvent.filterId);

@@ -96,15 +95,15 @@ class FilterCallback : public IFilterCallback {

    void testFilterDataOutput();

    void startFilterEventThread(DemuxFilterEvent event);
    void startFilterEventThread(DemuxFilterEvent& event);
    static void* __threadLoopFilter(void* threadArgs);
    void filterThreadLoop(DemuxFilterEvent& event);

    void updateFilterMQ(MQDesc& filterMQDescriptor);
    void updateGoldenOutputMap(string goldenOutputFile);
    bool readFilterEventData();
    bool dumpAvData(DemuxFilterMediaEvent event);
    bool readRecordData(DemuxFilterTsRecordEvent event);
    bool readFilterEventData(const DemuxFilterEvent& filterEvent);
    bool dumpAvData(DemuxFilterMediaEvent& event);
    bool readRecordData(DemuxFilterTsRecordEvent& event);

  private:
    struct FilterThreadArgs {
@@ -120,7 +119,6 @@ class FilterCallback : public IFilterCallback {
    sp<IFilter> mFilter;
    std::unique_ptr<FilterMQ> mFilterMQ;
    EventFlag* mFilterMQEventFlag;
    DemuxFilterEvent mFilterEvent;

    android::Mutex mMsgLock;
    android::Mutex mFilterOutputLock;
+8 −7
Original line number Diff line number Diff line
@@ -370,10 +370,11 @@ AssertionResult FrontendTests::tuneFrontend(FrontendConfig config, bool testWith
    mIsSoftwareFe = config.isSoftwareFe;
    bool result = true;
    if (mIsSoftwareFe && testWithDemux) {
        result &= mDvrTests.openDvrInDemux(mDvrConfig.type, mDvrConfig.bufferSize) == success();
        result &= mDvrTests.configDvrPlayback(mDvrConfig.settings) == success();
        result &= mDvrTests.getDvrPlaybackMQDescriptor() == success();
        mDvrTests.startPlaybackInputThread(mDvrConfig.playbackInputFile,
        result &=
                getDvrTests()->openDvrInDemux(mDvrConfig.type, mDvrConfig.bufferSize) == success();
        result &= getDvrTests()->configDvrPlayback(mDvrConfig.settings) == success();
        result &= getDvrTests()->getDvrPlaybackMQDescriptor() == success();
        getDvrTests()->startPlaybackInputThread(mDvrConfig.playbackInputFile,
                                                mDvrConfig.settings.playback());
        if (!result) {
            ALOGW("[vts] Software frontend dvr configure failed.");
@@ -397,8 +398,8 @@ AssertionResult FrontendTests::stopTuneFrontend(bool testWithDemux) {
    Result status;
    status = mFrontend->stopTune();
    if (mIsSoftwareFe && testWithDemux) {
        mDvrTests.stopPlaybackThread();
        mDvrTests.closeDvrPlayback();
        getDvrTests()->stopPlaybackThread();
        getDvrTests()->closeDvrPlayback();
    }
    return AssertionResult(status == Result::SUCCESS);
}
+8 −3
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ class FrontendTests {

    void setService(sp<ITuner> tuner) {
        mService = tuner;
        mDvrTests.setService(tuner);
        getDvrTests()->setService(tuner);
        getDefaultSoftwareFrontendPlaybackConfig(mDvrConfig);
    }

@@ -124,8 +124,8 @@ class FrontendTests {
    void tuneTest(FrontendConfig frontendConf);
    void scanTest(FrontendConfig frontend, FrontendScanType type);

    void setDvrTests(DvrTests dvrTests) { mDvrTests = dvrTests; }
    void setDemux(sp<IDemux> demux) { mDvrTests.setDemux(demux); }
    void setDvrTests(DvrTests* dvrTests) { mExternalDvrTests = dvrTests; }
    void setDemux(sp<IDemux> demux) { getDvrTests()->setDemux(demux); }
    void setSoftwareFrontendDvrConfig(DvrConfig conf) { mDvrConfig = conf; }

  protected:
@@ -147,11 +147,16 @@ class FrontendTests {
        dvrConfig.settings.playback(playbackSettings);
    }

    DvrTests* getDvrTests() {
        return (mExternalDvrTests != nullptr ? mExternalDvrTests : &mDvrTests);
    }

    sp<IFrontend> mFrontend;
    FrontendInfo mFrontendInfo;
    sp<FrontendCallback> mFrontendCallback;
    hidl_vec<FrontendId> mFeIds;

    DvrTests* mExternalDvrTests = nullptr;
    DvrTests mDvrTests;
    bool mIsSoftwareFe = false;
    DvrConfig mDvrConfig;
+1 −1
Original line number Diff line number Diff line
@@ -177,7 +177,7 @@ void TunerRecordHidlTest::recordSingleFilterTest(FilterConfig filterConf,
            mFrontendTests.setSoftwareFrontendDvrConfig(dvrMap[record.dvrSoftwareFeId]);
        }
        ASSERT_TRUE(mDemuxTests.setDemuxFrontendDataSource(feId));
        mFrontendTests.setDvrTests(mDvrTests);
        mFrontendTests.setDvrTests(&mDvrTests);
    } else {
        dvrSourceConfig = dvrMap[record.dvrSourceId];
        ASSERT_TRUE(mDvrTests.openDvrInDemux(dvrSourceConfig.type, dvrSourceConfig.bufferSize));
Loading