!3450 参考关系解析UT补充

Merge pull request !3450 from 彼此彼此/cyc0920_1
This commit is contained in:
openharmony_ci 2024-09-24 08:37:26 +00:00 committed by Gitee
commit 213fb8e112
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
5 changed files with 292 additions and 1 deletions

View File

@ -63,7 +63,8 @@ enum struct MP4Scene : uint32_t {
LTR_FRAME_HEVC,
TWO_LAYER_FRAME_HEVC,
THREE_LAYER_FRAME_HEVC,
FOUR_LAYER_FRAME_HEVC
FOUR_LAYER_FRAME_HEVC,
SDTP_EXTENDED_HEVC
};
enum struct WorkPts : uint32_t {

View File

@ -0,0 +1,252 @@
/*
* Copyright (C) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef LAYER_INFO_SDTP_EXTENDED_HEVC_H
#define LAYER_INFO_SDTP_EXTENDED_HEVC_H
#include <iostream>
auto GopInfoStdpExtendedHevc = R"([
{"gopId": 0, "gopSize": 30, "startFrameId": 0},
{"gopId": 1, "gopSize": 30, "startFrameId": 30},
{"gopId": 2, "gopSize": 30, "startFrameId": 60},
{"gopId": 3, "gopSize": 30, "startFrameId": 90},
{"gopId": 4, "gopSize": 30, "startFrameId": 120},
{"gopId": 5, "gopSize": 30, "startFrameId": 150},
{"gopId": 6, "gopSize": 30, "startFrameId": 180},
{"gopId": 7, "gopSize": 7, "startFrameId": 210}
])"_json;
auto FrameLayerInfoStdpExtendedHevc = R"([
{"frameId": 0, "dts": 0, "layer": 4, "discardable": false},
{"frameId": 1, "dts": 33333, "layer": 2, "discardable": true},
{"frameId": 2, "dts": 66666, "layer": 1, "discardable": true},
{"frameId": 3, "dts": 100000, "layer": 0, "discardable": true},
{"frameId": 4, "dts": 133333, "layer": 3, "discardable": false},
{"frameId": 5, "dts": 166666, "layer": 2, "discardable": true},
{"frameId": 6, "dts": 200000, "layer": 1, "discardable": true},
{"frameId": 7, "dts": 233333, "layer": 0, "discardable": true},
{"frameId": 8, "dts": 266666, "layer": 3, "discardable": false},
{"frameId": 9, "dts": 300000, "layer": 2, "discardable": true},
{"frameId": 10, "dts": 333333, "layer": 1, "discardable": true},
{"frameId": 11, "dts": 366666, "layer": 0, "discardable": true},
{"frameId": 12, "dts": 400000, "layer": 3, "discardable": false},
{"frameId": 13, "dts": 433333, "layer": 2, "discardable": true},
{"frameId": 14, "dts": 466666, "layer": 1, "discardable": true},
{"frameId": 15, "dts": 500000, "layer": 0, "discardable": true},
{"frameId": 16, "dts": 533333, "layer": 3, "discardable": false},
{"frameId": 17, "dts": 566666, "layer": 2, "discardable": true},
{"frameId": 18, "dts": 600000, "layer": 1, "discardable": true},
{"frameId": 19, "dts": 633333, "layer": 0, "discardable": true},
{"frameId": 20, "dts": 666666, "layer": 3, "discardable": false},
{"frameId": 21, "dts": 700000, "layer": 2, "discardable": true},
{"frameId": 22, "dts": 733333, "layer": 1, "discardable": true},
{"frameId": 23, "dts": 766666, "layer": 0, "discardable": true},
{"frameId": 24, "dts": 800000, "layer": 3, "discardable": false},
{"frameId": 25, "dts": 833333, "layer": 2, "discardable": true},
{"frameId": 26, "dts": 866666, "layer": 1, "discardable": true},
{"frameId": 27, "dts": 900000, "layer": 0, "discardable": true},
{"frameId": 28, "dts": 933333, "layer": 1, "discardable": false},
{"frameId": 29, "dts": 966666, "layer": 0, "discardable": true},
{"frameId": 30, "dts": 1000000, "layer": 4, "discardable": false},
{"frameId": 31, "dts": 1033333, "layer": 2, "discardable": true},
{"frameId": 32, "dts": 1066666, "layer": 1, "discardable": true},
{"frameId": 33, "dts": 1100000, "layer": 0, "discardable": true},
{"frameId": 34, "dts": 1133333, "layer": 3, "discardable": false},
{"frameId": 35, "dts": 1166666, "layer": 2, "discardable": true},
{"frameId": 36, "dts": 1200000, "layer": 1, "discardable": true},
{"frameId": 37, "dts": 1233333, "layer": 0, "discardable": true},
{"frameId": 38, "dts": 1266666, "layer": 3, "discardable": false},
{"frameId": 39, "dts": 1300000, "layer": 2, "discardable": true},
{"frameId": 40, "dts": 1333333, "layer": 1, "discardable": true},
{"frameId": 41, "dts": 1366666, "layer": 0, "discardable": true},
{"frameId": 42, "dts": 1400000, "layer": 3, "discardable": false},
{"frameId": 43, "dts": 1433333, "layer": 2, "discardable": true},
{"frameId": 44, "dts": 1466666, "layer": 1, "discardable": true},
{"frameId": 45, "dts": 1500000, "layer": 0, "discardable": true},
{"frameId": 46, "dts": 1533333, "layer": 3, "discardable": false},
{"frameId": 47, "dts": 1566655, "layer": 2, "discardable": true},
{"frameId": 48, "dts": 1599988, "layer": 1, "discardable": true},
{"frameId": 49, "dts": 1633333, "layer": 0, "discardable": true},
{"frameId": 50, "dts": 1666655, "layer": 3, "discardable": false},
{"frameId": 51, "dts": 1699988, "layer": 2, "discardable": true},
{"frameId": 52, "dts": 1733322, "layer": 1, "discardable": true},
{"frameId": 53, "dts": 1766655, "layer": 0, "discardable": true},
{"frameId": 54, "dts": 1799988, "layer": 3, "discardable": false},
{"frameId": 55, "dts": 1833322, "layer": 2, "discardable": true},
{"frameId": 56, "dts": 1866655, "layer": 1, "discardable": true},
{"frameId": 57, "dts": 1899988, "layer": 0, "discardable": true},
{"frameId": 58, "dts": 1933322, "layer": 1, "discardable": false},
{"frameId": 59, "dts": 1966655, "layer": 0, "discardable": true},
{"frameId": 60, "dts": 1999988, "layer": 4, "discardable": false},
{"frameId": 61, "dts": 2033322, "layer": 2, "discardable": true},
{"frameId": 62, "dts": 2066655, "layer": 1, "discardable": true},
{"frameId": 63, "dts": 2099988, "layer": 0, "discardable": true},
{"frameId": 64, "dts": 2133322, "layer": 3, "discardable": false},
{"frameId": 65, "dts": 2166655, "layer": 2, "discardable": true},
{"frameId": 66, "dts": 2199988, "layer": 1, "discardable": true},
{"frameId": 67, "dts": 2233322, "layer": 0, "discardable": true},
{"frameId": 68, "dts": 2266655, "layer": 3, "discardable": false},
{"frameId": 69, "dts": 2299988, "layer": 2, "discardable": true},
{"frameId": 70, "dts": 2333322, "layer": 1, "discardable": true},
{"frameId": 71, "dts": 2366655, "layer": 0, "discardable": true},
{"frameId": 72, "dts": 2399988, "layer": 3, "discardable": false},
{"frameId": 73, "dts": 2433322, "layer": 2, "discardable": true},
{"frameId": 74, "dts": 2466655, "layer": 1, "discardable": true},
{"frameId": 75, "dts": 2499988, "layer": 0, "discardable": true},
{"frameId": 76, "dts": 2533322, "layer": 3, "discardable": false},
{"frameId": 77, "dts": 2566655, "layer": 2, "discardable": true},
{"frameId": 78, "dts": 2599988, "layer": 1, "discardable": true},
{"frameId": 79, "dts": 2633322, "layer": 0, "discardable": true},
{"frameId": 80, "dts": 2666655, "layer": 3, "discardable": false},
{"frameId": 81, "dts": 2699988, "layer": 2, "discardable": true},
{"frameId": 82, "dts": 2733322, "layer": 1, "discardable": true},
{"frameId": 83, "dts": 2766655, "layer": 0, "discardable": true},
{"frameId": 84, "dts": 2799988, "layer": 3, "discardable": false},
{"frameId": 85, "dts": 2833322, "layer": 2, "discardable": true},
{"frameId": 86, "dts": 2866655, "layer": 1, "discardable": true},
{"frameId": 87, "dts": 2899988, "layer": 0, "discardable": true},
{"frameId": 88, "dts": 2933322, "layer": 1, "discardable": false},
{"frameId": 89, "dts": 2966655, "layer": 0, "discardable": true},
{"frameId": 90, "dts": 2999988, "layer": 4, "discardable": false},
{"frameId": 91, "dts": 3033322, "layer": 2, "discardable": true},
{"frameId": 92, "dts": 3066655, "layer": 1, "discardable": true},
{"frameId": 93, "dts": 3099988, "layer": 0, "discardable": true},
{"frameId": 94, "dts": 3133322, "layer": 3, "discardable": false},
{"frameId": 95, "dts": 3166655, "layer": 2, "discardable": true},
{"frameId": 96, "dts": 3199988, "layer": 1, "discardable": true},
{"frameId": 97, "dts": 3233322, "layer": 0, "discardable": true},
{"frameId": 98, "dts": 3266655, "layer": 3, "discardable": false},
{"frameId": 99, "dts": 3299988, "layer": 2, "discardable": true},
{"frameId": 100, "dts": 3333322, "layer": 1, "discardable": true},
{"frameId": 101, "dts": 3366655, "layer": 0, "discardable": true},
{"frameId": 102, "dts": 3399988, "layer": 3, "discardable": false},
{"frameId": 103, "dts": 3433322, "layer": 2, "discardable": true},
{"frameId": 104, "dts": 3466655, "layer": 1, "discardable": true},
{"frameId": 105, "dts": 3499988, "layer": 0, "discardable": true},
{"frameId": 106, "dts": 3533322, "layer": 3, "discardable": false},
{"frameId": 107, "dts": 3566655, "layer": 2, "discardable": true},
{"frameId": 108, "dts": 3599988, "layer": 1, "discardable": true},
{"frameId": 109, "dts": 3633322, "layer": 0, "discardable": true},
{"frameId": 110, "dts": 3666655, "layer": 3, "discardable": false},
{"frameId": 111, "dts": 3699988, "layer": 2, "discardable": true},
{"frameId": 112, "dts": 3733322, "layer": 1, "discardable": true},
{"frameId": 113, "dts": 3766655, "layer": 0, "discardable": true},
{"frameId": 114, "dts": 3799988, "layer": 3, "discardable": false},
{"frameId": 115, "dts": 3833322, "layer": 2, "discardable": true},
{"frameId": 116, "dts": 3866655, "layer": 1, "discardable": true},
{"frameId": 117, "dts": 3899988, "layer": 0, "discardable": true},
{"frameId": 118, "dts": 3933322, "layer": 1, "discardable": false},
{"frameId": 119, "dts": 3966655, "layer": 0, "discardable": true},
{"frameId": 120, "dts": 3999988, "layer": 4, "discardable": false},
{"frameId": 121, "dts": 4033322, "layer": 2, "discardable": true},
{"frameId": 122, "dts": 4066655, "layer": 1, "discardable": true},
{"frameId": 123, "dts": 4099988, "layer": 0, "discardable": true},
{"frameId": 124, "dts": 4133322, "layer": 3, "discardable": false},
{"frameId": 125, "dts": 4166655, "layer": 2, "discardable": true},
{"frameId": 126, "dts": 4199988, "layer": 1, "discardable": true},
{"frameId": 127, "dts": 4233322, "layer": 0, "discardable": true},
{"frameId": 128, "dts": 4266655, "layer": 3, "discardable": false},
{"frameId": 129, "dts": 4299988, "layer": 2, "discardable": true},
{"frameId": 130, "dts": 4333322, "layer": 1, "discardable": true},
{"frameId": 131, "dts": 4366655, "layer": 0, "discardable": true},
{"frameId": 132, "dts": 4399988, "layer": 3, "discardable": false},
{"frameId": 133, "dts": 4433322, "layer": 2, "discardable": true},
{"frameId": 134, "dts": 4466655, "layer": 1, "discardable": true},
{"frameId": 135, "dts": 4499988, "layer": 0, "discardable": true},
{"frameId": 136, "dts": 4533322, "layer": 3, "discardable": false},
{"frameId": 137, "dts": 4566655, "layer": 2, "discardable": true},
{"frameId": 138, "dts": 4599977, "layer": 1, "discardable": true},
{"frameId": 139, "dts": 4633311, "layer": 0, "discardable": true},
{"frameId": 140, "dts": 4666655, "layer": 3, "discardable": false},
{"frameId": 141, "dts": 4699977, "layer": 2, "discardable": true},
{"frameId": 142, "dts": 4733311, "layer": 1, "discardable": true},
{"frameId": 143, "dts": 4766644, "layer": 0, "discardable": true},
{"frameId": 144, "dts": 4799977, "layer": 3, "discardable": false},
{"frameId": 145, "dts": 4833311, "layer": 2, "discardable": true},
{"frameId": 146, "dts": 4866644, "layer": 1, "discardable": true},
{"frameId": 147, "dts": 4899977, "layer": 0, "discardable": true},
{"frameId": 148, "dts": 4933311, "layer": 1, "discardable": false},
{"frameId": 149, "dts": 4966644, "layer": 0, "discardable": true},
{"frameId": 150, "dts": 4999977, "layer": 4, "discardable": false},
{"frameId": 151, "dts": 5033311, "layer": 2, "discardable": true},
{"frameId": 152, "dts": 5066644, "layer": 1, "discardable": true},
{"frameId": 153, "dts": 5099977, "layer": 0, "discardable": true},
{"frameId": 154, "dts": 5133311, "layer": 3, "discardable": false},
{"frameId": 155, "dts": 5166644, "layer": 2, "discardable": true},
{"frameId": 156, "dts": 5199977, "layer": 1, "discardable": true},
{"frameId": 157, "dts": 5233311, "layer": 0, "discardable": true},
{"frameId": 158, "dts": 5266644, "layer": 3, "discardable": false},
{"frameId": 159, "dts": 5299977, "layer": 2, "discardable": true},
{"frameId": 160, "dts": 5333311, "layer": 1, "discardable": true},
{"frameId": 161, "dts": 5366644, "layer": 0, "discardable": true},
{"frameId": 162, "dts": 5399977, "layer": 3, "discardable": false},
{"frameId": 163, "dts": 5433311, "layer": 2, "discardable": true},
{"frameId": 164, "dts": 5466644, "layer": 1, "discardable": true},
{"frameId": 165, "dts": 5499977, "layer": 0, "discardable": true},
{"frameId": 166, "dts": 5533311, "layer": 3, "discardable": false},
{"frameId": 167, "dts": 5566644, "layer": 2, "discardable": true},
{"frameId": 168, "dts": 5599977, "layer": 1, "discardable": true},
{"frameId": 169, "dts": 5633311, "layer": 0, "discardable": true},
{"frameId": 170, "dts": 5666644, "layer": 3, "discardable": false},
{"frameId": 171, "dts": 5699977, "layer": 2, "discardable": true},
{"frameId": 172, "dts": 5733311, "layer": 1, "discardable": true},
{"frameId": 173, "dts": 5766644, "layer": 0, "discardable": true},
{"frameId": 174, "dts": 5799977, "layer": 3, "discardable": false},
{"frameId": 175, "dts": 5833311, "layer": 2, "discardable": true},
{"frameId": 176, "dts": 5866644, "layer": 1, "discardable": true},
{"frameId": 177, "dts": 5899977, "layer": 0, "discardable": true},
{"frameId": 178, "dts": 5933311, "layer": 1, "discardable": false},
{"frameId": 179, "dts": 5966644, "layer": 0, "discardable": true},
{"frameId": 180, "dts": 5999977, "layer": 4, "discardable": false},
{"frameId": 181, "dts": 6033311, "layer": 2, "discardable": true},
{"frameId": 182, "dts": 6066644, "layer": 1, "discardable": true},
{"frameId": 183, "dts": 6099977, "layer": 0, "discardable": true},
{"frameId": 184, "dts": 6133311, "layer": 3, "discardable": false},
{"frameId": 185, "dts": 6166644, "layer": 2, "discardable": true},
{"frameId": 186, "dts": 6199977, "layer": 1, "discardable": true},
{"frameId": 187, "dts": 6233311, "layer": 0, "discardable": true},
{"frameId": 188, "dts": 6266644, "layer": 3, "discardable": false},
{"frameId": 189, "dts": 6299977, "layer": 2, "discardable": true},
{"frameId": 190, "dts": 6333311, "layer": 1, "discardable": true},
{"frameId": 191, "dts": 6366644, "layer": 0, "discardable": true},
{"frameId": 192, "dts": 6399977, "layer": 3, "discardable": false},
{"frameId": 193, "dts": 6433311, "layer": 2, "discardable": true},
{"frameId": 194, "dts": 6466644, "layer": 1, "discardable": true},
{"frameId": 195, "dts": 6499977, "layer": 0, "discardable": true},
{"frameId": 196, "dts": 6533311, "layer": 3, "discardable": false},
{"frameId": 197, "dts": 6566644, "layer": 2, "discardable": true},
{"frameId": 198, "dts": 6599977, "layer": 1, "discardable": true},
{"frameId": 199, "dts": 6633311, "layer": 0, "discardable": true},
{"frameId": 200, "dts": 6666644, "layer": 3, "discardable": false},
{"frameId": 201, "dts": 6699977, "layer": 2, "discardable": true},
{"frameId": 202, "dts": 6733311, "layer": 1, "discardable": true},
{"frameId": 203, "dts": 6766644, "layer": 0, "discardable": true},
{"frameId": 204, "dts": 6799977, "layer": 3, "discardable": false},
{"frameId": 205, "dts": 6833311, "layer": 2, "discardable": true},
{"frameId": 206, "dts": 6866644, "layer": 1, "discardable": true},
{"frameId": 207, "dts": 6899977, "layer": 0, "discardable": true},
{"frameId": 208, "dts": 6933311, "layer": 1, "discardable": false},
{"frameId": 209, "dts": 6966644, "layer": 0, "discardable": true},
{"frameId": 210, "dts": 6999977, "layer": 3, "discardable": false},
{"frameId": 211, "dts": 7033311, "layer": 2, "discardable": true},
{"frameId": 212, "dts": 7066644, "layer": 1, "discardable": true},
{"frameId": 213, "dts": 7099977, "layer": 0, "discardable": true},
{"frameId": 214, "dts": 7133311, "layer": 2, "discardable": false},
{"frameId": 215, "dts": 7166644, "layer": 1, "discardable": true},
{"frameId": 216, "dts": 7199977, "layer": 0, "discardable": true}
])"_json;
#endif //LAYER_INFO_SDTP_EXTENDED_HEVC_H

View File

@ -47,6 +47,7 @@
#include "layer_info_three_layer_hevc.h"
#include "layer_info_two_layer_avc.h"
#include "layer_info_two_layer_hevc.h"
#include "layer_info_sdtp_extended_hevc.h"
#include <random>
using namespace std;
@ -240,6 +241,10 @@ void InnerDemuxerParserSample::InitHEVCScene(MP4Scene scene)
gopJson_ = GopInfoFourLayerHevc;
frameLayerJson_ = FrameLayerInfoFourLayerHevc;
break;
case MP4Scene::SDTP_EXTENDED_HEVC:
gopJson_ = GopInfoStdpExtendedHevc;
frameLayerJson_ = FrameLayerInfoStdpExtendedHevc;
break;
default:
break;
}

View File

@ -44,6 +44,7 @@ string g_file_one_i_frame_hevc = TEST_FILE_PATH + string("demuxer_parser_one_i_f
string g_file_all_i_frame_hevc = TEST_FILE_PATH + string("demuxer_parser_all_i_frame_hevc.mp4");
string g_file_ipb_frame_hevc = TEST_FILE_PATH + string("demuxer_parser_ipb_frame_hevc.mp4");
string g_file_sdtp_frame_hevc = TEST_FILE_PATH + string("demuxer_parser_sdtp_frame_hevc.mp4");
string g_file_sdtp_extended_hevc = TEST_FILE_PATH + string("demuxer_parser_sdtp_extended_hevc.mp4");
string g_file_ltr_frame_hevc = TEST_FILE_PATH + string("demuxer_parser_ltr_frame_hevc.mp4");
string g_file_2_layer_frame_hevc = TEST_FILE_PATH + string("demuxer_parser_2_layer_frame_hevc.mp4");
string g_file_3_layer_frame_hevc = TEST_FILE_PATH + string("demuxer_parser_3_layer_frame_hevc.mp4");
@ -677,6 +678,22 @@ HWTEST_F(InnerParsercNdkTest, DEMUXER_REFERENCE_H265_FUNC_0040, TestSize.Level1)
ASSERT_TRUE(parserSample->RunSeekScene(WorkPts::RANDOM_PTS));
}
/**
* @tc.number : DEMUXER_REFERENCE_H265_FUNC_0050
* @tc.name : Pts corresponding to the Nth frame for startTimeMs in sdtp-extended seek scene
* @tc.desc : func test
*/
HWTEST_F(InnerParsercNdkTest, DEMUXER_REFERENCE_H265_FUNC_0050, TestSize.Level1)
{
if (access(HEVC_LIB_PATH.c_str(), F_OK) != 0) {
return;
}
shared_ptr<InnerDemuxerParserSample> parserSample =
make_shared<InnerDemuxerParserSample>(g_file_sdtp_extended_hevc);
parserSample->InitParameter(MP4Scene::SDTP_EXTENDED_HEVC);
ASSERT_TRUE(parserSample->RunSeekScene(WorkPts::RANDOM_PTS));
}
/**
* @tc.number : DEMUXER_REFERENCE_H265_FUNC_0060
* @tc.name : Pts corresponding to the Nth frame for startTimeMs in 2-layer-frame seek scene
@ -987,6 +1004,22 @@ HWTEST_F(InnerParsercNdkTest, DEMUXER_REFERENCE_H265_FUNC_0240, TestSize.Level1)
ASSERT_TRUE(parserSample->RunSpeedScene(WorkPts::RANDOM_PTS));
}
/**
* @tc.number : DEMUXER_REFERENCE_H265_FUNC_0250
* @tc.name : Randomly generating Pts corresponding to the N existing positions frame in sdtp-extended
* @tc.desc : func test
*/
HWTEST_F(InnerParsercNdkTest, DEMUXER_REFERENCE_H265_FUNC_0250, TestSize.Level1)
{
if (access(HEVC_LIB_PATH.c_str(), F_OK) != 0) {
return;
}
shared_ptr<InnerDemuxerParserSample> parserSample =
make_shared<InnerDemuxerParserSample>(g_file_sdtp_extended_hevc);
parserSample->InitParameter(MP4Scene::SDTP_EXTENDED_HEVC);
ASSERT_TRUE(parserSample->RunSpeedScene(WorkPts::RANDOM_PTS));
}
HWTEST_F(InnerParsercNdkTest, DEMUXER_REFERENCE_RELI_0010, TestSize.Level3)
{
if (access(HEVC_LIB_PATH.c_str(), F_OK) != 0) {