1da853ecaSopenharmony_ci/* 2da853ecaSopenharmony_ci * Copyright (C) 2023 Huawei Device Co., Ltd. 3da853ecaSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4da853ecaSopenharmony_ci * you may not use this file except in compliance with the License. 5da853ecaSopenharmony_ci * You may obtain a copy of the License at 6da853ecaSopenharmony_ci * 7da853ecaSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8da853ecaSopenharmony_ci * 9da853ecaSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10da853ecaSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11da853ecaSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12da853ecaSopenharmony_ci * See the License for the specific language governing permissions and 13da853ecaSopenharmony_ci * limitations under the License. 14da853ecaSopenharmony_ci */ 15da853ecaSopenharmony_ci 16da853ecaSopenharmony_ci#include "avmuxer_demo_common.h" 17da853ecaSopenharmony_ci#include <sys/time.h> 18da853ecaSopenharmony_ci#include <time.h> 19da853ecaSopenharmony_ci 20da853ecaSopenharmony_cistruct AudioTrackParam g_audioMpegPar = { 21da853ecaSopenharmony_ci .fileName = "mpeg_44100_2.dat", 22da853ecaSopenharmony_ci .mimeType = "audio/mpeg", 23da853ecaSopenharmony_ci .sampleRate = 44100, 24da853ecaSopenharmony_ci .channels = 2, 25da853ecaSopenharmony_ci .frameSize = 1152, 26da853ecaSopenharmony_ci}; 27da853ecaSopenharmony_ci 28da853ecaSopenharmony_cistruct AudioTrackParam g_audioAacPar = { 29da853ecaSopenharmony_ci .fileName = "aac_44100_2.dat", 30da853ecaSopenharmony_ci .mimeType = "audio/mp4a-latm", 31da853ecaSopenharmony_ci .sampleRate = 44100, 32da853ecaSopenharmony_ci .channels = 2, 33da853ecaSopenharmony_ci .frameSize = 1024, 34da853ecaSopenharmony_ci}; 35da853ecaSopenharmony_ci 36da853ecaSopenharmony_cistruct AudioTrackParam g_audioAmrNbPar = { 37da853ecaSopenharmony_ci .fileName = "amrnb_8000_1.dat", 38da853ecaSopenharmony_ci .mimeType = "audio/3gpp", 39da853ecaSopenharmony_ci .sampleRate = 8000, 40da853ecaSopenharmony_ci .channels = 1, 41da853ecaSopenharmony_ci .frameSize = 1024, 42da853ecaSopenharmony_ci}; 43da853ecaSopenharmony_ci 44da853ecaSopenharmony_cistruct AudioTrackParam g_audioAmrWbPar = { 45da853ecaSopenharmony_ci .fileName = "amrwb_16000_1.dat", 46da853ecaSopenharmony_ci .mimeType = "audio/amr-wb", 47da853ecaSopenharmony_ci .sampleRate = 16000, 48da853ecaSopenharmony_ci .channels = 1, 49da853ecaSopenharmony_ci .frameSize = 1024, 50da853ecaSopenharmony_ci}; 51da853ecaSopenharmony_ci 52da853ecaSopenharmony_cistruct AudioTrackParam g_audioG711MUPar = { 53da853ecaSopenharmony_ci .fileName = "g711mu_44100_2.dat", 54da853ecaSopenharmony_ci .mimeType = "audio/g711mu", 55da853ecaSopenharmony_ci .sampleRate = 44100, 56da853ecaSopenharmony_ci .channels = 2, 57da853ecaSopenharmony_ci .frameSize = 2048, 58da853ecaSopenharmony_ci}; 59da853ecaSopenharmony_ci 60da853ecaSopenharmony_cistruct AudioTrackParam g_audioRawPar = { 61da853ecaSopenharmony_ci .fileName = "pcm_44100_2_s16le.dat", 62da853ecaSopenharmony_ci .mimeType = "audio/raw", 63da853ecaSopenharmony_ci .sampleRate = 44100, 64da853ecaSopenharmony_ci .channels = 2, 65da853ecaSopenharmony_ci .frameSize = 1024, 66da853ecaSopenharmony_ci}; 67da853ecaSopenharmony_ci 68da853ecaSopenharmony_cistruct VideoTrackParam g_videoH264Par = { 69da853ecaSopenharmony_ci .fileName = "h264_720_480.dat", 70da853ecaSopenharmony_ci .mimeType = "video/avc", 71da853ecaSopenharmony_ci .width = 720, 72da853ecaSopenharmony_ci .height = 480, 73da853ecaSopenharmony_ci .frameRate = 60, 74da853ecaSopenharmony_ci .videoDelay = 0, 75da853ecaSopenharmony_ci .colorPrimaries = 2, 76da853ecaSopenharmony_ci .colorTransfer = 2, 77da853ecaSopenharmony_ci .colorMatrixCoeff = 2, 78da853ecaSopenharmony_ci .colorRange = 0, 79da853ecaSopenharmony_ci .isHdrVivid = 0, 80da853ecaSopenharmony_ci}; 81da853ecaSopenharmony_ci 82da853ecaSopenharmony_cistruct VideoTrackParam g_videoMpeg4Par = { 83da853ecaSopenharmony_ci .fileName = "mpeg4_720_480.dat", 84da853ecaSopenharmony_ci .mimeType = "video/mp4v-es", 85da853ecaSopenharmony_ci .width = 720, 86da853ecaSopenharmony_ci .height = 480, 87da853ecaSopenharmony_ci .frameRate = 60, 88da853ecaSopenharmony_ci .videoDelay = 0, 89da853ecaSopenharmony_ci .colorPrimaries = 2, 90da853ecaSopenharmony_ci .colorTransfer = 2, 91da853ecaSopenharmony_ci .colorMatrixCoeff = 2, 92da853ecaSopenharmony_ci .colorRange = 0, 93da853ecaSopenharmony_ci .isHdrVivid = 0, 94da853ecaSopenharmony_ci}; 95da853ecaSopenharmony_ci 96da853ecaSopenharmony_cistruct VideoTrackParam g_videoH265Par = { 97da853ecaSopenharmony_ci .fileName = "h265_720_480.dat", 98da853ecaSopenharmony_ci .mimeType = "video/hevc", 99da853ecaSopenharmony_ci .width = 720, 100da853ecaSopenharmony_ci .height = 480, 101da853ecaSopenharmony_ci .frameRate = 60, 102da853ecaSopenharmony_ci .videoDelay = 2, 103da853ecaSopenharmony_ci .colorPrimaries = 2, 104da853ecaSopenharmony_ci .colorTransfer = 2, 105da853ecaSopenharmony_ci .colorMatrixCoeff = 2, 106da853ecaSopenharmony_ci .colorRange = 0, 107da853ecaSopenharmony_ci .isHdrVivid = 0, 108da853ecaSopenharmony_ci}; 109da853ecaSopenharmony_ci 110da853ecaSopenharmony_cistruct VideoTrackParam g_videoHdrPar = { 111da853ecaSopenharmony_ci .fileName = "hdr_vivid_3840_2160.dat", 112da853ecaSopenharmony_ci .mimeType = "video/hevc", 113da853ecaSopenharmony_ci .width = 3840, 114da853ecaSopenharmony_ci .height = 2160, 115da853ecaSopenharmony_ci .frameRate = 30, 116da853ecaSopenharmony_ci .videoDelay = 0, 117da853ecaSopenharmony_ci .colorPrimaries = 9, 118da853ecaSopenharmony_ci .colorTransfer = 18, 119da853ecaSopenharmony_ci .colorMatrixCoeff = 9, 120da853ecaSopenharmony_ci .colorRange = 0, 121da853ecaSopenharmony_ci .isHdrVivid = 1, 122da853ecaSopenharmony_ci}; 123da853ecaSopenharmony_ci 124da853ecaSopenharmony_cistruct VideoTrackParam g_jpegCoverPar = { 125da853ecaSopenharmony_ci .fileName = "greatwall.jpg", 126da853ecaSopenharmony_ci .mimeType = "image/jpeg", 127da853ecaSopenharmony_ci .width = 352, 128da853ecaSopenharmony_ci .height = 288, 129da853ecaSopenharmony_ci}; 130da853ecaSopenharmony_ci 131da853ecaSopenharmony_cistruct VideoTrackParam g_pngCoverPar = { 132da853ecaSopenharmony_ci .fileName = "greatwall.png", 133da853ecaSopenharmony_ci .mimeType = "image/png", 134da853ecaSopenharmony_ci .width = 352, 135da853ecaSopenharmony_ci .height = 288, 136da853ecaSopenharmony_ci}; 137da853ecaSopenharmony_ci 138da853ecaSopenharmony_cistruct VideoTrackParam g_bmpCoverPar = { 139da853ecaSopenharmony_ci .fileName = "greatwall.bmp", 140da853ecaSopenharmony_ci .mimeType = "image/bmp", 141da853ecaSopenharmony_ci .width = 352, 142da853ecaSopenharmony_ci .height = 288, 143da853ecaSopenharmony_ci}; 144da853ecaSopenharmony_ci 145da853ecaSopenharmony_ciconst char *RUN_NORMAL = "normal"; 146da853ecaSopenharmony_ciconst char *RUN_MUL_THREAD = "multhrd"; 147da853ecaSopenharmony_ci 148da853ecaSopenharmony_cilong long GetTimestamp(void) 149da853ecaSopenharmony_ci{ 150da853ecaSopenharmony_ci static const int timeScaleUs = 1000000; 151da853ecaSopenharmony_ci long long tmp; 152da853ecaSopenharmony_ci struct timeval tv; 153da853ecaSopenharmony_ci 154da853ecaSopenharmony_ci gettimeofday(&tv, NULL); 155da853ecaSopenharmony_ci tmp = tv.tv_sec; 156da853ecaSopenharmony_ci tmp = tmp * timeScaleUs; 157da853ecaSopenharmony_ci tmp = tmp + tv.tv_usec; 158da853ecaSopenharmony_ci 159da853ecaSopenharmony_ci return tmp; 160da853ecaSopenharmony_ci}