Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
08bb39da
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
08bb39da
编写于
2月 19, 2022
作者:
L
ling990
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
videoEncoder Signed-off-by: ling990 <liling96@huawei.com>
Signed-off-by:
N
ling990
<
liling96@huawei.com
>
上级
71051406
变更
18
展开全部
隐藏空白更改
内联
并排
Showing
18 changed file
with
4648 addition
and
0 deletion
+4648
-0
multimedia/media/media_js_standard/videoEncoder/BUILD.gn
multimedia/media/media_js_standard/videoEncoder/BUILD.gn
+32
-0
multimedia/media/media_js_standard/videoEncoder/Test.json
multimedia/media/media_js_standard/videoEncoder/Test.json
+38
-0
multimedia/media/media_js_standard/videoEncoder/signature/openharmony_sx.p7b
...dia_js_standard/videoEncoder/signature/openharmony_sx.p7b
+0
-0
multimedia/media/media_js_standard/videoEncoder/src/main/config.json
...media/media_js_standard/videoEncoder/src/main/config.json
+74
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/app.js
...media_js_standard/videoEncoder/src/main/js/default/app.js
+23
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/i18n/en-US.json
...standard/videoEncoder/src/main/js/default/i18n/en-US.json
+6
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/i18n/zh-CN.json
...standard/videoEncoder/src/main/js/default/i18n/zh-CN.json
+6
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/pages/index/index.css
...rd/videoEncoder/src/main/js/default/pages/index/index.css
+46
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/pages/index/index.hml
...rd/videoEncoder/src/main/js/default/pages/index/index.hml
+5
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/pages/index/index.js
...ard/videoEncoder/src/main/js/default/pages/index/index.js
+41
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/List.test.js
...ia_js_standard/videoEncoder/src/main/js/test/List.test.js
+18
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/VideoEncoderMultiInstancesTest.test.js
...r/src/main/js/test/VideoEncoderMultiInstancesTest.test.js
+325
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/VideoEncoderSoftwareFuncCallbackTest.test.js
...main/js/test/VideoEncoderSoftwareFuncCallbackTest.test.js
+538
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/VideoEncoderSoftwareFuncPromiseTest.test.js
.../main/js/test/VideoEncoderSoftwareFuncPromiseTest.test.js
+669
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/VideoEncoderSoftwareReliabilityCallbackTest.test.js
.../test/VideoEncoderSoftwareReliabilityCallbackTest.test.js
+1406
-0
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/VideoEncoderSoftwareReliabilityPromiseTest.test.js
...s/test/VideoEncoderSoftwareReliabilityPromiseTest.test.js
+1409
-0
multimedia/media/media_js_standard/videoEncoder/src/main/resources/base/element/string.json
.../videoEncoder/src/main/resources/base/element/string.json
+12
-0
multimedia/media/media_js_standard/videoEncoder/src/main/resources/base/media/icon.png
...ndard/videoEncoder/src/main/resources/base/media/icon.png
+0
-0
未找到文件。
multimedia/media/media_js_standard/videoEncoder/BUILD.gn
0 → 100644
浏览文件 @
08bb39da
# Copyright (C) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("video_encoder_js_hap") {
hap_profile = "./src/main/config.json"
js2abc = true
deps = [
":video_encoder_js_assets",
":video_encoder_resources",
]
certificate_profile = "./signature/openharmony_sx.p7b"
hap_name = "ActsVideoEncoderJsTest"
}
ohos_js_assets("video_encoder_js_assets") {
source_dir = "./src/main/js/default"
}
ohos_resources("video_encoder_resources") {
sources = [ "./src/main/resources" ]
hap_profile = "./src/main/config.json"
}
multimedia/media/media_js_standard/videoEncoder/Test.json
0 → 100644
浏览文件 @
08bb39da
{
"description"
:
"Configuration for videoPlayer Tests"
,
"driver"
:
{
"type"
:
"JSUnitTest"
,
"test-timeout"
:
"2000000"
,
"package"
:
"ohos.acts.multimedia.video.videoencoder"
,
"shell-timeout"
:
"60000"
},
"kits"
:
[
{
"type"
:
"PushKit"
,
"pre-push"
:
[
],
"push"
:
[
]
},
{
"type"
:
"ShellKit"
,
"run-command"
:
[
"rm -R /data/media/results"
,
"chmod 777 -R /data/media"
,
"chmod 777 /data/media/*"
,
"mkdir /data/media/results"
,
"setenforce 0"
],
"teardown-command"
:[
"setenforce 1"
]
},
{
"test-file-name"
:
[
"ActsVideoEncoderJsTest.hap"
],
"type"
:
"AppInstallKit"
,
"cleanup-apps"
:
true
}
]
}
multimedia/media/media_js_standard/videoEncoder/signature/openharmony_sx.p7b
0 → 100644
浏览文件 @
08bb39da
文件已添加
multimedia/media/media_js_standard/videoEncoder/src/main/config.json
0 → 100644
浏览文件 @
08bb39da
{
"app"
:
{
"apiVersion"
:
{
"compatible"
:
6
,
"releaseType"
:
"Beta1"
,
"target"
:
7
},
"vendor"
:
"acts"
,
"bundleName"
:
"ohos.acts.multimedia.video.videoencoder"
,
"version"
:
{
"code"
:
1000000
,
"name"
:
"1.0.0"
}
},
"deviceConfig"
:
{
"default"
:
{
"debug"
:
true
}
},
"module"
:
{
"abilities"
:
[
{
"iconId"
:
16777218
,
"skills"
:
[
{
"entities"
:
[
"entity.system.home"
],
"actions"
:
[
"action.system.home"
]
}
],
"descriptionId"
:
16777217
,
"visible"
:
true
,
"labelId"
:
16777216
,
"icon"
:
"$media:icon"
,
"name"
:
"ohos.acts.multimedia.video.videoencoder.MainAbility"
,
"description"
:
"$string:mainability_description"
,
"label"
:
"$string:entry_MainAbility"
,
"type"
:
"page"
,
"homeAbility"
:
true
,
"launchType"
:
"standard"
}
],
"deviceType"
:
[
"phone"
,
"tablet"
,
"tv"
,
"wearable"
],
"mainAbility"
:
"ohos.acts.multimedia.video.videoencoder.MainAbility"
,
"distro"
:
{
"moduleType"
:
"entry"
,
"installationFree"
:
false
,
"deliveryWithInstall"
:
true
,
"moduleName"
:
"entry"
},
"package"
:
"ohos.acts.multimedia.video.videoencoder"
,
"name"
:
".MyApplication"
,
"js"
:
[
{
"pages"
:
[
"pages/index/index"
],
"name"
:
"default"
,
"window"
:
{
"designWidth"
:
720
,
"autoDesignWidth"
:
true
}
}
]
}
}
\ No newline at end of file
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/app.js
0 → 100644
浏览文件 @
08bb39da
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export
default
{
onCreate
()
{
console
.
info
(
'
AceApplication onCreate
'
);
},
onDestroy
()
{
console
.
info
(
'
AceApplication onDestroy
'
);
}
};
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/i18n/en-US.json
0 → 100644
浏览文件 @
08bb39da
{
"strings"
:
{
"hello"
:
"Hello"
,
"world"
:
"World"
}
}
\ No newline at end of file
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/i18n/zh-CN.json
0 → 100644
浏览文件 @
08bb39da
{
"strings"
:
{
"hello"
:
"您好"
,
"world"
:
"世界"
}
}
\ No newline at end of file
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/pages/index/index.css
0 → 100644
浏览文件 @
08bb39da
.container
{
flex-direction
:
column
;
justify-content
:
center
;
align-items
:
center
;
width
:
100%
;
height
:
100%
;
}
.title
{
font-size
:
40px
;
color
:
#000000
;
opacity
:
0.9
;
}
@media
screen
and
(
device-type
:
tablet
)
and
(
orientation
:
landscape
)
{
.title
{
font-size
:
100px
;
}
}
@media
screen
and
(
device-type
:
wearable
)
{
.title
{
font-size
:
28px
;
color
:
#FFFFFF
;
}
}
@media
screen
and
(
device-type
:
tv
)
{
.container
{
background-image
:
url("/common/images/Wallpaper.png")
;
background-size
:
cover
;
background-repeat
:
no-repeat
;
background-position
:
center
;
}
.title
{
font-size
:
100px
;
color
:
#FFFFFF
;
}
}
@media
screen
and
(
device-type
:
phone
)
and
(
orientation
:
landscape
)
{
.title
{
font-size
:
60px
;
}
}
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/pages/index/index.hml
0 → 100644
浏览文件 @
08bb39da
<div class="container">
<text class="title">
{{ $t('strings.hello') }} {{ title }}
</text>
</div>
multimedia/media/media_js_standard/videoEncoder/src/main/js/default/pages/index/index.js
0 → 100644
浏览文件 @
08bb39da
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import
{
Core
,
ExpectExtend
}
from
'
deccjsunit/index
'
export
default
{
data
:
{
title
:
""
},
onInit
()
{
this
.
title
=
this
.
$t
(
'
strings.world
'
);
},
onShow
()
{
console
.
info
(
'
onShow finish
'
)
const
core
=
Core
.
getInstance
()
const
expectExtend
=
new
ExpectExtend
({
'
id
'
:
'
extend
'
})
core
.
addService
(
'
expect
'
,
expectExtend
)
core
.
init
()
const
configService
=
core
.
getDefaultService
(
'
config
'
)
this
.
timeout
=
60000
configService
.
setConfig
(
this
)
require
(
'
../../../test/List.test
'
)
core
.
execute
()
},
onReady
()
{
},
}
\ No newline at end of file
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/List.test.js
0 → 100644
浏览文件 @
08bb39da
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
require
(
'
./VideoEncoderFuncPromiseTest.test.js
'
)
require
(
'
./VideoEncoderReliabilityPromiseTest.test.js
'
)
require
(
'
./VideoEncoderMultiInstancesTest.test.js
'
)
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/VideoEncoderMultiInstancesTest.test.js
0 → 100644
浏览文件 @
08bb39da
/*
* Copyright (C) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import
media
from
'
@ohos.multimedia.media
'
import
mediademo
from
'
@ohos.multimedia.mediademo
'
import
Fileio
from
'
@ohos.fileio
'
import
{
describe
,
beforeAll
,
beforeEach
,
afterEach
,
afterAll
,
it
,
expect
}
from
'
deccjsunit/index
'
describe
(
'
videoEncoderSoftwareMultiInstances
'
,
function
()
{
const
events
=
require
(
'
events
'
);
const
eventEmitter
=
new
events
.
EventEmitter
();
const
BASIC_PATH
=
'
/data/media/results/videoencode_multiinstances_
'
;
let
videoEncodeProcessor
;
let
mediaTest
;
let
surfaceID
=
''
;
let
outputQueue
=
[];
let
outputCnt
=
0
;
let
frameTotal
=
100
;
let
stopAtEOS
=
false
;
let
resetAtEOS
=
false
;
let
flushAtEOS
=
false
;
let
sawOutputEOS
=
false
;
let
needGetMediaDes
=
false
;
beforeAll
(
function
()
{
console
.
info
(
'
beforeAll case
'
);
})
beforeEach
(
function
()
{
console
.
info
(
'
beforeEach case
'
);
videoEncodeProcessor
=
null
;
mediaTest
=
null
;
surfaceID
=
''
;
outputQueue
=
[];
outputCnt
=
0
;
frameTotal
=
100
;
stopAtEOS
=
false
;
resetAtEOS
=
false
;
flushAtEOS
=
false
;
sawOutputEOS
=
false
;
needGetMediaDes
=
false
;
})
afterEach
(
async
function
()
{
console
.
info
(
'
afterEach case
'
);
if
(
videoEncodeProcessor
!=
null
){
await
videoEncodeProcessor
.
release
().
then
(()
=>
{
console
.
info
(
"
case release success
"
);
videoEncodeProcessor
=
null
;
},
failCallback
).
catch
(
failCatch
);
}
})
afterAll
(
function
()
{
console
.
info
(
'
afterAll case
'
);
})
let
failCallback
=
function
(
err
)
{
console
.
info
(
'
case callback err :
'
+
err
);
expect
(
err
).
assertUndefined
();
}
let
failCatch
=
function
(
err
)
{
console
.
info
(
'
case catch err :
'
+
err
);
expect
(
err
).
assertUndefined
();
}
function
resetParam
()
{
outputQueue
=
[];
outputCnt
=
0
;
frameTotal
=
100
;
stopAtEOS
=
false
;
resetAtEOS
=
false
;
flushAtEOS
=
false
;
sawOutputEOS
=
false
;
needGetMediaDes
=
false
;
}
function
writeFile
(
path
,
buf
,
len
){
try
{
let
writestream
=
Fileio
.
createStreamSync
(
path
,
"
ab+
"
);
let
num
=
writestream
.
writeSync
(
buf
,
{
length
:
len
});
writestream
.
flushSync
();
writestream
.
closeSync
();
}
catch
(
e
)
{
console
.
info
(
e
)
}
}
function
sleep
(
time
)
{
return
new
Promise
((
resolve
)
=>
setTimeout
(
resolve
,
time
));
}
function
wait
(
time
)
{
for
(
let
t
=
Date
.
now
();
Date
.
now
()
-
t
<=
time
;);
}
async
function
dequeueOutputs
(
path
,
nextStep
)
{
while
(
outputQueue
.
length
>
0
)
{
let
outputObject
=
outputQueue
.
shift
();
outputCnt
+=
1
;
if
(
outputObject
.
flags
==
1
)
{
console
.
info
(
"
case last frame
"
);
mediaTest
.
closeStream
(
surfaceID
);
toRelease
();
nextStep
();
return
;
}
else
{
console
.
info
(
'
not last frame, write data to file
'
);
writeFile
(
path
,
outputObject
.
data
,
outputObject
.
length
);
console
.
info
(
"
write to file success
"
);
videoEncodeProcessor
.
releaseOutput
(
outputObject
).
then
(()
=>
{
console
.
info
(
'
release output success
'
);
});
}
}
}
function
setCallback
(
path
,
nextStep
)
{
console
.
info
(
'
case callback
'
);
videoEncodeProcessor
.
on
(
'
outputBufferAvailable
'
,
async
(
outBuffer
)
=>
{
console
.
info
(
'
outputBufferAvailable
'
);
console
.
info
(
'
outBuffer.flags:
'
+
outBuffer
.
flags
);
if
(
needGetMediaDes
)
{
videoEncodeProcessor
.
getOutputMediaDescription
().
then
((
MediaDescription
)
=>
{
console
.
info
(
"
get OutputMediaDescription success
"
);
console
.
info
(
'
get outputMediaDescription :
'
+
MediaDescription
);
needGetMediaDes
=
false
;
},
failCallback
).
catch
(
failCatch
);
}
outputQueue
.
push
(
outBuffer
);
dequeueOutputs
(
path
,
nextStep
);
});
videoEncodeProcessor
.
on
(
'
error
'
,(
err
)
=>
{
console
.
info
(
'
case error called,errName is
'
+
err
);
});
videoEncodeProcessor
.
on
(
'
outputFormatChanged
'
,(
format
)
=>
{
console
.
info
(
'
Output format changed:
'
+
format
);
});
}
async
function
toCreateByMime
(
mime
,
done
)
{
await
media
.
createVideoEncoderByMime
(
mime
).
then
((
processor
)
=>
{
if
(
typeof
(
processor
)
!=
'
undefined
'
)
{
videoEncodeProcessor
=
processor
;
console
.
info
(
'
in case : createVideoEncoderByMime success
'
);
}
else
{
console
.
info
(
'
in case : createVideoEncoderByMime fail
'
);
expect
().
assertFail
();
done
();
}
})
}
async
function
toCreateByName
(
name
,
done
)
{
await
media
.
createVideoEncoderByName
(
name
).
then
((
processor
)
=>
{
if
(
typeof
(
processor
)
!=
'
undefined
'
)
{
videoEncodeProcessor
=
processor
;
console
.
info
(
'
in case : createVideoEncoderByName success
'
);
}
else
{
console
.
info
(
'
in case : createVideoEncoderByName fail
'
);
expect
().
assertFail
();
done
();
}
})
}
async
function
toGetVideoEncoderCaps
()
{
await
videoEncodeProcessor
.
getVideoEncoderCaps
().
then
((
videoCaps
)
=>
{
console
.
info
(
"
case get getVideoEncoderCaps success
"
);
console
.
info
(
"
print videoCaps:
"
+
videoCaps
)
},
failCallback
).
catch
(
failCatch
);
}
function
toCreateStream
()
{
mediaTest
=
mediademo
.
createMediaTest
();
}
function
toSetStreamParam
(
width
,
height
,
framerate
,
frameTotal
)
{
console
.
info
(
'
case set stream parameter
'
);
mediaTest
.
setResolution
(
width
,
height
);
mediaTest
.
setFrameRate
(
framerate
);
mediaTest
.
setFrameCount
(
frameTotal
);
}
async
function
toGetInputSurface
()
{
await
videoEncodeProcessor
.
getInputSurface
().
then
((
surface
)
=>
{
expect
(
surface
!=
undefined
).
assertTrue
();
console
.
info
(
'
case getInputSurface success
'
);
surfaceID
=
surface
;
},
failCallback
).
catch
(
failCatch
);
}
function
toStartStream
()
{
console
.
info
(
'
case start stream
'
);
mediaTest
.
startStream
(
surfaceID
);
}
function
toStopStream
()
{
console
.
info
(
'
case stop stream
'
);
mediaTest
.
closeStream
(
surfaceID
);
}
async
function
toConfigure
(
mediaDescription
)
{
await
videoEncodeProcessor
.
configure
(
mediaDescription
).
then
(()
=>
{
console
.
info
(
"
case configure success
"
);
},
failCallback
).
catch
(
failCatch
);
}
async
function
toPrepare
()
{
await
videoEncodeProcessor
.
prepare
().
then
(()
=>
{
console
.
info
(
"
case prepare success
"
);
},
failCallback
).
catch
(
failCatch
);
}
async
function
toStart
()
{
await
videoEncodeProcessor
.
start
().
then
(()
=>
{
console
.
info
(
"
case start success
"
);
},
failCallback
).
catch
(
failCatch
);
}
async
function
toFlush
()
{
outputQueue
=
[];
await
videoEncodeProcessor
.
flush
().
then
(()
=>
{
console
.
info
(
"
case flush success
"
);
},
failCallback
).
catch
(
failCatch
);
}
async
function
toStop
()
{
await
videoEncodeProcessor
.
stop
().
then
(()
=>
{
console
.
info
(
"
case stop success
"
);
},
failCallback
).
catch
(
failCatch
);
}
async
function
toReset
()
{
await
videoEncodeProcessor
.
reset
().
then
(()
=>
{
console
.
info
(
"
case reset success
"
);
},
failCallback
).
catch
(
failCatch
);
}
async
function
toRelease
()
{
await
videoEncodeProcessor
.
release
().
then
(()
=>
{
console
.
info
(
"
case release success
"
);
videoEncodeProcessor
=
null
;
},
failCallback
).
catch
(
failCatch
);
}
/* *
* @tc.number : SUB_MEDIA_VIDEO_SOFTWARE_ENCODER_MULTIINSTANCE_0100
* @tc.name : 001.create 16 encoder
* @tc.desc : basic encode function
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level2
*/
it
(
'
SUB_MEDIA_VIDEO_SOFTWARE_ENCODER_MULTIINSTANCE_0100
'
,
0
,
async
function
(
done
)
{
console
.
info
(
"
case test multiple encoder instances
"
);
let
savepath
=
BASIC_PATH
+
'
0100.txt
'
;
let
mime
=
'
video/mp4v-es
'
;
let
width
=
720
;
let
height
=
480
;
let
framerate
=
60
;
let
mediaDescription
=
{
"
width
"
:
width
,
"
height
"
:
height
,
"
pixel_format
"
:
3
,
"
frame_rate
"
:
framerate
,
}
let
array
=
new
Array
();
eventEmitter
.
once
(
'
nextStep
'
,
async
()
=>
{
for
(
let
j
=
1
;
j
<
16
;
j
++
)
{
await
array
[
j
].
release
().
then
(()
=>
{
console
.
info
(
"
case release encoder
"
+
j
);
array
[
j
]
=
null
;
},
failCallback
).
catch
(
failCatch
);
}
console
.
info
(
'
release 16 encoders success
'
);
done
();
});
async
function
runCase
()
{
toCreateStream
();
toSetStreamParam
(
width
,
height
,
framerate
,
frameTotal
);
await
toConfigure
(
mediaDescription
);
setCallback
(
savepath
,
function
(){
eventEmitter
.
emit
(
'
nextStep
'
)});
await
toGetInputSurface
();
await
toPrepare
();
toStartStream
();
await
toStart
();
}
for
(
let
i
=
1
;
i
<=
16
;
i
+=
1
)
{
await
media
.
createVideoEncoderByMime
(
mime
).
then
((
processor
)
=>
{
if
(
typeof
(
processor
)
!=
'
undefined
'
)
{
console
.
info
(
"
case create createVideoEncoder success:
"
+
i
);
if
(
i
==
16
)
{
videoEncodeProcessor
=
processor
;
runCase
();
}
else
{
array
[
i
]
=
processor
;
}
}
else
{
console
.
info
(
"
case create createVideoEncoder failed:
"
+
i
);
expect
().
assertFail
();
done
();
}
},
failCallback
).
catch
(
failCatch
);
}
})
})
\ No newline at end of file
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/VideoEncoderSoftwareFuncCallbackTest.test.js
0 → 100644
浏览文件 @
08bb39da
此差异已折叠。
点击以展开。
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/VideoEncoderSoftwareFuncPromiseTest.test.js
0 → 100644
浏览文件 @
08bb39da
此差异已折叠。
点击以展开。
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/VideoEncoderSoftwareReliabilityCallbackTest.test.js
0 → 100644
浏览文件 @
08bb39da
此差异已折叠。
点击以展开。
multimedia/media/media_js_standard/videoEncoder/src/main/js/test/VideoEncoderSoftwareReliabilityPromiseTest.test.js
0 → 100644
浏览文件 @
08bb39da
此差异已折叠。
点击以展开。
multimedia/media/media_js_standard/videoEncoder/src/main/resources/base/element/string.json
0 → 100644
浏览文件 @
08bb39da
{
"string"
:
[
{
"name"
:
"entry_MainAbility"
,
"value"
:
"entry_MainAbility"
},
{
"name"
:
"mainability_description"
,
"value"
:
"JS_Empty Ability"
}
]
}
\ No newline at end of file
multimedia/media/media_js_standard/videoEncoder/src/main/resources/base/media/icon.png
0 → 100644
浏览文件 @
08bb39da
6.6 KB
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录