Skip to content

Commit

Permalink
Fix sps pps sps and add GOP and rename Fishjam (#18)
Browse files Browse the repository at this point in the history
* Add gop size

* Update to fishjam

* Add filter H264

* Add test for melting

* Apply review changes

* Fix credo issue

* Refactor FilterH264

* Fix pps and sps once again

* Fix credo issue

* Changes after review
  • Loading branch information
Rados13 authored May 24, 2024
1 parent 0d752a3 commit 39577b7
Show file tree
Hide file tree
Showing 12 changed files with 106 additions and 19 deletions.
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ orbs:
executors:
docker-executor:
docker:
- image: ghcr.io/jellyfish-dev/recording-converter-test:0.0.3
- image: ghcr.io/fishjam-dev/recording-converter-test:0.0.3
environment:
MIX_ENV: test
jobs:
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Recording Converter

[![codecov](https://codecov.io/gh/jellyfish-dev/recording-converter/branch/main/graph/badge.svg?token=ANWFKV2EDP)](https://codecov.io/gh/jellyfish-dev/recording-converter)
[![CircleCI](https://circleci.com/gh/jellyfish-dev/recording-converter.svg?style=svg)](https://circleci.com/gh/jellyfish-dev/recording-converter)
[![codecov](https://codecov.io/gh/fishjam-dev/recording-converter/branch/main/graph/badge.svg?token=ANWFKV2EDP)](https://codecov.io/gh/fishjam-dev/recording-converter)
[![CircleCI](https://circleci.com/gh/fishjam-dev/recording-converter.svg?style=svg)](https://circleci.com/gh/fishjam-dev/recording-converter)

Recording Converter is a docker image that allows to convert recording created with the use of [RecordingComponent](https://jellyfish-dev.github.io/jellyfish-docs/next/getting_started/components/recording) in Jellyfish to HLS.
Recording Converter is a docker image that allows to convert recording created with the use of [RecordingComponent](https://fishjam-dev.github.io/fishjam-docs/next/getting_started/components/recording) in Fishjam to HLS.

The environment variables possible to pass are:
* `AWS_S3_ACCESS_KEY_ID` - access key ID to S3 bucket
Expand Down
46 changes: 46 additions & 0 deletions lib/filter_h264.ex
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
defmodule RecordingConverter.FilterH264 do
@moduledoc false

use Membrane.Filter

require Logger

alias Membrane.Buffer

def_input_pad :input, accepted_format: Membrane.H264

def_output_pad :output, accepted_format: Membrane.H264

@impl true
def handle_init(_ctx, _options) do
{[], %{}}
end

@impl true
def handle_buffer(_pad, %Buffer{} = buffer, _ctx, state) do
type = buffer.metadata.h264.type

cond do
type in [:sps, :pps] ->
{[], Map.put(state, type, buffer)}

is_map_key(state, :sps) and is_map_key(state, :pps) ->
buffers = [state.sps, state.pps, buffer]

{[buffer: {:output, buffers}], %{}}

map_size(state) > 0 ->
raise "Stream lacks sps or pps which will lead to decoder deadlock"

true ->
{[buffer: {:output, buffer}], state}
end
end

@impl true
def handle_end_of_stream(_pad, _ctx, state) do
buffers = [Map.get(state, :sps), Map.get(state, :pps)] |> Enum.reject(&is_nil/1)

{[buffer: {:output, buffers}, end_of_stream: :output], state}
end
end
11 changes: 8 additions & 3 deletions lib/pipeline.ex
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ defmodule RecordingConverter.Pipeline do
@output_height 720
@output_streams_number 2
@report_file "report.json"
@framerate 30

@impl true
def handle_init(_ctx, opts) do
Expand Down Expand Up @@ -158,14 +159,17 @@ defmodule RecordingConverter.Pipeline do
options: [
width: @output_width,
height: @output_height,
encoder: %LiveCompositor.Encoder.FFmpegH264{preset: :veryfast},
encoder: %LiveCompositor.Encoder.FFmpegH264{
preset: :veryfast,
ffmpeg_options: %{"g" => Integer.to_string(@framerate * @segment_duration)}
},
initial: %{
root: Compositor.scene([])
}
]
)
|> child(:output_video_parser, %Membrane.H264.Parser{
generate_best_effort_timestamps: %{framerate: {30, 1}},
generate_best_effort_timestamps: %{framerate: {@framerate, 1}},
output_alignment: :nalu
})
|> via_in(Pad.ref(:input, :video),
Expand All @@ -179,7 +183,7 @@ defmodule RecordingConverter.Pipeline do

defp generate_output_audio_branch(state, compositor_actions) do
child(:video_compositor, %Membrane.LiveCompositor{
framerate: {30, 1},
framerate: {@framerate, 1},
composing_strategy: :offline_processing,
server_setup: Compositor.server_setup(state.compositor_path),
init_requests: compositor_actions
Expand Down Expand Up @@ -221,6 +225,7 @@ defmodule RecordingConverter.Pipeline do
output_alignment: :nalu,
output_stream_structure: :annexb
})
|> child({:filter_h264_metadata, track.id}, RecordingConverter.FilterH264)
|> via_in(Pad.ref(:video_input, track.id),
options: [
offset: Membrane.Time.nanoseconds(track["offset"]),
Expand Down
6 changes: 3 additions & 3 deletions mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ defmodule RecordingConverter.Mixfile do
use Mix.Project

@version "0.1.0"
@github_url "https://github.com/jellyfish-dev/recording-converter"
@github_url "https://github.com/fishjam-dev/recording-converter"

def project do
[
Expand All @@ -15,7 +15,7 @@ defmodule RecordingConverter.Mixfile do
dialyzer: dialyzer(),

# hex
description: "Job that converts Jellyfish recordings to other format",
description: "Job that converts Fishjam recordings to other format",
package: package(),

# docs
Expand Down Expand Up @@ -50,7 +50,7 @@ defmodule RecordingConverter.Mixfile do
defp deps do
[
{:membrane_core, "~> 1.0"},
{:membrane_aws_plugin, github: "jellyfish-dev/membrane_aws_plugin"},
{:membrane_aws_plugin, github: "fishjam-dev/membrane_aws_plugin"},
{:membrane_stream_plugin, "~> 0.4.0"},
{:membrane_rtp_plugin, "~> 0.27.0"},
{:membrane_rtp_opus_plugin, "~> 0.9.0"},
Expand Down
6 changes: 3 additions & 3 deletions mix.lock
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
"ex_aws": {:hex, :ex_aws, "2.5.3", "9c2d05ba0c057395b12c7b5ca6267d14cdaec1d8e65bdf6481fe1fd245accfb4", [:mix], [{:configparser_ex, "~> 4.0", [hex: :configparser_ex, repo: "hexpm", optional: true]}, {:hackney, "~> 1.16", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:jsx, "~> 2.8 or ~> 3.0", [hex: :jsx, repo: "hexpm", optional: true]}, {:mime, "~> 1.2 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:sweet_xml, "~> 0.7", [hex: :sweet_xml, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "67115f1d399d7ec4d191812ee565c6106cb4b1bbf19a9d4db06f265fd87da97e"},
"ex_aws_s3": {:hex, :ex_aws_s3, "2.5.3", "422468e5c3e1a4da5298e66c3468b465cfd354b842e512cb1f6fbbe4e2f5bdaf", [:mix], [{:ex_aws, "~> 2.0", [hex: :ex_aws, repo: "hexpm", optional: false]}, {:sweet_xml, ">= 0.0.0", [hex: :sweet_xml, repo: "hexpm", optional: true]}], "hexpm", "4f09dd372cc386550e484808c5ac5027766c8d0cd8271ccc578b82ee6ef4f3b8"},
"ex_doc": {:hex, :ex_doc, "0.32.2", "f60bbeb6ccbe75d005763e2a328e6f05e0624232f2393bc693611c2d3ae9fa0e", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "a4480305cdfe7fdfcbb77d1092c76161626d9a7aa4fb698aee745996e34602df"},
"ex_doc": {:hex, :ex_doc, "0.33.0", "690562b153153c7e4d455dc21dab86e445f66ceba718defe64b0ef6f0bd83ba0", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "3f69adc28274cb51be37d09b03e4565232862a4b10288a3894587b0131412124"},
"ex_sdp": {:hex, :ex_sdp, "0.15.0", "53815fb5b5e4fae0f3b26de90f372446bb8e0eed62a3cc20394d3c29519698be", [:mix], [{:bunch, "~> 1.3", [hex: :bunch, repo: "hexpm", optional: false]}, {:elixir_uuid, "~> 1.2", [hex: :elixir_uuid, repo: "hexpm", optional: false]}], "hexpm", "d3f23596b73e7057521ff0f0d55b1189c6320a2f04388aa3a80a0aa97ffb379f"},
"excoveralls": {:hex, :excoveralls, "0.15.3", "54bb54043e1cf5fe431eb3db36b25e8fd62cf3976666bafe491e3fa5e29eba47", [:mix], [{:hackney, "~> 1.16", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "f8eb5d8134d84c327685f7bb8f1db4147f1363c3c9533928234e496e3070114e"},
"file_system": {:hex, :file_system, "1.0.0", "b689cc7dcee665f774de94b5a832e578bd7963c8e637ef940cd44327db7de2cd", [:mix], [], "hexpm", "6752092d66aec5a10e662aefeed8ddb9531d79db0bc145bb8c40325ca1d8536d"},
Expand All @@ -32,7 +32,7 @@
"membrane_aac_fdk_plugin": {:hex, :membrane_aac_fdk_plugin, "0.18.8", "88d47923805cbd9a977fc7e5d3eb8d3028a2e358ad9ad7b124684adc78c2e8ee", [:mix], [{:bunch, "~> 1.4", [hex: :bunch, repo: "hexpm", optional: false]}, {:bundlex, "~> 1.3", [hex: :bundlex, repo: "hexpm", optional: false]}, {:membrane_aac_format, "~> 0.8.0", [hex: :membrane_aac_format, repo: "hexpm", optional: false]}, {:membrane_common_c, "~> 0.16.0", [hex: :membrane_common_c, repo: "hexpm", optional: false]}, {:membrane_core, "~> 1.0", [hex: :membrane_core, repo: "hexpm", optional: false]}, {:membrane_precompiled_dependency_provider, "~> 0.1.0", [hex: :membrane_precompiled_dependency_provider, repo: "hexpm", optional: false]}, {:membrane_raw_audio_format, "~> 0.12.0", [hex: :membrane_raw_audio_format, repo: "hexpm", optional: false]}, {:unifex, "~> 1.1", [hex: :unifex, repo: "hexpm", optional: false]}], "hexpm", "bb9e706d0949954affd4e295f5d3d4660096997756b5422119800d961c46cc63"},
"membrane_aac_format": {:hex, :membrane_aac_format, "0.8.0", "515631eabd6e584e0e9af2cea80471fee6246484dbbefc4726c1d93ece8e0838", [:mix], [{:bimap, "~> 1.1", [hex: :bimap, repo: "hexpm", optional: false]}], "hexpm", "a30176a94491033ed32be45e51d509fc70a5ee6e751f12fd6c0d60bd637013f6"},
"membrane_aac_plugin": {:hex, :membrane_aac_plugin, "0.18.1", "30433bffd4d5d773f79448dd9afd55d77338721688f09a89b20d742a68cc2c3d", [:mix], [{:bunch, "~> 1.0", [hex: :bunch, repo: "hexpm", optional: false]}, {:membrane_aac_format, "~> 0.8.0", [hex: :membrane_aac_format, repo: "hexpm", optional: false]}, {:membrane_core, "~> 1.0", [hex: :membrane_core, repo: "hexpm", optional: false]}], "hexpm", "8fd048c47d5d2949eb557e19f43f62d534d3af5096187f1a1a3a1694d14b772c"},
"membrane_aws_plugin": {:git, "https://github.com/jellyfish-dev/membrane_aws_plugin.git", "41b59a7e564305436da89fb753a1d14edc161af5", []},
"membrane_aws_plugin": {:git, "https://github.com/fishjam-dev/membrane_aws_plugin.git", "41b59a7e564305436da89fb753a1d14edc161af5", []},
"membrane_cmaf_format": {:hex, :membrane_cmaf_format, "0.7.1", "9ea858faefdcb181cdfa8001be827c35c5f854e9809ad57d7062cff1f0f703fd", [:mix], [], "hexpm", "3c7b4ed2a986e27f6f336d2f19e9442cb31d93b3142fc024c019572faca54a73"},
"membrane_common_c": {:hex, :membrane_common_c, "0.16.0", "caf3f29d2f5a1d32d8c2c122866110775866db2726e4272be58e66dfdf4bce40", [:mix], [{:membrane_core, "~> 1.0", [hex: :membrane_core, repo: "hexpm", optional: false]}, {:shmex, "~> 0.5.0", [hex: :shmex, repo: "hexpm", optional: false]}, {:unifex, "~> 1.0", [hex: :unifex, repo: "hexpm", optional: false]}], "hexpm", "a3c7e91de1ce1f8b23b9823188a5d13654d317235ea0ca781c05353ed3be9b1c"},
"membrane_core": {:hex, :membrane_core, "1.0.1", "08aa546c0d131c66f8b906b3dfb2b8f2749b56859f6fc52bd3ac846b944b3baa", [:mix], [{:bunch, "~> 1.6", [hex: :bunch, repo: "hexpm", optional: false]}, {:qex, "~> 0.3", [hex: :qex, repo: "hexpm", optional: false]}, {:ratio, "~> 3.0", [hex: :ratio, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a35ed68561bdf0a2dbb2f994333be78cf4e1c4d734e4cd927d77d92049bb1273"},
Expand All @@ -46,7 +46,7 @@
"membrane_mp4_format": {:hex, :membrane_mp4_format, "0.8.0", "8c6e7d68829228117d333b4fbb030e7be829aab49dd8cb047fdc664db1812e6a", [:mix], [], "hexpm", "148dea678a1f82ccfd44dbde6f936d2f21255f496cb45a22cc6eec427f025522"},
"membrane_mp4_plugin": {:hex, :membrane_mp4_plugin, "0.34.2", "6b40c919544dc62e87dd9022083c8e2fafbdc84f5806a475c96076f400ca9500", [:mix], [{:bunch, "~> 1.5", [hex: :bunch, repo: "hexpm", optional: false]}, {:membrane_aac_format, "~> 0.8.0", [hex: :membrane_aac_format, repo: "hexpm", optional: false]}, {:membrane_cmaf_format, "~> 0.7.0", [hex: :membrane_cmaf_format, repo: "hexpm", optional: false]}, {:membrane_core, "~> 1.0", [hex: :membrane_core, repo: "hexpm", optional: false]}, {:membrane_file_plugin, "~> 0.17.0", [hex: :membrane_file_plugin, repo: "hexpm", optional: false]}, {:membrane_h264_format, "~> 0.6.1", [hex: :membrane_h264_format, repo: "hexpm", optional: false]}, {:membrane_h265_format, "~> 0.2.0", [hex: :membrane_h265_format, repo: "hexpm", optional: false]}, {:membrane_mp4_format, "~> 0.8.0", [hex: :membrane_mp4_format, repo: "hexpm", optional: false]}, {:membrane_opus_format, "~> 0.3.0", [hex: :membrane_opus_format, repo: "hexpm", optional: false]}], "hexpm", "70c081524507e849ac37c418ba3d598e00c76b89d0d59e130f45ff8183494192"},
"membrane_opus_format": {:hex, :membrane_opus_format, "0.3.0", "3804d9916058b7cfa2baa0131a644d8186198d64f52d592ae09e0942513cb4c2", [:mix], [], "hexpm", "8fc89c97be50de23ded15f2050fe603dcce732566fe6fdd15a2de01cb6b81afe"},
"membrane_opus_plugin": {:hex, :membrane_opus_plugin, "0.20.1", "3a69a2933d4601775db81a75fea503c7e5aac89d5456525144fc06bd6f28e902", [:mix], [{:bunch, "~> 1.3", [hex: :bunch, repo: "hexpm", optional: false]}, {:bundlex, "~> 1.2", [hex: :bundlex, repo: "hexpm", optional: false]}, {:membrane_common_c, "~> 0.16.0", [hex: :membrane_common_c, repo: "hexpm", optional: false]}, {:membrane_core, "~> 1.0", [hex: :membrane_core, repo: "hexpm", optional: false]}, {:membrane_opus_format, "~> 0.3.0", [hex: :membrane_opus_format, repo: "hexpm", optional: false]}, {:membrane_precompiled_dependency_provider, "~> 0.1.0", [hex: :membrane_precompiled_dependency_provider, repo: "hexpm", optional: false]}, {:membrane_raw_audio_format, "~> 0.12.0", [hex: :membrane_raw_audio_format, repo: "hexpm", optional: false]}, {:unifex, "~> 1.0", [hex: :unifex, repo: "hexpm", optional: false]}], "hexpm", "82a26987f5a9f1eb1222fdea95c06d4d892c91fb7c5412adbc83f27111e51820"},
"membrane_opus_plugin": {:hex, :membrane_opus_plugin, "0.20.2", "f259a46f87c1749cd8dc8cbaf4b00df1085b39a8f0deef219a93ccda8cb54006", [:mix], [{:bunch, "~> 1.3", [hex: :bunch, repo: "hexpm", optional: false]}, {:bundlex, "~> 1.2", [hex: :bundlex, repo: "hexpm", optional: false]}, {:membrane_common_c, "~> 0.16.0", [hex: :membrane_common_c, repo: "hexpm", optional: false]}, {:membrane_core, "~> 1.0", [hex: :membrane_core, repo: "hexpm", optional: false]}, {:membrane_opus_format, "~> 0.3.0", [hex: :membrane_opus_format, repo: "hexpm", optional: false]}, {:membrane_precompiled_dependency_provider, "~> 0.1.0", [hex: :membrane_precompiled_dependency_provider, repo: "hexpm", optional: false]}, {:membrane_raw_audio_format, "~> 0.12.0", [hex: :membrane_raw_audio_format, repo: "hexpm", optional: false]}, {:unifex, "~> 1.0", [hex: :unifex, repo: "hexpm", optional: false]}], "hexpm", "4540615a49b3e3f008ba30532893ff1efb9d79b974e0b947efb92d49fc9cccbd"},
"membrane_precompiled_dependency_provider": {:hex, :membrane_precompiled_dependency_provider, "0.1.2", "8af73b7dc15ba55c9f5fbfc0453d4a8edfb007ade54b56c37d626be0d1189aba", [:mix], [{:bundlex, "~> 1.4", [hex: :bundlex, repo: "hexpm", optional: false]}], "hexpm", "7fe3e07361510445a29bee95336adde667c4162b76b7f4c8af3aeb3415292023"},
"membrane_raw_audio_format": {:hex, :membrane_raw_audio_format, "0.12.0", "b574cd90f69ce2a8b6201b0ccf0826ca28b0fbc8245b8078d9f11cef65f7d5d5", [:mix], [{:bimap, "~> 1.1", [hex: :bimap, repo: "hexpm", optional: false]}, {:bunch, "~> 1.0", [hex: :bunch, repo: "hexpm", optional: false]}, {:membrane_core, "~> 1.0", [hex: :membrane_core, repo: "hexpm", optional: false]}], "hexpm", "6e6c98e3622a2b9df19eab50ba65d7eb45949b1ba306fa8423df6cdb12fd0b44"},
"membrane_raw_video_format": {:hex, :membrane_raw_video_format, "0.3.0", "ba10f475e0814a6fe79602a74536b796047577c7ef5b0e33def27cd344229699", [:mix], [], "hexpm", "2f08760061c8a5386ecf04273480f10e48d25a1a40aa99476302b0bcd34ccb1c"},
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
35 changes: 35 additions & 0 deletions test/fixtures/karol-melt/report.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"recording_id": "37",
"tracks": {
"1cf1a2a8-e30c-47bf-a209-0619cc3847be.msr": {
"offset": 3594174959,
"type": "video",
"origin": "7b125ebc-5d5d-4fa5-ad4b-1607e9a4c6ec",
"encoding": "H264",
"metadata": null,
"clock_rate": 90000,
"start_timestamp": 3643725625,
"end_timestamp": 3646057795
},
"a8dc8319-b609-4be0-8969-6f9fdb4c6f11.msr": {
"offset": 0,
"type": "video",
"origin": "2939faaf-ddfe-43f5-a6ee-af97a09c9e78",
"encoding": "H264",
"metadata": null,
"clock_rate": 90000,
"start_timestamp": 49550666,
"end_timestamp": 50499087
},
"f4713f9b-1adb-4b48-9246-9dc6ba6aaee0.msr": {
"offset": 3288245581,
"type": "video",
"origin": "7b125ebc-5d5d-4fa5-ad4b-1607e9a4c6ec",
"encoding": "H264",
"metadata": null,
"clock_rate": 90000,
"start_timestamp": 3337796247,
"end_timestamp": 3341106897
}
}
}
6 changes: 3 additions & 3 deletions test/integration_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ defmodule RecordingConverter.RecordingTest do

files = PipelineTest.get_files(test_type)

setup_multipart_download_backend(bucket, report_path, output_dir_path, files, 25)
setup_multipart_download_backend(bucket, report_path, output_dir_path, files, 28)

{:ok, pid} = RecordingConverter.start()

Expand Down Expand Up @@ -81,7 +81,7 @@ defmodule RecordingConverter.RecordingTest do
report_path,
"test_path/output",
files,
25
28
)

{:ok, pid} = RecordingConverter.start()
Expand Down Expand Up @@ -240,7 +240,7 @@ defmodule RecordingConverter.RecordingTest do
{:ok, %{status_code: 401}}
end)

expect(ExAws.Request.HttpMock, :request, 14, request_handler)
expect(ExAws.Request.HttpMock, :request, 15, request_handler)

Process.sleep(100)
end
Expand Down
7 changes: 4 additions & 3 deletions test/pipeline_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -52,16 +52,17 @@ defmodule RecordingConverter.PipelineTest do
%{type: "multiple-audios-and-one-video", requests: 12, factor: 1},
%{type: "long-video", requests: 16, factor: 5},
%{type: "first-only-audio-second-only-video-third-audio-and-video", requests: 21, factor: 1},
%{type: "grid-limits", requests: 49, factor: 2},
%{type: "grid-limits", requests: 49, factor: 3},
%{type: "only-audio", requests: 6, factor: 1},
%{type: "peer-disconnected-during-recording-and-then-comeback", requests: 10, factor: 1},
%{
type: "peer-removes-their-track-during-recording-but-stays-in-the-room",
requests: 16,
factor: 1
factor: 3
},
%{type: "peers-before-recording-started", requests: 15, factor: 1},
%{type: "short_videos", requests: 4, factor: 1}
%{type: "short_videos", requests: 4, factor: 1},
%{type: "karol-melt", requests: 35, factor: 1}
]

for test <- tests do
Expand Down

0 comments on commit 39577b7

Please sign in to comment.