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

Commit a305c1c5 authored by Amy Zhang's avatar Amy Zhang
Browse files

Refactoring the Dvr data flow tests in the Tuner VTS

Test: atest VtsHalTvTunerV1_0TargetTest
Bug: 150989084
Change-Id: I496dccd9dddcf6043c05faee6fbe1f0418586bc4
parent d8040b86
Loading
Loading
Loading
Loading
+9 −7
Original line number Original line Diff line number Diff line
@@ -73,18 +73,22 @@ Return<Result> Filter::configure(const DemuxFilterSettings& settings) {
    switch (mType.mainType) {
    switch (mType.mainType) {
        case DemuxFilterMainType::TS:
        case DemuxFilterMainType::TS:
            mTpid = settings.ts().tpid;
            mTpid = settings.ts().tpid;
            if (mType.subType.tsFilterType() == DemuxTsFilterType::AUDIO ||
                mType.subType.tsFilterType() == DemuxTsFilterType::VIDEO) {
                mIsMediaFilter = true;
            }
            break;
            break;
        case DemuxFilterMainType::MMTP:
        case DemuxFilterMainType::MMTP:
            /*mmtpSettings*/
            if (mType.subType.mmtpFilterType() == DemuxMmtpFilterType::AUDIO ||
                mType.subType.mmtpFilterType() == DemuxMmtpFilterType::VIDEO) {
                mIsMediaFilter = true;
            }
            break;
            break;
        case DemuxFilterMainType::IP:
        case DemuxFilterMainType::IP:
            /*ipSettings*/
            break;
            break;
        case DemuxFilterMainType::TLV:
        case DemuxFilterMainType::TLV:
            /*tlvSettings*/
            break;
            break;
        case DemuxFilterMainType::ALP:
        case DemuxFilterMainType::ALP:
            /*alpSettings*/
            break;
            break;
        default:
        default:
            break;
            break;
@@ -241,9 +245,7 @@ void Filter::filterThreadLoop() {
}
}


void Filter::freeAvHandle() {
void Filter::freeAvHandle() {
    if (mType.mainType != DemuxFilterMainType::TS ||
    if (!mIsMediaFilter) {
        (mType.subType.tsFilterType() == DemuxTsFilterType::AUDIO &&
         mType.subType.tsFilterType() == DemuxTsFilterType::VIDEO)) {
        return;
        return;
    }
    }
    for (int i = 0; i < mFilterEvent.events.size(); i++) {
    for (int i = 0; i < mFilterEvent.events.size(); i++) {
+1 −0
Original line number Original line Diff line number Diff line
@@ -103,6 +103,7 @@ class Filter : public IFilter {
    uint32_t mFilterId;
    uint32_t mFilterId;
    uint32_t mBufferSize;
    uint32_t mBufferSize;
    DemuxFilterType mType;
    DemuxFilterType mType;
    bool mIsMediaFilter = false;
    DemuxFilterSettings mFilterSettings;
    DemuxFilterSettings mFilterSettings;


    uint16_t mTpid;
    uint16_t mTpid;
+3 −3
Original line number Original line Diff line number Diff line
@@ -186,14 +186,14 @@ void DvrCallback::stopRecordThread() {
    android::Mutex::Autolock autoLock(mRecordThreadLock);
    android::Mutex::Autolock autoLock(mRecordThreadLock);
}
}


AssertionResult DvrTests::openDvrInDemux(DvrType type) {
AssertionResult DvrTests::openDvrInDemux(DvrType type, uint32_t bufferSize) {
    Result status;
    Result status;
    EXPECT_TRUE(mDemux) << "Test with openDemux first.";
    EXPECT_TRUE(mDemux) << "Test with openDemux first.";


    // Create dvr callback
    // Create dvr callback
    mDvrCallback = new DvrCallback();
    mDvrCallback = new DvrCallback();


    mDemux->openDvr(type, FMQ_SIZE_1M, mDvrCallback, [&](Result result, const sp<IDvr>& dvr) {
    mDemux->openDvr(type, bufferSize, mDvrCallback, [&](Result result, const sp<IDvr>& dvr) {
        mDvr = dvr;
        mDvr = dvr;
        status = result;
        status = result;
    });
    });
+3 −3
Original line number Original line Diff line number Diff line
@@ -146,7 +146,7 @@ class DvrTests {
    void setService(sp<ITuner> tuner) { mService = tuner; }
    void setService(sp<ITuner> tuner) { mService = tuner; }
    void setDemux(sp<IDemux> demux) { mDemux = demux; }
    void setDemux(sp<IDemux> demux) { mDemux = demux; }


    void startPlaybackInputThread(string dataInputFile, PlaybackSettings settings) {
    void startPlaybackInputThread(string& dataInputFile, PlaybackSettings& settings) {
        PlaybackConf conf{
        PlaybackConf conf{
                .inputDataFile = dataInputFile,
                .inputDataFile = dataInputFile,
                .setting = settings,
                .setting = settings,
@@ -162,7 +162,7 @@ class DvrTests {
    void testRecordOutput() { mDvrCallback->testRecordOutput(); }
    void testRecordOutput() { mDvrCallback->testRecordOutput(); }
    void stopRecordThread() { mDvrCallback->stopPlaybackThread(); }
    void stopRecordThread() { mDvrCallback->stopPlaybackThread(); }


    AssertionResult openDvrInDemux(DvrType type);
    AssertionResult openDvrInDemux(DvrType type, uint32_t bufferSize);
    AssertionResult configDvr(DvrSettings setting);
    AssertionResult configDvr(DvrSettings setting);
    AssertionResult getDvrMQDescriptor();
    AssertionResult getDvrMQDescriptor();
    AssertionResult attachFilterToDvr(sp<IFilter> filter);
    AssertionResult attachFilterToDvr(sp<IFilter> filter);
+3 −3
Original line number Original line Diff line number Diff line
@@ -128,7 +128,7 @@ bool FilterCallback::dumpAvData(DemuxFilterMediaEvent event) {
    return true;
    return true;
}
}


AssertionResult FilterTests::openFilterInDemux(DemuxFilterType type) {
AssertionResult FilterTests::openFilterInDemux(DemuxFilterType type, uint32_t bufferSize) {
    Result status;
    Result status;
    EXPECT_TRUE(mDemux) << "Test with openDemux first.";
    EXPECT_TRUE(mDemux) << "Test with openDemux first.";


@@ -136,7 +136,7 @@ AssertionResult FilterTests::openFilterInDemux(DemuxFilterType type) {
    mFilterCallback = new FilterCallback();
    mFilterCallback = new FilterCallback();


    // Add filter to the local demux
    // Add filter to the local demux
    mDemux->openFilter(type, FMQ_SIZE_16M, mFilterCallback,
    mDemux->openFilter(type, bufferSize, mFilterCallback,
                       [&](Result result, const sp<IFilter>& filter) {
                       [&](Result result, const sp<IFilter>& filter) {
                           mFilter = filter;
                           mFilter = filter;
                           status = result;
                           status = result;
Loading