Skip to content

Commit

Permalink
Merge branch 'master' into add-crash-reason-handle_crash_group
Browse files Browse the repository at this point in the history
  • Loading branch information
DominikWolek authored Feb 7, 2024
2 parents cf70249 + 3ea52d2 commit 8485c44
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 25 deletions.
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ If you have any questions regarding Membrane Framework or need consulting, feel
### General
| Package | Description | Links |
| --- | --- | --- |
| [membrane_sdk](https://github.com/membraneframework/membrane_sdk) | Full power of Membrane in a single package | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_sdk.svg)](https://hex.pm/api/packages/membrane_sdk) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_sdk/) |
| [membrane_core](https://github.com/membraneframework/membrane_core) | The core of the Membrane Framework, advanced multimedia processing framework | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_core.svg)](https://hex.pm/api/packages/membrane_core) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_core/) |
| [membrane_rtc_engine](https://github.com/jellyfish-dev/membrane_rtc_engine) | [Maintainer: [jellyfish-dev](https://github.com/jellyfish-dev)] Customizable Real-time Communication Engine/SFU library focused on WebRTC. | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_rtc_engine.svg)](https://hex.pm/api/packages/membrane_rtc_engine) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_rtc_engine/) |
| [kino_membrane](https://github.com/membraneframework/kino_membrane) | Utilities for introspecting Membrane pipelines in Livebook | [![Hex.pm](https://img.shields.io/hexpm/v/kino_membrane.svg)](https://hex.pm/api/packages/kino_membrane) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/kino_membrane/) |
Expand Down Expand Up @@ -175,6 +176,7 @@ If you have any questions regarding Membrane Framework or need consulting, feel
| [membrane_rtp_vp9_plugin](https://github.com/membraneframework-labs/membrane_rtp_vp9_plugin) | [Labs] Membrane elements for payloading and depayloading VP9 into RTP | |
| [membrane_rtp_mpegaudio_plugin](https://github.com/membraneframework/membrane_rtp_mpegaudio_plugin) | Membrane RTP MPEG Audio depayloader | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_rtp_mpegaudio_plugin.svg)](https://hex.pm/api/packages/membrane_rtp_mpegaudio_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_rtp_mpegaudio_plugin/) |
| [membrane_rtp_opus_plugin](https://github.com/membraneframework/membrane_rtp_opus_plugin) | Membrane RTP payloader and depayloader for OPUS audio | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_rtp_opus_plugin.svg)](https://hex.pm/api/packages/membrane_rtp_opus_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_rtp_opus_plugin/) |
| [membrane_rtp_g711_plugin](https://github.com/jellyfish-dev/membrane_rtp_g711_plugin) | [Maintainer: [jellyfish-dev](https://github.com/jellyfish-dev)] Membrane RTP payloader and depayloader for G711 audio | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_rtp_g711_plugin.svg)](https://hex.pm/api/packages/membrane_rtp_g711_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_rtp_g711_plugin/) |
| [membrane_quic_plugin](https://github.com/mickel8/membrane_quic_plugin) | [Maintainer: [mickel8](https://github.com/mickel8)] | |
| [membrane_mpeg_ts_plugin](https://github.com/kim-company/membrane_mpeg_ts_plugin) | [Maintainer: [kim-company](https://github.com/kim-company)] Membrane.Filter that demuxes MPEG-TS streams | |
| [membrane_hls_plugin](https://github.com/kim-company/membrane_hls_plugin) | [Maintainer: [kim-company](https://github.com/kim-company)] Plugin providing a `Membrane.HLS.Source` element for HTTP Live Streaming (HLS). | |
Expand All @@ -198,6 +200,7 @@ If you have any questions regarding Membrane Framework or need consulting, feel
| [membrane_mp3_mad_plugin](https://github.com/membraneframework/membrane_mp3_mad_plugin) | Membrane MP3 decoder based on MAD. | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_mp3_mad_plugin.svg)](https://hex.pm/api/packages/membrane_mp3_mad_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_mp3_mad_plugin/) |
| [membrane_opus_plugin](https://github.com/membraneframework/membrane_opus_plugin) | Membrane Opus encoder and decoder | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_opus_plugin.svg)](https://hex.pm/api/packages/membrane_opus_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_opus_plugin/) |
| [membrane_wav_plugin](https://github.com/membraneframework/membrane_wav_plugin) | Plugin providing elements handling audio in WAV file format. | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_wav_plugin.svg)](https://hex.pm/api/packages/membrane_wav_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_wav_plugin/) |
| [membrane_g711_plugin](https://github.com/jellyfish-dev/membrane_g711_plugin) | [Maintainer: [jellyfish-dev](https://github.com/jellyfish-dev)] Membrane G.711 decoder, encoder and parser | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_g711_plugin.svg)](https://hex.pm/api/packages/membrane_g711_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_g711_plugin/) |

#### Video codecs
| Package | Description | Links |
Expand Down Expand Up @@ -229,6 +232,7 @@ If you have any questions regarding Membrane Framework or need consulting, feel
| [membrane_video_merger_plugin](https://github.com/membraneframework/membrane_video_merger_plugin) | Membrane raw video cutter, merger and cut & merge bin | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_video_merger_plugin.svg)](https://hex.pm/api/packages/membrane_video_merger_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_video_merger_plugin/) |
| [membrane_video_compositor_plugin](https://github.com/membraneframework/membrane_video_compositor_plugin) | Membrane plugin that accepts multiple video inputs, transforms them according to provided transformations and composes them into a single output video. | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_video_compositor_plugin.svg)](https://hex.pm/api/packages/membrane_video_compositor_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_video_compositor_plugin/) |
| [membrane_camera_capture_plugin](https://github.com/membraneframework/membrane_camera_capture_plugin) | A set of elements allowing for capturing local media such as camera or microphone | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_camera_capture_plugin.svg)](https://hex.pm/api/packages/membrane_camera_capture_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_camera_capture_plugin/) |
| [membrane_rpicam_plugin](https://github.com/membraneframework/membrane_rpicam_plugin) | Membrane rpicam plugin | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_rpicam_plugin.svg)](https://hex.pm/api/packages/membrane_rpicam_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_rpicam_plugin/) |
| [membrane_framerate_converter_plugin](https://github.com/membraneframework/membrane_framerate_converter_plugin) | Element for converting frame rate of raw video stream | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_framerate_converter_plugin.svg)](https://hex.pm/api/packages/membrane_framerate_converter_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_framerate_converter_plugin/) |
| [membrane_sdl_plugin](https://github.com/membraneframework/membrane_sdl_plugin) | Membrane video player based on SDL | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_sdl_plugin.svg)](https://hex.pm/api/packages/membrane_sdl_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_sdl_plugin/) |
| [membrane_ffmpeg_swscale_plugin](https://github.com/membraneframework/membrane_ffmpeg_swscale_plugin) | Plugin providing an element scaling raw video frames, using SWScale module of FFmpeg library. | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_ffmpeg_swscale_plugin.svg)](https://hex.pm/api/packages/membrane_ffmpeg_swscale_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_ffmpeg_swscale_plugin/) |
Expand Down Expand Up @@ -260,18 +264,18 @@ If you have any questions regarding Membrane Framework or need consulting, feel
| [membrane_h264_format](https://github.com/membraneframework/membrane_h264_format) | Membrane Multimedia Framework: H264 video format definition | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_h264_format.svg)](https://hex.pm/api/packages/membrane_h264_format) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_h264_format/) |
| [membrane_vp8_format](https://github.com/membraneframework/membrane_vp8_format) | VP8 Membrane format | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_vp8_format.svg)](https://hex.pm/api/packages/membrane_vp8_format) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_vp8_format/) |
| [membrane_vp9_format](https://github.com/membraneframework/membrane_vp9_format) | VP9 Membrane format | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_vp9_format.svg)](https://hex.pm/api/packages/membrane_vp9_format) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_vp9_format/) |
| [membrane_g711_format](https://github.com/jellyfish-dev/membrane_g711_format) | [Maintainer: [jellyfish-dev](https://github.com/jellyfish-dev)] Membrane Multimedia Framework: G711 audio format definition | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_g711_format.svg)](https://hex.pm/api/packages/membrane_g711_format) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_g711_format/) |

### Standalone media libs
| Package | Description | Links |
| --- | --- | --- |
| [video_compositor](https://github.com/membraneframework/video_compositor) | Application for real-time video processing / transforming / composing | |
| [video_compositor](https://github.com/membraneframework/video_compositor) | Tool for real-time video processing / transforming / composing | |
| [ex_sdp](https://github.com/membraneframework/ex_sdp) | Parser and serializer for Session Description Protocol | [![Hex.pm](https://img.shields.io/hexpm/v/ex_sdp.svg)](https://hex.pm/api/packages/ex_sdp) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/ex_sdp/) |
| [ex_libnice](https://github.com/membraneframework/ex_libnice) | Libnice-based Interactive Connectivity Establishment (ICE) protocol support for Elixir | [![Hex.pm](https://img.shields.io/hexpm/v/ex_libnice.svg)](https://hex.pm/api/packages/ex_libnice) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/ex_libnice/) |
| [ex_libsrtp](https://github.com/membraneframework/ex_libsrtp) | Elixir bindings for libsrtp | [![Hex.pm](https://img.shields.io/hexpm/v/ex_libsrtp.svg)](https://hex.pm/api/packages/ex_libsrtp) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/ex_libsrtp/) |
| [ex_dtls](https://github.com/membraneframework/ex_dtls) | DTLS and DTLS-SRTP handshake library for Elixir, based on OpenSSL | [![Hex.pm](https://img.shields.io/hexpm/v/ex_dtls.svg)](https://hex.pm/api/packages/ex_dtls) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/ex_dtls/) |
| [ex_m3u8](https://github.com/membraneframework/ex_m3u8) | Elixir package for serializing and deserializing M3U8 manifests. | [![Hex.pm](https://img.shields.io/hexpm/v/ex_m3u8.svg)](https://hex.pm/api/packages/ex_m3u8) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/ex_m3u8/) |
| [membrane_rtsp](https://github.com/membraneframework/membrane_rtsp) | RTSP client for Elixir | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_rtsp.svg)](https://hex.pm/api/packages/membrane_rtsp) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_rtsp/) |
| [membrane_ffmpeg_generator](https://github.com/membraneframework-labs/membrane_ffmpeg_generator) | [Labs] FFmpeg video and audio generator for tests, benchmarks and demos. | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_ffmpeg_generator.svg)](https://hex.pm/api/packages/membrane_ffmpeg_generator) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_ffmpeg_generator/) |
| [webrtc-server](https://github.com/membraneframework/webrtc-server) | Signaling server for WebRTC | |

### Utils
| Package | Description | Links |
Expand All @@ -285,6 +289,7 @@ If you have any questions regarding Membrane Framework or need consulting, feel
| [membrane_common_c](https://github.com/membraneframework/membrane_common_c) | Membrane Multimedia Framework: Common C Routines | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_common_c.svg)](https://hex.pm/api/packages/membrane_common_c) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_common_c/) |
| [membrane_telemetry_metrics](https://github.com/membraneframework/membrane_telemetry_metrics) | Membrane tool for generating metrics | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_telemetry_metrics.svg)](https://hex.pm/api/packages/membrane_telemetry_metrics) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_telemetry_metrics/) |
| [membrane_opentelemetry](https://github.com/membraneframework-labs/membrane_opentelemetry) | [Labs] Utilities for using OpenTelemetry with Membrane | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_opentelemetry.svg)](https://hex.pm/api/packages/membrane_opentelemetry) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_opentelemetry/) |
| [membrane_precompiled_dependency_provider](https://github.com/membraneframework/membrane_precompiled_dependency_provider) | | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_precompiled_dependency_provider.svg)](https://hex.pm/api/packages/membrane_precompiled_dependency_provider) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_precompiled_dependency_provider/) |

<!-- packages-list-end -->

Expand Down
32 changes: 18 additions & 14 deletions scripts/elixir/update_packages_list.exs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ require Logger
packages =
[
{:md, "### General"},
"membrane_sdk",
"membrane_core",
"membrane_rtc_engine",
"kino_membrane",
Expand Down Expand Up @@ -37,6 +38,7 @@ packages =
"membrane_rtp_vp9_plugin",
"membrane_rtp_mpegaudio_plugin",
"membrane_rtp_opus_plugin",
"membrane_rtp_g711_plugin",
"mickel8/membrane_quic_plugin",
"kim-company/membrane_mpeg_ts_plugin",
"kim-company/membrane_hls_plugin",
Expand All @@ -54,6 +56,7 @@ packages =
"membrane_mp3_mad_plugin",
"membrane_opus_plugin",
"membrane_wav_plugin",
"membrane_g711_plugin",
{:md, "#### Video codecs"},
"membrane_h264_plugin",
"membrane_h264_ffmpeg_plugin",
Expand All @@ -73,6 +76,7 @@ packages =
"membrane_video_merger_plugin",
"membrane_video_compositor_plugin",
"membrane_camera_capture_plugin",
"membrane_rpicam_plugin",
"membrane_framerate_converter_plugin",
"membrane_sdl_plugin",
"membrane_ffmpeg_swscale_plugin",
Expand All @@ -98,15 +102,15 @@ packages =
"membrane_h264_format",
"membrane_vp8_format",
"membrane_vp9_format",
"membrane_g711_format",
{:md, "### Standalone media libs"},
"video_compositor",
"ex_sdp",
"ex_libnice",
"ex_libsrtp",
"ex_dtls",
"ex_m3u8",
"membrane_rtsp",
"membrane_ffmpeg_generator",
"webrtc-server",
{:md, "### Utils"},
"unifex",
"bundlex",
Expand All @@ -116,7 +120,8 @@ packages =
"shmex",
"membrane_common_c",
"membrane_telemetry_metrics",
"membrane_opentelemetry"
"membrane_opentelemetry",
"membrane_precompiled_dependency_provider"
]
|> Enum.map(fn
{:md, markdown} ->
Expand Down Expand Up @@ -158,16 +163,15 @@ package_names =

packages_blacklist = [
"circleci-orb",
"guide",
"design-system",
~r/.*_tutorial/,
"membrane_resources",
"membrane_gigachad",
"static",
"membrane_videoroom",
".github",
"membraneframework.github.io",
"membrane_rtc_engine_timescaledb"
"membrane_rtc_engine_timescaledb",
"membrane_g711_ffmpeg_plugin",
"github_actions_test"
]

lacking_repos =
Expand All @@ -192,20 +196,20 @@ packages =
Enum.map(packages, fn
%{type: :package, name: name, owner: owner} = package ->
repo =
case Map.fetch(repos, name) do
{:ok, repo} ->
repo

:error when owner != nil and gh_req_mock ->
cond do
owner != nil and gh_req_mock ->
%{owner: %{login: :mock}, html_url: :mock, description: :mock}

:error when owner != nil ->
owner != nil ->
Process.sleep(gh_req_timeout)
url = "https://api.github.com/repos/#{owner}/#{name}"
IO.puts("Fetching #{url}")
Req.get!(url, decode_json: [keys: :atoms]).body

:error ->
Map.has_key?(repos, name) ->
Map.fetch!(repos, name)

true ->
raise "Package #{inspect(name)} repo not found, please specify owner."
end

Expand Down
18 changes: 13 additions & 5 deletions scripts/python/get_author_origin.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,18 @@
membrane_team = json.load(sys.stdin)
pr_author = sys.argv[1]

for person in membrane_team:
if person["login"] == pr_author:
print("MEMBRANE")
sys.exit(0)
if pr_author == "membraneframeworkadmin":
print("MEMBRANE")
sys.exit(0)

print("COMMUNITY")
try:
for person in membrane_team:
if person["login"] == pr_author:
print("MEMBRANE")
sys.exit(0)

print("COMMUNITY")
except:
print("An exception occurred, provided JSON:")
print(membrane_team)
print("provided PR_AUTHOR:", pr_author)
13 changes: 10 additions & 3 deletions scripts/python/get_ticket_id.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
import sys, json;

project_items = json.load(sys.stdin)["items"]
full_json = json.load(sys.stdin)
pr_url = sys.argv[1]
[id] = [item["id"] for item in project_items if ("url" in item["content"] and item["content"]["url"] == pr_url)]
print(id)

try:
project_items = full_json["items"]
[id] = [item["id"] for item in project_items if ("url" in item["content"] and item["content"]["url"] == pr_url)]
print(id)
except:
print("An exception occurred, provided JSON:")
print(full_json)
print("provided PR_URL:", pr_url)

0 comments on commit 8485c44

Please sign in to comment.