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