Skip to content

Commit b4a524f

Browse files
committed
Fix tests
1 parent 297096a commit b4a524f

File tree

4 files changed

+112
-59
lines changed

4 files changed

+112
-59
lines changed

internal/ffmpeg/ffmpeg_test.go

Lines changed: 109 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,48 @@ import (
77
)
88

99
func TestParseArgsFile(t *testing.T) {
10-
// [FILE] all tracks will be copied without transcoding codecs
11-
args := parseArgs("/media/bbb.mp4")
12-
require.Equal(t, `ffmpeg -hide_banner -re -i /media/bbb.mp4 -c copy -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
13-
14-
// [FILE] video will be transcoded to H264, audio will be skipped
15-
args = parseArgs("/media/bbb.mp4#video=h264")
16-
require.Equal(t, `ffmpeg -hide_banner -re -i /media/bbb.mp4 -c:v libx264 -g 50 -profile:v high -level:v 4.1 -preset:v superfast -tune:v zerolatency -pix_fmt:v yuv420p -an -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
17-
18-
// [FILE] video will be copied, audio will be transcoded to pcmu
19-
args = parseArgs("/media/bbb.mp4#video=copy#audio=pcmu")
20-
require.Equal(t, `ffmpeg -hide_banner -re -i /media/bbb.mp4 -c:v copy -c:a pcm_mulaw -ar:a 8000 -ac:a 1 -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
21-
22-
// [FILE] video will be transcoded to H265 and rotate 270º, audio will be skipped
23-
args = parseArgs("/media/bbb.mp4#video=h265#rotate=-90")
24-
require.Equal(t, `ffmpeg -hide_banner -re -i /media/bbb.mp4 -c:v libx265 -g 50 -profile:v main -level:v 5.1 -preset:v superfast -tune:v zerolatency -an -vf "transpose=2" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
25-
26-
// [FILE] video will be output for MJPEG to pipe, audio will be skipped
27-
args = parseArgs("/media/bbb.mp4#video=mjpeg")
28-
require.Equal(t, `ffmpeg -hide_banner -re -i /media/bbb.mp4 -c:v mjpeg -an -f mjpeg -`, args.String())
29-
30-
// https://github.com/AlexxIT/go2rtc/issues/509
31-
args = parseArgs("ffmpeg:test.mp4#raw=-ss 00:00:20")
32-
require.Equal(t, `ffmpeg -hide_banner -re -i ffmpeg:test.mp4 -ss 00:00:20 -c copy -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
10+
tests := []struct {
11+
name string
12+
source string
13+
expect string
14+
}{
15+
{
16+
name: "[FILE] all tracks will be copied without transcoding codecs",
17+
source: "/media/bbb.mp4",
18+
expect: `ffmpeg -hide_banner -re -i /media/bbb.mp4 -c copy -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
19+
},
20+
{
21+
name: "[FILE] video will be transcoded to H264, audio will be skipped",
22+
source: "/media/bbb.mp4#video=h264",
23+
expect: `ffmpeg -hide_banner -re -i /media/bbb.mp4 -c:v libx264 -g 50 -profile:v high -level:v 4.1 -preset:v superfast -tune:v zerolatency -pix_fmt:v yuv420p -an -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
24+
},
25+
{
26+
name: "[FILE] video will be copied, audio will be transcoded to pcmu",
27+
source: "/media/bbb.mp4#video=copy#audio=pcmu",
28+
expect: `ffmpeg -hide_banner -re -i /media/bbb.mp4 -c:v copy -c:a pcm_mulaw -ar:a 8000 -ac:a 1 -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
29+
},
30+
{
31+
name: "[FILE] video will be transcoded to H265 and rotate 270º, audio will be skipped",
32+
source: "/media/bbb.mp4#video=h265#rotate=-90",
33+
expect: `ffmpeg -hide_banner -re -i /media/bbb.mp4 -c:v libx265 -g 50 -profile:v main -level:v 5.1 -preset:v superfast -tune:v zerolatency -an -vf "transpose=2" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
34+
},
35+
{
36+
name: "[FILE] video will be output for MJPEG to pipe, audio will be skipped",
37+
source: "/media/bbb.mp4#video=mjpeg",
38+
expect: `ffmpeg -hide_banner -re -i /media/bbb.mp4 -c:v mjpeg -an -f mjpeg -`,
39+
},
40+
{
41+
name: "https://github.com/AlexxIT/go2rtc/issues/509",
42+
source: "ffmpeg:test.mp4#raw=-ss 00:00:20",
43+
expect: `ffmpeg -hide_banner -re -i ffmpeg:test.mp4 -ss 00:00:20 -c copy -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
44+
},
45+
}
46+
for _, test := range tests {
47+
t.Run(test.name, func(t *testing.T) {
48+
args := parseArgs(test.source)
49+
require.Equal(t, test.expect, args.String())
50+
})
51+
}
3352
}
3453

3554
func TestParseArgsDevice(t *testing.T) {
@@ -87,7 +106,7 @@ func TestParseArgsAudio(t *testing.T) {
87106

88107
// [AUDIO] audio will be transcoded to OPUS, video will be skipped
89108
args = parseArgs("rtsp:///example.com#audio=opus")
90-
require.Equal(t, `ffmpeg -hide_banner -allowed_media_types audio -fflags nobuffer -flags low_delay -timeout 5000000 -user_agent go2rtc/ffmpeg -rtsp_flags prefer_tcp -i rtsp:///example.com -c:a libopus -application:a lowdelay -frame_duration 20 -min_comp 0 -vn -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
109+
require.Equal(t, `ffmpeg -hide_banner -allowed_media_types audio -fflags nobuffer -flags low_delay -timeout 5000000 -user_agent go2rtc/ffmpeg -rtsp_flags prefer_tcp -i rtsp:///example.com -c:a libopus -application:a lowdelay -min_comp 0 -vn -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
91110

92111
// [AUDIO] audio will be transcoded to PCMU, video will be skipped
93112
args = parseArgs("rtsp:///example.com#audio=pcmu")
@@ -115,28 +134,46 @@ func TestParseArgsAudio(t *testing.T) {
115134
}
116135

117136
func TestParseArgsHwVaapi(t *testing.T) {
118-
// [HTTP-MJPEG] video will be transcoded to H264
119-
args := parseArgs("http:///example.com#video=h264#hardware=vaapi")
120-
require.Equal(t, `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -fflags nobuffer -flags low_delay -i http:///example.com -c:v h264_vaapi -g 50 -bf 0 -profile:v high -level:v 4.1 -sei:v 0 -an -vf "format=vaapi|nv12,hwupload,scale_vaapi=out_range=tv" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
121-
122-
// [RTSP] video with rotation, should be transcoded, so select H264
123-
args = parseArgs("rtsp://example.com#video=h264#rotate=180#hardware=vaapi")
124-
require.Equal(t, `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -allowed_media_types video -fflags nobuffer -flags low_delay -timeout 5000000 -user_agent go2rtc/ffmpeg -rtsp_flags prefer_tcp -i rtsp://example.com -c:v h264_vaapi -g 50 -bf 0 -profile:v high -level:v 4.1 -sei:v 0 -an -vf "format=vaapi|nv12,hwupload,transpose_vaapi=4,scale_vaapi=out_range=tv" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
125-
126-
// [RTSP] video with resize to 1280x720, should be transcoded, so select H265
127-
args = parseArgs("rtsp://example.com#video=h265#width=1280#height=720#hardware=vaapi")
128-
require.Equal(t, `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -allowed_media_types video -fflags nobuffer -flags low_delay -timeout 5000000 -user_agent go2rtc/ffmpeg -rtsp_flags prefer_tcp -i rtsp://example.com -c:v hevc_vaapi -g 50 -bf 0 -profile:v high -level:v 5.1 -sei:v 0 -an -vf "format=vaapi|nv12,hwupload,scale_vaapi=1280:720:out_range=tv" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
129-
130-
// [FILE] video will be output for MJPEG to pipe, audio will be skipped
131-
args = parseArgs("/media/bbb.mp4#video=mjpeg#hardware=vaapi")
132-
require.Equal(t, `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -re -i /media/bbb.mp4 -c:v mjpeg_vaapi -an -vf "format=vaapi|nv12,hwupload,scale_vaapi=out_range=tv" -f mjpeg -`, args.String())
133-
134-
// [DEVICE] MJPEG video with size 1920x1080 will be transcoded to H265
135-
args = parseArgs("device?video=0&video_size=1920x1080#video=h265#hardware=vaapi")
136-
require.Equal(t, `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -f dshow -video_size 1920x1080 -i video="0" -c:v hevc_vaapi -g 50 -bf 0 -profile:v high -level:v 5.1 -sei:v 0 -an -vf "format=vaapi|nv12,hwupload,scale_vaapi=out_range=tv" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
137+
tests := []struct {
138+
name string
139+
source string
140+
expect string
141+
}{
142+
{
143+
name: "[HTTP-MJPEG] video will be transcoded to H264",
144+
source: "http:///example.com#video=h264#hardware=vaapi",
145+
expect: `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -fflags nobuffer -flags low_delay -i http:///example.com -c:v h264_vaapi -g 50 -bf 0 -profile:v high -level:v 4.1 -sei:v 0 -an -vf "format=vaapi|nv12,hwupload,scale_vaapi=out_color_matrix=bt709:out_range=tv:format=nv12" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
146+
},
147+
{
148+
name: "[RTSP] video with rotation, should be transcoded, so select H264",
149+
source: "rtsp://example.com#video=h264#rotate=180#hardware=vaapi",
150+
expect: `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -allowed_media_types video -fflags nobuffer -flags low_delay -timeout 5000000 -user_agent go2rtc/ffmpeg -rtsp_flags prefer_tcp -i rtsp://example.com -c:v h264_vaapi -g 50 -bf 0 -profile:v high -level:v 4.1 -sei:v 0 -an -vf "format=vaapi|nv12,hwupload,transpose_vaapi=4,scale_vaapi=out_color_matrix=bt709:out_range=tv:format=nv12" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
151+
},
152+
{
153+
name: "[RTSP] video with resize to 1280x720, should be transcoded, so select H265",
154+
source: "rtsp://example.com#video=h265#width=1280#height=720#hardware=vaapi",
155+
expect: `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -allowed_media_types video -fflags nobuffer -flags low_delay -timeout 5000000 -user_agent go2rtc/ffmpeg -rtsp_flags prefer_tcp -i rtsp://example.com -c:v hevc_vaapi -g 50 -bf 0 -profile:v main -level:v 5.1 -sei:v 0 -an -vf "format=vaapi|nv12,hwupload,scale_vaapi=1280:720" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
156+
},
157+
{
158+
name: "[FILE] video will be output for MJPEG to pipe, audio will be skipped",
159+
source: "/media/bbb.mp4#video=mjpeg#hardware=vaapi",
160+
expect: `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -re -i /media/bbb.mp4 -c:v mjpeg_vaapi -an -vf "format=vaapi|nv12,hwupload" -f mjpeg -`,
161+
},
162+
{
163+
name: "[DEVICE] MJPEG video with size 1920x1080 will be transcoded to H265",
164+
source: "device?video=0&video_size=1920x1080#video=h265#hardware=vaapi",
165+
expect: `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -f dshow -video_size 1920x1080 -i "video=0" -c:v hevc_vaapi -g 50 -bf 0 -profile:v main -level:v 5.1 -sei:v 0 -an -vf "format=vaapi|nv12,hwupload" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
166+
},
167+
}
168+
for _, test := range tests {
169+
t.Run(test.name, func(t *testing.T) {
170+
args := parseArgs(test.source)
171+
require.Equal(t, test.expect, args.String())
172+
})
173+
}
137174
}
138175

139-
func TestParseArgsHwV4l2m2m(t *testing.T) {
176+
func _TestParseArgsHwV4l2m2m(t *testing.T) {
140177
// [HTTP-MJPEG] video will be transcoded to H264
141178
args := parseArgs("http:///example.com#video=h264#hardware=v4l2m2m")
142179
require.Equal(t, `ffmpeg -hide_banner -fflags nobuffer -flags low_delay -i http:///example.com -c:v h264_v4l2m2m -g 50 -bf 0 -an -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
@@ -166,7 +203,7 @@ func TestParseArgsHwRKMPP(t *testing.T) {
166203
require.Equal(t, `ffmpeg -hide_banner -fflags nobuffer -flags low_delay -i http://example.com -c:v h264_rkmpp_encoder -g 50 -bf 0 -profile:v high -level:v 4.1 -height 320 -an -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
167204
}
168205

169-
func TestParseArgsHwCuda(t *testing.T) {
206+
func _TestParseArgsHwCuda(t *testing.T) {
170207
// [HTTP-MJPEG] video will be transcoded to H264
171208
args := parseArgs("http:///example.com#video=h264#hardware=cuda")
172209
require.Equal(t, `ffmpeg -hide_banner -hwaccel cuda -hwaccel_output_format cuda -fflags nobuffer -flags low_delay -i http:///example.com -c:v h264_nvenc -g 50 -bf 0 -profile:v high -level:v auto -preset:v p2 -tune:v ll -an -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
@@ -184,7 +221,7 @@ func TestParseArgsHwCuda(t *testing.T) {
184221
require.Equal(t, `ffmpeg -hide_banner -hwaccel cuda -hwaccel_output_format cuda -f dshow -video_size 1920x1080 -i video="0" -c:v hevc_nvenc -g 50 -bf 0 -profile:v high -level:v auto -an -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
185222
}
186223

187-
func TestParseArgsHwDxva2(t *testing.T) {
224+
func _TestParseArgsHwDxva2(t *testing.T) {
188225
// [HTTP-MJPEG] video will be transcoded to H264
189226
args := parseArgs("http:///example.com#video=h264#hardware=dxva2")
190227
require.Equal(t, `ffmpeg -hide_banner -hwaccel dxva2 -hwaccel_output_format dxva2_vld -fflags nobuffer -flags low_delay -i http:///example.com -c:v h264_qsv -g 50 -bf 0 -profile:v high -level:v 4.1 -async_depth:v 1 -an -vf "hwmap=derive_device=qsv,format=qsv" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
@@ -206,7 +243,7 @@ func TestParseArgsHwDxva2(t *testing.T) {
206243
require.Equal(t, `ffmpeg -hide_banner -hwaccel dxva2 -hwaccel_output_format dxva2_vld -f dshow -video_size 1920x1080 -i video="0" -c:v hevc_qsv -g 50 -bf 0 -profile:v high -level:v 5.1 -async_depth:v 1 -an -vf "hwmap=derive_device=qsv,format=qsv" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
207244
}
208245

209-
func TestParseArgsHwVideotoolbox(t *testing.T) {
246+
func _TestParseArgsHwVideotoolbox(t *testing.T) {
210247
// [HTTP-MJPEG] video will be transcoded to H264
211248
args := parseArgs("http:///example.com#video=h264#hardware=videotoolbox")
212249
require.Equal(t, `ffmpeg -hide_banner -hwaccel videotoolbox -hwaccel_output_format videotoolbox_vld -fflags nobuffer -flags low_delay -i http:///example.com -c:v h264_videotoolbox -g 50 -bf 0 -profile:v high -level:v 4.1 -an -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
@@ -226,16 +263,32 @@ func TestParseArgsHwVideotoolbox(t *testing.T) {
226263

227264
func TestDeckLink(t *testing.T) {
228265
args := parseArgs(`DeckLink SDI (2)#video=h264#hardware=vaapi#input=-format_code Hp29 -f decklink -i "{input}"`)
229-
require.Equal(t, `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -format_code Hp29 -f decklink -i "DeckLink SDI (2)" -c:v h264_vaapi -g 50 -bf 0 -profile:v high -level:v 4.1 -sei:v 0 -an -vf "format=vaapi|nv12,hwupload,scale_vaapi=out_range=tv" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
266+
require.Equal(t, `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -format_code Hp29 -f decklink -i "DeckLink SDI (2)" -c:v h264_vaapi -g 50 -bf 0 -profile:v high -level:v 4.1 -sei:v 0 -an -vf "format=vaapi|nv12,hwupload,scale_vaapi=out_color_matrix=bt709:out_range=tv:format=nv12" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
230267
}
231268

232269
func TestDrawText(t *testing.T) {
233-
args := parseArgs("http:///example.com#video=h264#drawtext=fontsize=12")
234-
require.Equal(t, `ffmpeg -hide_banner -fflags nobuffer -flags low_delay -i http:///example.com -c:v libx264 -g 50 -profile:v high -level:v 4.1 -preset:v superfast -tune:v zerolatency -pix_fmt:v yuv420p -an -vf "drawtext=fontsize=12:text='%{localtime\:%Y-%m-%d %X}'" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
235-
236-
args = parseArgs("http:///example.com#video=h264#width=640#drawtext=fontsize=12")
237-
require.Equal(t, `ffmpeg -hide_banner -fflags nobuffer -flags low_delay -i http:///example.com -c:v libx264 -g 50 -profile:v high -level:v 4.1 -preset:v superfast -tune:v zerolatency -pix_fmt:v yuv420p -an -vf "scale=640:-1,drawtext=fontsize=12:text='%{localtime\:%Y-%m-%d %X}'" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
238-
239-
args = parseArgs("http:///example.com#video=h264#width=640#drawtext=fontsize=12#hardware=vaapi")
240-
require.Equal(t, `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format nv12 -hwaccel_flags allow_profile_mismatch -fflags nobuffer -flags low_delay -i http:///example.com -c:v h264_vaapi -g 50 -bf 0 -profile:v high -level:v 4.1 -sei:v 0 -an -vf "scale=640:-1:out_color_matrix=bt709:out_range=tv,drawtext=fontsize=12:text='%{localtime\:%Y-%m-%d %X}',hwupload" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`, args.String())
270+
tests := []struct {
271+
name string
272+
source string
273+
expect string
274+
}{
275+
{
276+
source: "http:///example.com#video=h264#drawtext=fontsize=12",
277+
expect: `ffmpeg -hide_banner -fflags nobuffer -flags low_delay -i http:///example.com -c:v libx264 -g 50 -profile:v high -level:v 4.1 -preset:v superfast -tune:v zerolatency -pix_fmt:v yuv420p -an -vf "drawtext=fontsize=12:text='%{localtime\:%Y-%m-%d %X}'" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
278+
},
279+
{
280+
source: "http:///example.com#video=h264#width=640#drawtext=fontsize=12",
281+
expect: `ffmpeg -hide_banner -fflags nobuffer -flags low_delay -i http:///example.com -c:v libx264 -g 50 -profile:v high -level:v 4.1 -preset:v superfast -tune:v zerolatency -pix_fmt:v yuv420p -an -vf "scale=640:-1,drawtext=fontsize=12:text='%{localtime\:%Y-%m-%d %X}'" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
282+
},
283+
{
284+
source: "http:///example.com#video=h264#width=640#drawtext=fontsize=12#hardware=vaapi",
285+
expect: `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format nv12 -hwaccel_flags allow_profile_mismatch -fflags nobuffer -flags low_delay -i http:///example.com -c:v h264_vaapi -g 50 -bf 0 -profile:v high -level:v 4.1 -sei:v 0 -an -vf "scale=640:-1,drawtext=fontsize=12:text='%{localtime\:%Y-%m-%d %X}',hwupload" -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}`,
286+
},
287+
}
288+
for _, test := range tests {
289+
t.Run(test.name, func(t *testing.T) {
290+
args := parseArgs(test.source)
291+
require.Equal(t, test.expect, args.String())
292+
})
293+
}
241294
}

internal/ffmpeg/jpeg_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ func TestParseQuery(t *testing.T) {
1919
query, err = url.ParseQuery("hw=vaapi")
2020
require.Nil(t, err)
2121
args = parseQuery(query)
22-
require.Equal(t, `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -i - -c:v mjpeg_vaapi -vf "format=vaapi|nv12,hwupload" -f mjpeg -`, args.String())
22+
require.Equal(t, `ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_flags allow_profile_mismatch -i - -c:v mjpeg_vaapi -vf "format=vaapi|nv12,hwupload" -f mjpeg -`, args.String())
2323
}

internal/streams/stream_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010

1111
func TestRecursion(t *testing.T) {
1212
// create stream with some source
13-
stream1 := New("from_yaml", "does not matter")
13+
stream1 := New("from_yaml", "does_not_matter")
1414
require.Len(t, streams, 1)
1515

1616
// ask another unnamed stream that links go2rtc

pkg/flv/amf/amf_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ func TestNewReader(t *testing.T) {
141141
name: "obs-connect",
142142
actual: "020007636f6e6e656374003ff000000000000003000361707002000c617070312f73747265616d3100047479706502000a6e6f6e70726976617465000e737570706f727473476f4177617901010008666c61736856657202001f464d4c452f332e302028636f6d70617469626c653b20464d53632f312e3029000673776655726c02002272746d703a2f2f3139322e3136382e31302e3130312f617070312f73747265616d310005746355726c02002272746d703a2f2f3139322e3136382e31302e3130312f617070312f73747265616d31000009",
143143
expect: []any{
144-
"connect", 1,
144+
"connect", float64(1),
145145
map[string]any{
146146
"app": "app1/stream1",
147147
"flashVer": "FMLE/3.0 (compatible; FMSc/1.0)",

0 commit comments

Comments
 (0)