1 /*
2 * Copyright (c) 2023-2024 Shenzhen Kaihong Digital Industry Development 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 "common.h"
17
18 namespace OHOS {
19 namespace Sharing {
20
21 #define VIDEO_RESOLUTION_640 640
22 #define VIDEO_RESOLUTION_480 480
23 #define VIDEO_RESOLUTION_1280 1280
24 #define VIDEO_RESOLUTION_720 720
25 #define VIDEO_RESOLUTION_1920 1920
26 #define VIDEO_RESOLUTION_1080 1080
27
28 #define VIDEO_FRAME_RATE_60 60
29 #define VIDEO_FRAME_RATE_25 25
30 #define VIDEO_FRAME_RATE_30 30
31
32 #define AUDIO_SAMPLE_BIT 16
33 #define AUDIO_SAMEPLE_CHANNEL 2
34
SetVideoTrack(VideoTrack &videoTrack, VideoFormat videoFormat)35 void Common::SetVideoTrack(VideoTrack &videoTrack, VideoFormat videoFormat)
36 {
37 switch (videoFormat) {
38 case VideoFormat::VIDEO_640X480_60:
39 videoTrack.codecId = CodecId::CODEC_H264;
40 videoTrack.width = VIDEO_RESOLUTION_640;
41 videoTrack.height = VIDEO_RESOLUTION_480;
42 videoTrack.frameRate = VIDEO_FRAME_RATE_60;
43 break;
44 case VideoFormat::VIDEO_1280X720_25:
45 videoTrack.codecId = CodecId::CODEC_H264;
46 videoTrack.width = VIDEO_RESOLUTION_1280;
47 videoTrack.height = VIDEO_RESOLUTION_720;
48 videoTrack.frameRate = VIDEO_FRAME_RATE_25;
49 break;
50 case VideoFormat::VIDEO_1280X720_30:
51 videoTrack.codecId = CodecId::CODEC_H264;
52 videoTrack.width = VIDEO_RESOLUTION_1280;
53 videoTrack.height = VIDEO_RESOLUTION_720;
54 videoTrack.frameRate = VIDEO_FRAME_RATE_30;
55 break;
56 case VideoFormat::VIDEO_1920X1080_25:
57 videoTrack.codecId = CodecId::CODEC_H264;
58 videoTrack.width = VIDEO_RESOLUTION_1920;
59 videoTrack.height = VIDEO_RESOLUTION_1080;
60 videoTrack.frameRate = VIDEO_FRAME_RATE_25;
61 break;
62 case VideoFormat::VIDEO_1920X1080_30:
63 videoTrack.codecId = CodecId::CODEC_H264;
64 videoTrack.width = VIDEO_RESOLUTION_1920;
65 videoTrack.height = VIDEO_RESOLUTION_1080;
66 videoTrack.frameRate = VIDEO_FRAME_RATE_30;
67 break;
68 default:
69 SHARING_LOGI("none process case.");
70 break;
71 }
72 }
73
SetAudioTrack(AudioTrack &audioTrack, AudioFormat audioFormat)74 void Common::SetAudioTrack(AudioTrack &audioTrack, AudioFormat audioFormat)
75 {
76 SetAudioTrack(audioTrack, CodecId::CODEC_AAC, audioFormat);
77 }
78
SetAudioTrack(AudioTrack &audioTrack, CodecId codecId, AudioFormat audioFormat)79 void Common::SetAudioTrack(AudioTrack &audioTrack, CodecId codecId, AudioFormat audioFormat)
80 {
81 switch (audioFormat) {
82 case AudioFormat::AUDIO_44100_8_2:
83 case AudioFormat::AUDIO_44100_16_2:
84 audioTrack.codecId = codecId;
85 audioTrack.sampleRate = AUDIO_SAMPLE_RATE_44100;
86 audioTrack.sampleBit = AUDIO_SAMPLE_BIT;
87 audioTrack.channels = AUDIO_SAMEPLE_CHANNEL;
88 break;
89 case AudioFormat::AUDIO_48000_16_2:
90 audioTrack.codecId = codecId;
91 audioTrack.sampleRate = AUDIO_SAMPLE_RATE_48000;
92 audioTrack.sampleBit = AUDIO_SAMPLE_BIT;
93 audioTrack.channels = AUDIO_SAMEPLE_CHANNEL;
94 break;
95 default:
96 SHARING_LOGI("none process case.");
97 break;
98 }
99 }
100 } // namespace Sharing
101 } // namespace OHOS