• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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