1 /* 2 * Copyright (C) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include <string> 17 #include <sys/stat.h> 18 #include <fcntl.h> 19 #include <cinttypes> 20 #include <fstream> 21 #include "meta/meta_key.h" 22 #include "meta/meta.h" 23 #include "gtest/gtest.h" 24 #include "avcodec_errors.h" 25 #include "avcodec_audio_common.h" 26 #include "avcodec_info.h" 27 #include "media_description.h" 28 #include "file_server_demo.h" 29 #include "avsource_unit_test.h" 30 #include "media_data_source.h" 31 #include "native_avsource.h" 32 33 #define LOCAL true 34 #define URI false 35 36 using namespace OHOS; 37 using namespace OHOS::MediaAVCodec; 38 using namespace testing::ext; 39 using namespace std; 40 41 namespace { 42 unique_ptr<FileServerDemo> server = nullptr; 43 static const string TEST_FILE_PATH = "/data/test/media/"; 44 static const string TEST_URI_PATH = "http://127.0.0.1:46666/"; 45 static const string TEST_TIMED_METADATA = "com.openharmony.timed_metadata.test"; 46 const int64_t SOURCE_OFFSET = 0; 47 48 string g_tsMpeg4Path = TEST_FILE_PATH + string("test_mpeg4_Gop25_4sec.ts"); 49 string g_tsMpeg4Uri = TEST_URI_PATH + string("test_mpeg4_Gop25_4sec.ts"); 50 string g_h264aacPath = TEST_FILE_PATH + string("h264_allmetadata.mov"); 51 string g_h264mp3Path = TEST_FILE_PATH + string("h264_mp3.mov"); 52 string g_h264vorPath = TEST_FILE_PATH + string("h264_vorbis.mov"); 53 string g_mpg4mp2Path = TEST_FILE_PATH + string("MPEG4_mp2.mov"); 54 string g_h264aacUri = TEST_URI_PATH + string("h264_allmetadata.mov"); 55 string g_h264mp3Uri = TEST_URI_PATH + string("h264_mp3.mov"); 56 string g_h264vorUri = TEST_URI_PATH + string("h264_vorbis.mov"); 57 string g_mpg4mp2Uri = TEST_URI_PATH + string("MPEG4_mp2.mov"); 58 string g_aviPath = TEST_FILE_PATH + string("h264_aac_metadata.avi"); 59 string g_aviUri = TEST_URI_PATH + string("h264_aac_metadata.avi"); 60 string g_aviAvcMp3Path = TEST_FILE_PATH + string("h264_mp3.avi"); 61 string g_aviAvcMp3Uri = TEST_URI_PATH + string("h264_mp3.avi"); 62 string g_avi263AacPath = TEST_FILE_PATH + string("test_263_aac_B_Gop25_4sec_cover.avi"); 63 string g_avi263AacUri = TEST_URI_PATH + string("test_263_aac_B_Gop25_4sec_cover.avi"); 64 string g_aviMpeg2Mp2Path = TEST_FILE_PATH + string("test_mpeg2_mp2_B_Gop25_4sec_cover.avi"); 65 string g_aviMpeg2Mp2Uri = TEST_URI_PATH + string("test_mpeg2_mp2_B_Gop25_4sec_cover.avi"); 66 string g_aviMpeg4PcmPath = TEST_FILE_PATH + string("mpeg4_pcm.avi"); 67 string g_aviMpeg4PcmUri = TEST_URI_PATH + string("mpeg4_pcm.avi"); 68 string g_mpg4mp4Path = TEST_FILE_PATH + string("MPEG4.mp4"); 69 string g_mpg4mp4Uri = TEST_URI_PATH + string("MPEG4.mp4"); 70 string g_mpegPath = TEST_FILE_PATH + string("mpeg_h264_mp2.mpeg"); 71 string g_mpegPath2 = TEST_FILE_PATH + string("mpeg_h264_mp3.mpeg"); 72 string g_mpegPath3 = TEST_FILE_PATH + string("mpeg_mpeg2_mp2.mpeg"); 73 string g_mpegPath4 = TEST_FILE_PATH + string("mpeg_mpeg2_mp3.mpeg"); 74 string g_mpegUri = TEST_URI_PATH + string("mpeg_h264_mp2.mpeg"); 75 string g_mpegUri2 = TEST_URI_PATH + string("mpeg_h264_mp3.mpeg"); 76 string g_mpegUri3 = TEST_URI_PATH + string("mpeg_mpeg2_mp2.mpeg"); 77 string g_mpegUri4 = TEST_URI_PATH + string("mpeg_mpeg2_mp3.mpeg"); 78 } 79 80 /**********************************source FD**************************************/ 81 namespace { 82 /** 83 * @tc.name: AVSource_GetFormat_1025 84 * @tc.desc: get source format when the file is ts(mpeg4, mp2) 85 * @tc.type: FUNC 86 */ 87 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_1025, TestSize.Level1) 88 { 89 fd_ = OpenFile(g_tsMpeg4Path); 90 size_ = GetFileSize(g_tsMpeg4Path); 91 printf("---- %s ----\n", g_tsMpeg4Path.c_str()); 92 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 93 ASSERT_NE(source_, nullptr); 94 format_ = source_->GetSourceFormat(); 95 ASSERT_NE(format_, nullptr); 96 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 97 trackIndex_ = 0; 98 format_ = source_->GetTrackFormat(trackIndex_); 99 ASSERT_NE(format_, nullptr); 100 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 101 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 102 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 103 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 104 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 105 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 106 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 107 ASSERT_EQ(formatVal_.codecMime, "video/mp4v-es"); 108 ASSERT_EQ(formatVal_.width, 1920); 109 ASSERT_EQ(formatVal_.height, 1080); 110 ASSERT_DOUBLE_EQ(formatVal_.frameRate, 25.000000); 111 trackIndex_ = 1; 112 format_->Destroy(); 113 format_ = source_->GetTrackFormat(trackIndex_); 114 ASSERT_NE(format_, nullptr); 115 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 116 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 117 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 118 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 119 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 120 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 121 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 122 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 123 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 124 ASSERT_EQ(formatVal_.sampleRate, 44100); 125 ASSERT_EQ(formatVal_.channelCount, 2); 126 ASSERT_EQ(formatVal_.bitRate, 384000); 127 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 128 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 129 ASSERT_EQ(formatVal_.channelLayout, 3); 130 } 131 132 /** 133 * @tc.name: AVSource_GetFormat_2025 134 * @tc.desc: get source format when the file is ts(mpeg4, aac) 135 * @tc.type: FUNC 136 */ 137 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2025, TestSize.Level1) 138 { 139 printf("---- %s ------\n", g_tsMpeg4Uri.data()); 140 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_tsMpeg4Uri.data())); 141 ASSERT_NE(source_, nullptr); 142 trackIndex_ = 0; 143 format_ = source_->GetSourceFormat(); 144 ASSERT_NE(format_, nullptr); 145 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 146 trackIndex_ = 0; 147 format_ = source_->GetTrackFormat(trackIndex_); 148 ASSERT_NE(format_, nullptr); 149 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 150 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 151 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 152 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 153 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 154 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 155 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 156 ASSERT_EQ(formatVal_.codecMime, "video/mp4v-es"); 157 ASSERT_EQ(formatVal_.width, 1920); 158 ASSERT_EQ(formatVal_.height, 1080); 159 ASSERT_DOUBLE_EQ(formatVal_.frameRate, 25.000000); 160 trackIndex_ = 1; 161 format_->Destroy(); 162 format_ = source_->GetTrackFormat(trackIndex_); 163 ASSERT_NE(format_, nullptr); 164 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 165 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 166 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 167 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 168 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 169 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 170 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 171 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 172 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 173 ASSERT_EQ(formatVal_.sampleRate, 44100); 174 ASSERT_EQ(formatVal_.channelCount, 2); 175 ASSERT_EQ(formatVal_.bitRate, 384000); 176 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 177 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 178 ASSERT_EQ(formatVal_.channelLayout, 3); 179 } 180 181 /** 182 * @tc.name: AVSource_GetFormat_2221 183 * @tc.desc: get track format (avi) 184 * @tc.type: FUNC 185 */ 186 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2221, TestSize.Level1) 187 { 188 fd_ = OpenFile(g_aviAvcMp3Path); 189 size_ = GetFileSize(g_aviAvcMp3Path); 190 printf("---- %s ------\n", g_aviAvcMp3Path.c_str()); 191 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 192 ASSERT_NE(source_, nullptr); 193 trackIndex_ = 0; 194 format_ = source_->GetTrackFormat(trackIndex_); 195 ASSERT_NE(format_, nullptr); 196 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 197 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 198 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 199 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 200 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 201 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 202 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 203 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 204 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 205 ASSERT_EQ(formatVal_.width, 720); 206 ASSERT_EQ(formatVal_.height, 480); 207 ASSERT_EQ(formatVal_.bitRate, 1175235); 208 ASSERT_DOUBLE_EQ(formatVal_.frameRate, 60.000000); 209 trackIndex_ = 1; 210 format_->Destroy(); 211 format_ = source_->GetTrackFormat(trackIndex_); 212 ASSERT_NE(format_, nullptr); 213 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 214 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 215 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 216 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 217 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 218 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 219 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 220 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 221 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 222 ASSERT_EQ(formatVal_.sampleRate, 44100); 223 ASSERT_EQ(formatVal_.channelCount, 2); 224 ASSERT_EQ(formatVal_.bitRate, 128332); 225 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 226 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 227 ASSERT_EQ(formatVal_.channelLayout, 3); 228 } 229 230 /** 231 * @tc.name: AVSource_GetFormat_2231 232 * @tc.desc: get track format when the file is avi (video: h264, audio: mp3) 233 * @tc.type: FUNC 234 */ 235 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2231, TestSize.Level1) 236 { 237 printf("---- %s ------\n", g_aviAvcMp3Uri.data()); 238 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_aviAvcMp3Uri.data())); 239 ASSERT_NE(source_, nullptr); 240 trackIndex_ = 0; 241 format_ = source_->GetTrackFormat(trackIndex_); 242 ASSERT_NE(format_, nullptr); 243 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 244 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 245 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 246 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 247 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 248 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 249 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 250 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 251 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 252 ASSERT_EQ(formatVal_.width, 720); 253 ASSERT_EQ(formatVal_.height, 480); 254 ASSERT_EQ(formatVal_.bitRate, 1175235); 255 ASSERT_DOUBLE_EQ(formatVal_.frameRate, 60.000000); 256 trackIndex_ = 1; 257 format_->Destroy(); 258 format_ = source_->GetTrackFormat(trackIndex_); 259 ASSERT_NE(format_, nullptr); 260 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 261 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 262 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 263 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 264 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 265 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 266 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 267 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 268 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 269 ASSERT_EQ(formatVal_.sampleRate, 44100); 270 ASSERT_EQ(formatVal_.channelCount, 2); 271 ASSERT_EQ(formatVal_.bitRate, 128332); 272 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 273 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 274 ASSERT_EQ(formatVal_.channelLayout, 3); 275 } 276 277 /** 278 * @tc.name: AVSource_GetFormat_2222 279 * @tc.desc: get source format (avi) 280 * @tc.type: FUNC 281 */ 282 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2222, TestSize.Level1) 283 { 284 fd_ = OpenFile(g_aviPath); 285 size_ = GetFileSize(g_aviPath); 286 printf("---- %s ----\n", g_aviPath.c_str()); 287 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 288 ASSERT_NE(source_, nullptr); 289 format_ = source_->GetSourceFormat(); 290 ASSERT_NE(format_, nullptr); 291 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 292 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_ARTIST, formatVal_.artist)); 293 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_COMMENT, formatVal_.comment)); 294 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_COPYRIGHT, formatVal_.copyright)); 295 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_DATE, formatVal_.date)); 296 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_GENRE, formatVal_.genre)); 297 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_TITLE, formatVal_.title)); 298 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_DURATION, formatVal_.duration)); 299 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_COUNT, formatVal_.trackCount)); 300 ASSERT_EQ(formatVal_.artist, "artist"); 301 ASSERT_EQ(formatVal_.comment, "comment"); 302 ASSERT_EQ(formatVal_.copyright, "Copyright"); 303 ASSERT_EQ(formatVal_.date, "2024"); 304 ASSERT_EQ(formatVal_.genre, "Lyrical"); 305 ASSERT_EQ(formatVal_.title, "test"); 306 ASSERT_EQ(formatVal_.duration, 10025000); 307 ASSERT_EQ(formatVal_.trackCount, 2); 308 #ifdef AVSOURCE_INNER_UNIT_TEST 309 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 310 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 311 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 312 ASSERT_EQ(formatVal_.hasVideo, 1); 313 ASSERT_EQ(formatVal_.hasAudio, 1); 314 ASSERT_EQ(formatVal_.fileType, 105); 315 #endif 316 } 317 318 /** 319 * @tc.name: AVSource_GetFormat_2232 320 * @tc.desc: get source format when the file is avi 321 * @tc.type: FUNC 322 */ 323 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2232, TestSize.Level1) 324 { 325 printf("---- %s ----\n", g_aviUri.data()); 326 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_aviUri.data())); 327 ASSERT_NE(source_, nullptr); 328 format_ = source_->GetSourceFormat(); 329 ASSERT_NE(format_, nullptr); 330 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 331 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_ARTIST, formatVal_.artist)); 332 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_COMMENT, formatVal_.comment)); 333 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_COPYRIGHT, formatVal_.copyright)); 334 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_DATE, formatVal_.date)); 335 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_GENRE, formatVal_.genre)); 336 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_TITLE, formatVal_.title)); 337 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_DURATION, formatVal_.duration)); 338 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_COUNT, formatVal_.trackCount)); 339 ASSERT_EQ(formatVal_.artist, "artist"); 340 ASSERT_EQ(formatVal_.comment, "comment"); 341 ASSERT_EQ(formatVal_.copyright, "Copyright"); 342 ASSERT_EQ(formatVal_.date, "2024"); 343 ASSERT_EQ(formatVal_.genre, "Lyrical"); 344 ASSERT_EQ(formatVal_.title, "test"); 345 ASSERT_EQ(formatVal_.duration, 10025000); 346 ASSERT_EQ(formatVal_.trackCount, 2); 347 #ifdef AVSOURCE_INNER_UNIT_TEST 348 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 349 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 350 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 351 ASSERT_EQ(formatVal_.hasVideo, 1); 352 ASSERT_EQ(formatVal_.hasAudio, 1); 353 ASSERT_EQ(formatVal_.fileType, 105); 354 #endif 355 } 356 357 /** 358 * @tc.name: AVSource_GetFormat_2226 359 * @tc.desc: get track format (avi) 360 * @tc.type: FUNC 361 */ 362 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2226, TestSize.Level1) 363 { 364 fd_ = OpenFile(g_aviMpeg2Mp2Path); 365 size_ = GetFileSize(g_aviMpeg2Mp2Path); 366 printf("---- %s ------\n", g_aviMpeg2Mp2Path.c_str()); 367 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 368 ASSERT_NE(source_, nullptr); 369 trackIndex_ = 0; 370 format_ = source_->GetTrackFormat(trackIndex_); 371 ASSERT_NE(format_, nullptr); 372 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 373 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 374 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 375 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 376 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 377 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 378 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 379 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 380 ASSERT_EQ(formatVal_.codecMime, "video/mpeg2"); 381 ASSERT_EQ(formatVal_.width, 1920); 382 ASSERT_EQ(formatVal_.height, 1080); 383 ASSERT_EQ(formatVal_.bitRate, 3328590); 384 ASSERT_DOUBLE_EQ(formatVal_.frameRate, 25.000000); 385 trackIndex_ = 1; 386 format_->Destroy(); 387 format_ = source_->GetTrackFormat(trackIndex_); 388 ASSERT_NE(format_, nullptr); 389 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 390 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 391 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 392 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 393 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 394 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 395 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 396 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 397 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 398 ASSERT_EQ(formatVal_.sampleRate, 44100); 399 ASSERT_EQ(formatVal_.channelCount, 2); 400 ASSERT_EQ(formatVal_.bitRate, 384000); 401 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 402 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_S16P); 403 ASSERT_EQ(formatVal_.channelLayout, 3); 404 } 405 406 /** 407 * @tc.name: AVSource_GetFormat_2236 408 * @tc.desc: get track format when the file is avi (video: mpeg2, audio:mp2) 409 * @tc.type: FUNC 410 */ 411 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2236, TestSize.Level1) 412 { 413 printf("---- %s ------\n", g_aviMpeg2Mp2Uri.data()); 414 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_aviMpeg2Mp2Uri.data())); 415 ASSERT_NE(source_, nullptr); 416 trackIndex_ = 0; 417 format_ = source_->GetTrackFormat(trackIndex_); 418 ASSERT_NE(format_, nullptr); 419 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 420 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 421 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 422 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 423 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 424 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 425 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 426 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 427 ASSERT_EQ(formatVal_.codecMime, "video/mpeg2"); 428 ASSERT_EQ(formatVal_.width, 1920); 429 ASSERT_EQ(formatVal_.height, 1080); 430 ASSERT_EQ(formatVal_.bitRate, 3328590); 431 ASSERT_DOUBLE_EQ(formatVal_.frameRate, 25.000000); 432 trackIndex_ = 1; 433 format_->Destroy(); 434 format_ = source_->GetTrackFormat(trackIndex_); 435 ASSERT_NE(format_, nullptr); 436 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 437 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 438 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 439 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 440 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 441 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 442 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 443 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 444 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 445 ASSERT_EQ(formatVal_.sampleRate, 44100); 446 ASSERT_EQ(formatVal_.channelCount, 2); 447 ASSERT_EQ(formatVal_.bitRate, 384000); 448 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 449 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_S16P); 450 ASSERT_EQ(formatVal_.channelLayout, 3); 451 } 452 453 /** 454 * @tc.name: AVSource_GetFormat_2229 455 * @tc.desc: get track format (avi) 456 * @tc.type: FUNC 457 */ 458 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2229, TestSize.Level1) 459 { 460 fd_ = OpenFile(g_aviMpeg4PcmPath); 461 size_ = GetFileSize(g_aviMpeg4PcmPath); 462 printf("---- %s ------\n", g_aviMpeg4PcmPath.c_str()); 463 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 464 ASSERT_NE(source_, nullptr); 465 trackIndex_ = 0; 466 format_ = source_->GetTrackFormat(trackIndex_); 467 ASSERT_NE(format_, nullptr); 468 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 469 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 470 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 471 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 472 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 473 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 474 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 475 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 476 ASSERT_EQ(formatVal_.codecMime, "video/mp4v-es"); 477 ASSERT_EQ(formatVal_.width, 720); 478 ASSERT_EQ(formatVal_.height, 480); 479 ASSERT_EQ(formatVal_.bitRate, 766523); 480 ASSERT_DOUBLE_EQ(formatVal_.frameRate, 60.000000); 481 trackIndex_ = 1; 482 format_->Destroy(); 483 format_ = source_->GetTrackFormat(trackIndex_); 484 ASSERT_NE(format_, nullptr); 485 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 486 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 487 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 488 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 489 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 490 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 491 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 492 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 493 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 494 ASSERT_EQ(formatVal_.sampleRate, 44100); 495 ASSERT_EQ(formatVal_.channelCount, 2); 496 ASSERT_EQ(formatVal_.bitRate, 1411200); 497 ASSERT_EQ(formatVal_.codecMime, "audio/raw"); 498 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_S16LE); 499 ASSERT_EQ(formatVal_.channelLayout, 3); 500 } 501 502 /** 503 * @tc.name: AVSource_GetFormat_2239 504 * @tc.desc: get track format when the file is avi (video: mpeg4, audio:pcm) 505 * @tc.type: FUNC 506 */ 507 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2239, TestSize.Level1) 508 { 509 printf("---- %s ------\n", g_aviMpeg4PcmUri.data()); 510 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_aviMpeg4PcmUri.data())); 511 ASSERT_NE(source_, nullptr); 512 trackIndex_ = 0; 513 format_ = source_->GetTrackFormat(trackIndex_); 514 ASSERT_NE(format_, nullptr); 515 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 516 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 517 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 518 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 519 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 520 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 521 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 522 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 523 ASSERT_EQ(formatVal_.codecMime, "video/mp4v-es"); 524 ASSERT_EQ(formatVal_.width, 720); 525 ASSERT_EQ(formatVal_.height, 480); 526 ASSERT_EQ(formatVal_.bitRate, 766523); 527 ASSERT_DOUBLE_EQ(formatVal_.frameRate, 60.000000); 528 trackIndex_ = 1; 529 format_->Destroy(); 530 format_ = source_->GetTrackFormat(trackIndex_); 531 ASSERT_NE(format_, nullptr); 532 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 533 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 534 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 535 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 536 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 537 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 538 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 539 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 540 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 541 ASSERT_EQ(formatVal_.sampleRate, 44100); 542 ASSERT_EQ(formatVal_.channelCount, 2); 543 ASSERT_EQ(formatVal_.bitRate, 1411200); 544 ASSERT_EQ(formatVal_.codecMime, "audio/raw"); 545 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_S16LE); 546 ASSERT_EQ(formatVal_.channelLayout, 3); 547 } 548 549 /** 550 * @tc.name: AVSource_GetFormat_2230 551 * @tc.desc: get track format (avi) 552 * @tc.type: FUNC 553 */ 554 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2230, TestSize.Level1) 555 { 556 fd_ = OpenFile(g_avi263AacPath); 557 size_ = GetFileSize(g_avi263AacPath); 558 printf("---- %s ------\n", g_avi263AacPath.c_str()); 559 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 560 ASSERT_NE(source_, nullptr); 561 trackIndex_ = 0; 562 format_ = source_->GetTrackFormat(trackIndex_); 563 ASSERT_NE(format_, nullptr); 564 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 565 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 566 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 567 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 568 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 569 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 570 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 571 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 572 ASSERT_EQ(formatVal_.codecMime, "video/h263"); 573 ASSERT_EQ(formatVal_.width, 1408); 574 ASSERT_EQ(formatVal_.height, 1152); 575 ASSERT_EQ(formatVal_.bitRate, 2704586); 576 ASSERT_DOUBLE_EQ(formatVal_.frameRate, 25.000000); 577 trackIndex_ = 1; 578 format_->Destroy(); 579 format_ = source_->GetTrackFormat(trackIndex_); 580 ASSERT_NE(format_, nullptr); 581 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 582 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 583 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 584 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 585 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 586 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 587 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 588 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 589 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 590 ASSERT_EQ(formatVal_.sampleRate, 44100); 591 ASSERT_EQ(formatVal_.channelCount, 2); 592 ASSERT_EQ(formatVal_.bitRate, 128000); 593 ASSERT_EQ(formatVal_.codecMime, "audio/mp4a-latm"); 594 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 595 ASSERT_EQ(formatVal_.channelLayout, 3); 596 } 597 598 /** 599 * @tc.name: AVSource_GetFormat_2240 600 * @tc.desc: get track format when the file is avi (video: h263, audio:aac) 601 * @tc.type: FUNC 602 */ 603 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2240, TestSize.Level1) 604 { 605 printf("---- %s ------\n", g_avi263AacUri.data()); 606 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_avi263AacUri.data())); 607 ASSERT_NE(source_, nullptr); 608 trackIndex_ = 0; 609 format_ = source_->GetTrackFormat(trackIndex_); 610 ASSERT_NE(format_, nullptr); 611 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 612 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 613 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 614 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 615 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 616 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 617 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 618 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 619 ASSERT_EQ(formatVal_.codecMime, "video/h263"); 620 ASSERT_EQ(formatVal_.width, 1408); 621 ASSERT_EQ(formatVal_.height, 1152); 622 ASSERT_EQ(formatVal_.bitRate, 2704586); 623 ASSERT_DOUBLE_EQ(formatVal_.frameRate, 25.000000); 624 trackIndex_ = 1; 625 format_->Destroy(); 626 format_ = source_->GetTrackFormat(trackIndex_); 627 ASSERT_NE(format_, nullptr); 628 printf("[ trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 629 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 630 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 631 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 632 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 633 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 634 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 635 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 636 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 637 ASSERT_EQ(formatVal_.sampleRate, 44100); 638 ASSERT_EQ(formatVal_.channelCount, 2); 639 ASSERT_EQ(formatVal_.bitRate, 128000); 640 ASSERT_EQ(formatVal_.codecMime, "audio/mp4a-latm"); 641 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 642 ASSERT_EQ(formatVal_.channelLayout, 3); 643 } 644 645 /** 646 * @tc.name: AVSource_GetFormat_2296 647 * @tc.desc: get source format, local (264-aac) 648 * @tc.type: FUNC 649 */ 650 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2296, TestSize.Level1) 651 { 652 fd_ = OpenFile(g_h264aacPath); 653 size_ = GetFileSize(g_h264aacPath); 654 printf("---- %s ------\n", g_h264aacPath.c_str()); 655 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 656 ASSERT_NE(source_, nullptr); 657 format_ = source_->GetSourceFormat(); 658 ASSERT_NE(format_, nullptr); 659 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 660 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_TITLE, formatVal_.title)); 661 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_ARTIST, formatVal_.artist)); 662 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_ALBUM, formatVal_.album)); 663 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_DURATION, formatVal_.duration)); 664 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_COUNT, formatVal_.trackCount)); 665 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_GENRE, formatVal_.genre)); 666 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_DATE, formatVal_.date)); 667 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_COMMENT, formatVal_.comment)); 668 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_COPYRIGHT, formatVal_.copyright)); 669 ASSERT_EQ(formatVal_.title, "test"); 670 ASSERT_EQ(formatVal_.artist, "元数据测试"); 671 ASSERT_EQ(formatVal_.album, "media"); 672 ASSERT_EQ(formatVal_.genre, "Lyrical"); 673 ASSERT_EQ(formatVal_.date, "2024"); 674 ASSERT_EQ(formatVal_.comment, "comment"); 675 ASSERT_EQ(formatVal_.copyright, "copyright"); 676 ASSERT_EQ(formatVal_.duration, 10067000); 677 ASSERT_EQ(formatVal_.trackCount, 2); 678 #ifdef AVSOURCE_INNER_UNIT_TEST 679 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 680 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 681 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 682 ASSERT_EQ(formatVal_.hasVideo, 1); 683 ASSERT_EQ(formatVal_.hasAudio, 1); 684 ASSERT_EQ(formatVal_.fileType, 107); 685 #endif 686 } 687 688 /** 689 * @tc.name: AVSource_GetFormat_2297 690 * @tc.desc: get source format, uri (264-aac) 691 * @tc.type: FUNC 692 */ 693 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2297, TestSize.Level1) 694 { 695 printf("---- %s ------\n", g_h264aacUri.data()); 696 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_h264aacUri.data())); 697 ASSERT_NE(source_, nullptr); 698 format_ = source_->GetSourceFormat(); 699 ASSERT_NE(format_, nullptr); 700 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 701 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_TITLE, formatVal_.title)); 702 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_ARTIST, formatVal_.artist)); 703 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_ALBUM, formatVal_.album)); 704 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_DURATION, formatVal_.duration)); 705 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_COUNT, formatVal_.trackCount)); 706 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_GENRE, formatVal_.genre)); 707 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_DATE, formatVal_.date)); 708 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_COMMENT, formatVal_.comment)); 709 ASSERT_TRUE(format_->GetStringValue(AVSourceFormat::SOURCE_COPYRIGHT, formatVal_.copyright)); 710 ASSERT_EQ(formatVal_.title, "test"); 711 ASSERT_EQ(formatVal_.artist, "元数据测试"); 712 ASSERT_EQ(formatVal_.album, "media"); 713 ASSERT_EQ(formatVal_.genre, "Lyrical"); 714 ASSERT_EQ(formatVal_.date, "2024"); 715 ASSERT_EQ(formatVal_.comment, "comment"); 716 ASSERT_EQ(formatVal_.copyright, "copyright"); 717 ASSERT_EQ(formatVal_.duration, 10067000); 718 ASSERT_EQ(formatVal_.trackCount, 2); 719 #ifdef AVSOURCE_INNER_UNIT_TEST 720 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 721 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 722 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 723 ASSERT_EQ(formatVal_.hasVideo, 1); 724 ASSERT_EQ(formatVal_.hasAudio, 1); 725 ASSERT_EQ(formatVal_.fileType, 107); 726 #endif 727 } 728 729 /** 730 * @tc.name: AVSource_GetFormat_2298 731 * @tc.desc: get track format, local (264-aac) 732 * @tc.type: FUNC 733 */ 734 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2298, TestSize.Level1) 735 { 736 fd_ = OpenFile(g_h264aacPath); 737 size_ = GetFileSize(g_h264aacPath); 738 printf("---- %s ------\n", g_h264aacPath.c_str()); 739 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 740 ASSERT_NE(source_, nullptr); 741 trackIndex_ = 0; 742 format_ = source_->GetTrackFormat(trackIndex_); 743 ASSERT_NE(format_, nullptr); 744 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 745 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 746 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 747 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 748 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 749 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 750 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 751 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 752 ASSERT_EQ(formatVal_.width, 720); 753 ASSERT_EQ(formatVal_.height, 480); 754 ASSERT_EQ(formatVal_.frameRate, 60.000000); 755 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 756 ASSERT_EQ(formatVal_.bitRate, 1187898); 757 trackIndex_ = 1; 758 format_->Destroy(); 759 format_ = source_->GetTrackFormat(trackIndex_); 760 ASSERT_NE(format_, nullptr); 761 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 762 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 763 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 764 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 765 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 766 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 767 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 768 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 769 ASSERT_EQ(formatVal_.channelLayout, 3); 770 ASSERT_EQ(formatVal_.sampleRate, 44100); 771 ASSERT_EQ(formatVal_.codecMime, "audio/mp4a-latm"); 772 ASSERT_EQ(formatVal_.channelCount, 2); 773 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 774 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 775 ASSERT_EQ(formatVal_.bitRate, 128064); 776 } 777 778 /** 779 * @tc.name: AVSource_GetFormat_2299 780 * @tc.desc: get track format, uri (264-aac) 781 * @tc.type: FUNC 782 */ 783 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2299, TestSize.Level1) 784 { 785 printf("---- %s ------\n", g_h264aacUri.data()); 786 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_h264aacUri.data())); 787 ASSERT_NE(source_, nullptr); 788 trackIndex_ = 0; 789 format_ = source_->GetTrackFormat(trackIndex_); 790 ASSERT_NE(format_, nullptr); 791 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 792 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 793 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 794 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 795 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 796 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 797 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 798 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 799 ASSERT_EQ(formatVal_.width, 720); 800 ASSERT_EQ(formatVal_.height, 480); 801 ASSERT_EQ(formatVal_.frameRate, 60.000000); 802 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 803 ASSERT_EQ(formatVal_.bitRate, 1187898); 804 trackIndex_ = 1; 805 format_->Destroy(); 806 format_ = source_->GetTrackFormat(trackIndex_); 807 ASSERT_NE(format_, nullptr); 808 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 809 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 810 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 811 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 812 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 813 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 814 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 815 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 816 ASSERT_EQ(formatVal_.channelLayout, 3); 817 ASSERT_EQ(formatVal_.sampleRate, 44100); 818 ASSERT_EQ(formatVal_.codecMime, "audio/mp4a-latm"); 819 ASSERT_EQ(formatVal_.channelCount, 2); 820 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 821 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 822 ASSERT_EQ(formatVal_.bitRate, 128064); 823 } 824 825 /** 826 * @tc.name: AVSource_GetFormat_2300 827 * @tc.desc: get track format, local (264-mp3) 828 * @tc.type: FUNC 829 */ 830 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2300, TestSize.Level1) 831 { 832 fd_ = OpenFile(g_h264mp3Path); 833 size_ = GetFileSize(g_h264mp3Path); 834 printf("---- %s ------\n", g_h264mp3Path.c_str()); 835 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 836 ASSERT_NE(source_, nullptr); 837 trackIndex_ = 0; 838 format_ = source_->GetTrackFormat(trackIndex_); 839 ASSERT_NE(format_, nullptr); 840 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 841 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 842 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 843 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 844 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 845 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 846 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 847 ASSERT_EQ(formatVal_.width, 720); 848 ASSERT_EQ(formatVal_.height, 480); 849 ASSERT_EQ(formatVal_.frameRate, 60.000000); 850 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 851 trackIndex_ = 1; 852 format_->Destroy(); 853 format_ = source_->GetTrackFormat(trackIndex_); 854 ASSERT_NE(format_, nullptr); 855 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 856 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 857 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 858 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 859 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 860 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 861 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 862 ASSERT_EQ(formatVal_.channelLayout, 3); 863 ASSERT_EQ(formatVal_.sampleRate, 44100); 864 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 865 ASSERT_EQ(formatVal_.channelCount, 2); 866 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 867 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 868 } 869 870 /** 871 * @tc.name: AVSource_GetFormat_2301 872 * @tc.desc: get track format, uri (264-mp3) 873 * @tc.type: FUNC 874 */ 875 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2301, TestSize.Level1) 876 { 877 printf("---- %s ------\n", g_h264mp3Uri.data()); 878 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_h264mp3Uri.data())); 879 ASSERT_NE(source_, nullptr); 880 trackIndex_ = 0; 881 format_ = source_->GetTrackFormat(trackIndex_); 882 ASSERT_NE(format_, nullptr); 883 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 884 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 885 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 886 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 887 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 888 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 889 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 890 ASSERT_EQ(formatVal_.width, 720); 891 ASSERT_EQ(formatVal_.height, 480); 892 ASSERT_EQ(formatVal_.frameRate, 60.000000); 893 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 894 trackIndex_ = 1; 895 format_->Destroy(); 896 format_ = source_->GetTrackFormat(trackIndex_); 897 ASSERT_NE(format_, nullptr); 898 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 899 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 900 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 901 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 902 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 903 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 904 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 905 ASSERT_EQ(formatVal_.channelLayout, 3); 906 ASSERT_EQ(formatVal_.sampleRate, 44100); 907 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 908 ASSERT_EQ(formatVal_.channelCount, 2); 909 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 910 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 911 } 912 913 /** 914 * @tc.name: AVSource_GetFormat_2302 915 * @tc.desc: get track format, local (264-vorbis) 916 * @tc.type: FUNC 917 */ 918 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2302, TestSize.Level1) 919 { 920 fd_ = OpenFile(g_h264vorPath); 921 size_ = GetFileSize(g_h264vorPath); 922 printf("---- %s ------\n", g_h264vorPath.c_str()); 923 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 924 ASSERT_NE(source_, nullptr); 925 trackIndex_ = 0; 926 format_ = source_->GetTrackFormat(trackIndex_); 927 ASSERT_NE(format_, nullptr); 928 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 929 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 930 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 931 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 932 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 933 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 934 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 935 ASSERT_EQ(formatVal_.width, 720); 936 ASSERT_EQ(formatVal_.height, 480); 937 ASSERT_EQ(formatVal_.frameRate, 60.000000); 938 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 939 trackIndex_ = 1; 940 format_->Destroy(); 941 format_ = source_->GetTrackFormat(trackIndex_); 942 ASSERT_NE(format_, nullptr); 943 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 944 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 945 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 946 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 947 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 948 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 949 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 950 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 951 ASSERT_EQ(formatVal_.channelLayout, 3); 952 ASSERT_EQ(formatVal_.sampleRate, 44100); 953 ASSERT_EQ(formatVal_.codecMime, "audio/vorbis"); 954 ASSERT_EQ(formatVal_.channelCount, 2); 955 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 956 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 957 ASSERT_EQ(formatVal_.bitRate, 80435); 958 } 959 960 /** 961 * @tc.name: AVSource_GetFormat_2303 962 * @tc.desc: get track format, uri (264-vorbis) 963 * @tc.type: FUNC 964 */ 965 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2303, TestSize.Level1) 966 { 967 printf("---- %s ------\n", g_h264vorUri.data()); 968 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_h264vorUri.data())); 969 ASSERT_NE(source_, nullptr); 970 trackIndex_ = 0; 971 format_ = source_->GetTrackFormat(trackIndex_); 972 ASSERT_NE(format_, nullptr); 973 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 974 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 975 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 976 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 977 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 978 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 979 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 980 ASSERT_EQ(formatVal_.width, 720); 981 ASSERT_EQ(formatVal_.height, 480); 982 ASSERT_EQ(formatVal_.frameRate, 60.000000); 983 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 984 trackIndex_ = 1; 985 format_->Destroy(); 986 format_ = source_->GetTrackFormat(trackIndex_); 987 ASSERT_NE(format_, nullptr); 988 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 989 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 990 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 991 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 992 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 993 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 994 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 995 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 996 ASSERT_EQ(formatVal_.channelLayout, 3); 997 ASSERT_EQ(formatVal_.sampleRate, 44100); 998 ASSERT_EQ(formatVal_.codecMime, "audio/vorbis"); 999 ASSERT_EQ(formatVal_.channelCount, 2); 1000 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 1001 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1002 ASSERT_EQ(formatVal_.bitRate, 80435); 1003 } 1004 1005 /** 1006 * @tc.name: AVSource_GetFormat_2304 1007 * @tc.desc: get track format, local (mpeg4-mp2) 1008 * @tc.type: FUNC 1009 */ 1010 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2304, TestSize.Level1) 1011 { 1012 fd_ = OpenFile(g_mpg4mp2Path); 1013 size_ = GetFileSize(g_mpg4mp2Path); 1014 printf("---- %s ------\n", g_mpg4mp2Path.c_str()); 1015 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 1016 ASSERT_NE(source_, nullptr); 1017 trackIndex_ = 0; 1018 format_ = source_->GetTrackFormat(trackIndex_); 1019 ASSERT_NE(format_, nullptr); 1020 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1021 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1022 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1023 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1024 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1025 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1026 ASSERT_EQ(formatVal_.codecMime, "video/mp4v-es"); 1027 ASSERT_EQ(formatVal_.width, 720); 1028 ASSERT_EQ(formatVal_.height, 480); 1029 ASSERT_EQ(formatVal_.frameRate, 60.000000); 1030 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1031 trackIndex_ = 1; 1032 format_->Destroy(); 1033 format_ = source_->GetTrackFormat(trackIndex_); 1034 ASSERT_NE(format_, nullptr); 1035 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1036 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1037 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1038 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1039 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1040 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1041 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1042 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1043 ASSERT_EQ(formatVal_.channelLayout, 3); 1044 ASSERT_EQ(formatVal_.sampleRate, 44100); 1045 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 1046 ASSERT_EQ(formatVal_.channelCount, 2); 1047 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_S16P); 1048 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1049 ASSERT_EQ(formatVal_.bitRate, 191862); 1050 } 1051 1052 /** 1053 * @tc.name: AVSource_GetFormat_2305 1054 * @tc.desc: get track format, local (mpeg4-mp2) 1055 * @tc.type: FUNC 1056 */ 1057 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2305, TestSize.Level1) 1058 { 1059 printf("---- %s ------\n", g_mpg4mp2Uri.data()); 1060 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_mpg4mp2Uri.data())); 1061 ASSERT_NE(source_, nullptr); 1062 trackIndex_ = 0; 1063 format_ = source_->GetTrackFormat(trackIndex_); 1064 ASSERT_NE(format_, nullptr); 1065 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1066 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1067 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1068 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1069 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1070 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1071 ASSERT_EQ(formatVal_.codecMime, "video/mp4v-es"); 1072 ASSERT_EQ(formatVal_.width, 720); 1073 ASSERT_EQ(formatVal_.height, 480); 1074 ASSERT_EQ(formatVal_.frameRate, 60.000000); 1075 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1076 trackIndex_ = 1; 1077 format_->Destroy(); 1078 format_ = source_->GetTrackFormat(trackIndex_); 1079 ASSERT_NE(format_, nullptr); 1080 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1081 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1082 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1083 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1084 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1085 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1086 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1087 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1088 ASSERT_EQ(formatVal_.channelLayout, 3); 1089 ASSERT_EQ(formatVal_.sampleRate, 44100); 1090 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 1091 ASSERT_EQ(formatVal_.channelCount, 2); 1092 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_S16P); 1093 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1094 ASSERT_EQ(formatVal_.bitRate, 191862); 1095 } 1096 1097 /** 1098 * @tc.name: AVSource_GetFormat_2312 1099 * @tc.desc: get track format, local (mpeg4-mp4) 1100 * @tc.type: FUNC 1101 */ 1102 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2312, TestSize.Level1) 1103 { 1104 fd_ = OpenFile(g_mpg4mp4Path); 1105 size_ = GetFileSize(g_mpg4mp4Path); 1106 printf("---- %s ------\n", g_mpg4mp4Path.c_str()); 1107 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 1108 ASSERT_NE(source_, nullptr); 1109 trackIndex_ = 0; 1110 format_ = source_->GetTrackFormat(trackIndex_); 1111 ASSERT_NE(format_, nullptr); 1112 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1113 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1114 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1115 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1116 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1117 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1118 ASSERT_EQ(formatVal_.codecMime, "video/mp4v-es"); 1119 ASSERT_EQ(formatVal_.width, 720); 1120 ASSERT_EQ(formatVal_.height, 480); 1121 ASSERT_EQ(formatVal_.frameRate, 60.000000); 1122 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1123 trackIndex_ = 1; 1124 format_->Destroy(); 1125 format_ = source_->GetTrackFormat(trackIndex_); 1126 ASSERT_NE(format_, nullptr); 1127 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1128 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1129 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1130 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1131 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1132 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1133 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1134 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1135 ASSERT_EQ(formatVal_.channelLayout, 3); 1136 ASSERT_EQ(formatVal_.sampleRate, 44100); 1137 ASSERT_EQ(formatVal_.codecMime, "audio/mp4a-latm"); 1138 ASSERT_EQ(formatVal_.channelCount, 2); 1139 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 1140 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1141 ASSERT_EQ(formatVal_.bitRate, 130231); 1142 } 1143 1144 /** 1145 * @tc.name: AVSource_GetFormat_2313 1146 * @tc.desc: get format, uri(mpeg4-mp4) 1147 * @tc.type: FUNC 1148 */ 1149 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2313, TestSize.Level1) 1150 { 1151 printf("---- %s ------\n", g_mpg4mp4Uri.data()); 1152 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_mpg4mp4Uri.data())); 1153 ASSERT_NE(source_, nullptr); 1154 trackIndex_ = 0; 1155 format_ = source_->GetTrackFormat(trackIndex_); 1156 ASSERT_NE(format_, nullptr); 1157 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1158 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1159 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1160 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1161 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1162 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1163 ASSERT_EQ(formatVal_.codecMime, "video/mp4v-es"); 1164 ASSERT_EQ(formatVal_.width, 720); 1165 ASSERT_EQ(formatVal_.height, 480); 1166 ASSERT_EQ(formatVal_.frameRate, 60.000000); 1167 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1168 trackIndex_ = 1; 1169 format_->Destroy(); 1170 format_ = source_->GetTrackFormat(trackIndex_); 1171 ASSERT_NE(format_, nullptr); 1172 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1173 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1174 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1175 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1176 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1177 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1178 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1179 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1180 ASSERT_EQ(formatVal_.channelLayout, 3); 1181 ASSERT_EQ(formatVal_.sampleRate, 44100); 1182 ASSERT_EQ(formatVal_.codecMime, "audio/mp4a-latm"); 1183 ASSERT_EQ(formatVal_.channelCount, 2); 1184 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 1185 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1186 ASSERT_EQ(formatVal_.bitRate, 130231); 1187 } 1188 1189 /** 1190 * @tc.name: AVSource_GetFormat_2250 1191 * @tc.desc: get source format(mpeg) 1192 * @tc.type: FUNC 1193 */ 1194 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2250, TestSize.Level1) 1195 { 1196 fd_ = OpenFile(g_mpegPath); 1197 size_ = GetFileSize(g_mpegPath); 1198 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 1199 ASSERT_NE(source_, nullptr); 1200 format_ = source_->GetSourceFormat(); 1201 ASSERT_NE(format_, nullptr); 1202 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 1203 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 1204 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 1205 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 1206 ASSERT_EQ(formatVal_.hasVideo, 1); 1207 ASSERT_EQ(formatVal_.hasAudio, 1); 1208 ASSERT_EQ(formatVal_.fileType, 106); 1209 trackIndex_ = 0; 1210 format_->Destroy(); 1211 format_ = source_->GetTrackFormat(trackIndex_); 1212 ASSERT_NE(format_, nullptr); 1213 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1214 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1215 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1216 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1217 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1218 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1219 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 1220 ASSERT_EQ(formatVal_.width, 1920); 1221 ASSERT_EQ(formatVal_.height, 1080); 1222 ASSERT_EQ(formatVal_.frameRate, 24.000000); 1223 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1224 trackIndex_ = 1; 1225 format_->Destroy(); 1226 format_ = source_->GetTrackFormat(trackIndex_); 1227 ASSERT_NE(format_, nullptr); 1228 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1229 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1230 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1231 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1232 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1233 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1234 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1235 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1236 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_S16P); 1237 ASSERT_EQ(formatVal_.channelLayout, 3); 1238 ASSERT_EQ(formatVal_.sampleRate, 48000); 1239 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 1240 ASSERT_EQ(formatVal_.channelCount, 2); 1241 ASSERT_EQ(formatVal_.bitRate, 384000); 1242 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1243 } 1244 1245 /** 1246 * @tc.name: AVSource_GetFormat_2251 1247 * @tc.desc: get source format(mpeg) 1248 * @tc.type: FUNC 1249 */ 1250 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2251, TestSize.Level1) 1251 { 1252 fd_ = OpenFile(g_mpegPath2); 1253 size_ = GetFileSize(g_mpegPath2); 1254 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 1255 ASSERT_NE(source_, nullptr); 1256 format_ = source_->GetSourceFormat(); 1257 ASSERT_NE(format_, nullptr); 1258 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 1259 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 1260 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 1261 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 1262 ASSERT_EQ(formatVal_.hasVideo, 1); 1263 ASSERT_EQ(formatVal_.hasAudio, 1); 1264 ASSERT_EQ(formatVal_.fileType, 106); 1265 trackIndex_ = 0; 1266 format_->Destroy(); 1267 format_ = source_->GetTrackFormat(trackIndex_); 1268 ASSERT_NE(format_, nullptr); 1269 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1270 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1271 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1272 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1273 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1274 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1275 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 1276 ASSERT_EQ(formatVal_.width, 1920); 1277 ASSERT_EQ(formatVal_.height, 1080); 1278 ASSERT_EQ(formatVal_.frameRate, 24.000000); 1279 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1280 trackIndex_ = 1; 1281 format_->Destroy(); 1282 format_ = source_->GetTrackFormat(trackIndex_); 1283 ASSERT_NE(format_, nullptr); 1284 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1285 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1286 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1287 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1288 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1289 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1290 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1291 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1292 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 1293 ASSERT_EQ(formatVal_.bitRate, 128000); 1294 ASSERT_EQ(formatVal_.channelLayout, 3); 1295 ASSERT_EQ(formatVal_.sampleRate, 48000); 1296 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 1297 ASSERT_EQ(formatVal_.channelCount, 2); 1298 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1299 } 1300 1301 /** 1302 * @tc.name: AVSource_GetFormat_2252 1303 * @tc.desc: get source format(mpeg) 1304 * @tc.type: FUNC 1305 */ 1306 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2252, TestSize.Level1) 1307 { 1308 fd_ = OpenFile(g_mpegPath3); 1309 size_ = GetFileSize(g_mpegPath3); 1310 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 1311 ASSERT_NE(source_, nullptr); 1312 format_ = source_->GetSourceFormat(); 1313 ASSERT_NE(format_, nullptr); 1314 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 1315 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 1316 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 1317 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 1318 ASSERT_EQ(formatVal_.hasVideo, 1); 1319 ASSERT_EQ(formatVal_.hasAudio, 1); 1320 ASSERT_EQ(formatVal_.fileType, 106); 1321 trackIndex_ = 0; 1322 format_->Destroy(); 1323 format_ = source_->GetTrackFormat(trackIndex_); 1324 ASSERT_NE(format_, nullptr); 1325 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1326 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1327 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1328 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1329 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1330 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1331 ASSERT_EQ(formatVal_.codecMime, "video/mpeg2"); 1332 ASSERT_EQ(formatVal_.width, 1920); 1333 ASSERT_EQ(formatVal_.height, 1080); 1334 ASSERT_EQ(formatVal_.frameRate, 24.000000); 1335 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1336 trackIndex_ = 1; 1337 format_->Destroy(); 1338 format_ = source_->GetTrackFormat(trackIndex_); 1339 ASSERT_NE(format_, nullptr); 1340 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1341 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1342 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1343 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1344 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1345 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1346 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1347 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1348 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_S16P); 1349 ASSERT_EQ(formatVal_.channelLayout, 3); 1350 ASSERT_EQ(formatVal_.sampleRate, 48000); 1351 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 1352 ASSERT_EQ(formatVal_.channelCount, 2); 1353 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1354 ASSERT_EQ(formatVal_.bitRate, 384000); 1355 } 1356 1357 /** 1358 * @tc.name: AVSource_GetFormat_2253 1359 * @tc.desc: get source format(mpeg) 1360 * @tc.type: FUNC 1361 */ 1362 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2253, TestSize.Level1) 1363 { 1364 fd_ = OpenFile(g_mpegPath4); 1365 size_ = GetFileSize(g_mpegPath4); 1366 source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_); 1367 ASSERT_NE(source_, nullptr); 1368 format_ = source_->GetSourceFormat(); 1369 ASSERT_NE(format_, nullptr); 1370 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 1371 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 1372 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 1373 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 1374 ASSERT_EQ(formatVal_.hasVideo, 1); 1375 ASSERT_EQ(formatVal_.hasAudio, 1); 1376 ASSERT_EQ(formatVal_.fileType, 106); 1377 trackIndex_ = 0; 1378 format_->Destroy(); 1379 format_ = source_->GetTrackFormat(trackIndex_); 1380 ASSERT_NE(format_, nullptr); 1381 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1382 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1383 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1384 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1385 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1386 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1387 ASSERT_EQ(formatVal_.codecMime, "video/mpeg2"); 1388 ASSERT_EQ(formatVal_.width, 1920); 1389 ASSERT_EQ(formatVal_.height, 1080); 1390 ASSERT_EQ(formatVal_.frameRate, 24.000000); 1391 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1392 trackIndex_ = 1; 1393 format_->Destroy(); 1394 format_ = source_->GetTrackFormat(trackIndex_); 1395 ASSERT_NE(format_, nullptr); 1396 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1397 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1398 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1399 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1400 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1401 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1402 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1403 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1404 ASSERT_EQ(formatVal_.channelLayout, 3); 1405 ASSERT_EQ(formatVal_.sampleRate, 48000); 1406 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 1407 ASSERT_EQ(formatVal_.channelCount, 2); 1408 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1409 ASSERT_EQ(formatVal_.bitRate, 128000); 1410 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 1411 } 1412 1413 /** 1414 * @tc.name: AVSource_GetFormat_2260 1415 * @tc.desc: get source format(mpeg) 1416 * @tc.type: FUNC 1417 */ 1418 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2260, TestSize.Level1) 1419 { 1420 fd_ = OpenFile(g_mpegUri); 1421 size_ = GetFileSize(g_mpegUri); 1422 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_mpegUri.data())); 1423 ASSERT_NE(source_, nullptr); 1424 format_ = source_->GetSourceFormat(); 1425 ASSERT_NE(format_, nullptr); 1426 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 1427 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 1428 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 1429 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 1430 ASSERT_EQ(formatVal_.hasVideo, 1); 1431 ASSERT_EQ(formatVal_.hasAudio, 1); 1432 ASSERT_EQ(formatVal_.fileType, 106); 1433 trackIndex_ = 0; 1434 format_->Destroy(); 1435 format_ = source_->GetTrackFormat(trackIndex_); 1436 ASSERT_NE(format_, nullptr); 1437 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1438 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1439 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1440 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1441 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1442 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1443 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 1444 ASSERT_EQ(formatVal_.width, 1920); 1445 ASSERT_EQ(formatVal_.height, 1080); 1446 ASSERT_EQ(formatVal_.frameRate, 24.000000); 1447 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1448 trackIndex_ = 1; 1449 format_->Destroy(); 1450 format_ = source_->GetTrackFormat(trackIndex_); 1451 ASSERT_NE(format_, nullptr); 1452 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1453 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1454 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1455 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1456 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1457 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1458 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1459 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1460 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_S16P); 1461 ASSERT_EQ(formatVal_.channelLayout, 3); 1462 ASSERT_EQ(formatVal_.sampleRate, 48000); 1463 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 1464 ASSERT_EQ(formatVal_.channelCount, 2); 1465 ASSERT_EQ(formatVal_.bitRate, 384000); 1466 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1467 } 1468 1469 /** 1470 * @tc.name: AVSource_GetFormat_2261 1471 * @tc.desc: get source format(mpeg) 1472 * @tc.type: FUNC 1473 */ 1474 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2261, TestSize.Level1) 1475 { 1476 fd_ = OpenFile(g_mpegUri2); 1477 size_ = GetFileSize(g_mpegUri2); 1478 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_mpegUri2.data())); 1479 ASSERT_NE(source_, nullptr); 1480 format_ = source_->GetSourceFormat(); 1481 ASSERT_NE(format_, nullptr); 1482 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 1483 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 1484 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 1485 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 1486 ASSERT_EQ(formatVal_.hasVideo, 1); 1487 ASSERT_EQ(formatVal_.hasAudio, 1); 1488 ASSERT_EQ(formatVal_.fileType, 106); 1489 trackIndex_ = 0; 1490 format_->Destroy(); 1491 format_ = source_->GetTrackFormat(trackIndex_); 1492 ASSERT_NE(format_, nullptr); 1493 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1494 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1495 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1496 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1497 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1498 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1499 ASSERT_EQ(formatVal_.codecMime, "video/avc"); 1500 ASSERT_EQ(formatVal_.width, 1920); 1501 ASSERT_EQ(formatVal_.height, 1080); 1502 ASSERT_EQ(formatVal_.frameRate, 24.000000); 1503 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1504 trackIndex_ = 1; 1505 format_->Destroy(); 1506 format_ = source_->GetTrackFormat(trackIndex_); 1507 ASSERT_NE(format_, nullptr); 1508 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1509 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1510 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1511 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1512 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1513 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1514 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1515 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1516 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 1517 ASSERT_EQ(formatVal_.bitRate, 128000); 1518 ASSERT_EQ(formatVal_.channelLayout, 3); 1519 ASSERT_EQ(formatVal_.sampleRate, 48000); 1520 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 1521 ASSERT_EQ(formatVal_.channelCount, 2); 1522 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1523 } 1524 1525 /** 1526 * @tc.name: AVSource_GetFormat_2262 1527 * @tc.desc: get source format(mpeg) 1528 * @tc.type: FUNC 1529 */ 1530 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2262, TestSize.Level1) 1531 { 1532 fd_ = OpenFile(g_mpegUri3); 1533 size_ = GetFileSize(g_mpegUri3); 1534 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_mpegUri3.data())); 1535 ASSERT_NE(source_, nullptr); 1536 format_ = source_->GetSourceFormat(); 1537 ASSERT_NE(format_, nullptr); 1538 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 1539 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 1540 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 1541 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 1542 ASSERT_EQ(formatVal_.hasVideo, 1); 1543 ASSERT_EQ(formatVal_.hasAudio, 1); 1544 ASSERT_EQ(formatVal_.fileType, 106); 1545 trackIndex_ = 0; 1546 format_->Destroy(); 1547 format_ = source_->GetTrackFormat(trackIndex_); 1548 ASSERT_NE(format_, nullptr); 1549 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1550 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1551 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1552 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1553 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1554 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1555 ASSERT_EQ(formatVal_.codecMime, "video/mpeg2"); 1556 ASSERT_EQ(formatVal_.width, 1920); 1557 ASSERT_EQ(formatVal_.height, 1080); 1558 ASSERT_EQ(formatVal_.frameRate, 24.000000); 1559 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1560 trackIndex_ = 1; 1561 format_->Destroy(); 1562 format_ = source_->GetTrackFormat(trackIndex_); 1563 ASSERT_NE(format_, nullptr); 1564 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1565 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1566 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1567 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1568 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1569 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1570 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1571 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1572 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_S16P); 1573 ASSERT_EQ(formatVal_.channelLayout, 3); 1574 ASSERT_EQ(formatVal_.sampleRate, 48000); 1575 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 1576 ASSERT_EQ(formatVal_.channelCount, 2); 1577 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1578 ASSERT_EQ(formatVal_.bitRate, 384000); 1579 } 1580 1581 /** 1582 * @tc.name: AVSource_GetFormat_2263 1583 * @tc.desc: get source format(mpeg) 1584 * @tc.type: FUNC 1585 */ 1586 HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_2263, TestSize.Level1) 1587 { 1588 fd_ = OpenFile(g_mpegUri4); 1589 size_ = GetFileSize(g_mpegUri4); 1590 source_ = AVSourceMockFactory::CreateSourceWithURI(const_cast<char*>(g_mpegUri4.data())); 1591 ASSERT_NE(source_, nullptr); 1592 format_ = source_->GetSourceFormat(); 1593 ASSERT_NE(format_, nullptr); 1594 printf("[ sourceFormat ]: %s\n", format_->DumpInfo()); 1595 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_VIDEO, formatVal_.hasVideo)); 1596 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_HAS_AUDIO, formatVal_.hasAudio)); 1597 ASSERT_TRUE(format_->GetIntValue(AVSourceFormat::SOURCE_FILE_TYPE, formatVal_.fileType)); 1598 ASSERT_EQ(formatVal_.hasVideo, 1); 1599 ASSERT_EQ(formatVal_.hasAudio, 1); 1600 ASSERT_EQ(formatVal_.fileType, 106); 1601 trackIndex_ = 0; 1602 format_->Destroy(); 1603 format_ = source_->GetTrackFormat(trackIndex_); 1604 ASSERT_NE(format_, nullptr); 1605 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1606 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1607 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_WIDTH, formatVal_.width)); 1608 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, formatVal_.height)); 1609 ASSERT_TRUE(format_->GetDoubleValue(MediaDescriptionKey::MD_KEY_FRAME_RATE, formatVal_.frameRate)); 1610 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1611 ASSERT_EQ(formatVal_.codecMime, "video/mpeg2"); 1612 ASSERT_EQ(formatVal_.width, 1920); 1613 ASSERT_EQ(formatVal_.height, 1080); 1614 ASSERT_EQ(formatVal_.frameRate, 24.000000); 1615 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_VID); 1616 trackIndex_ = 1; 1617 format_->Destroy(); 1618 format_ = source_->GetTrackFormat(trackIndex_); 1619 ASSERT_NE(format_, nullptr); 1620 printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo()); 1621 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate)); 1622 ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime)); 1623 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount)); 1624 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout)); 1625 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType)); 1626 ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate)); 1627 ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, formatVal_.audioSampleFormat)); 1628 ASSERT_EQ(formatVal_.channelLayout, 3); 1629 ASSERT_EQ(formatVal_.sampleRate, 48000); 1630 ASSERT_EQ(formatVal_.codecMime, "audio/mpeg"); 1631 ASSERT_EQ(formatVal_.channelCount, 2); 1632 ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD); 1633 ASSERT_EQ(formatVal_.bitRate, 128000); 1634 ASSERT_EQ(formatVal_.audioSampleFormat, AudioSampleFormat::SAMPLE_F32P); 1635 } 1636 } // namespace