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