From 14cc34479864e68fa34d77d4186255e68c60d959 Mon Sep 17 00:00:00 2001 From: Mateusz Front Date: Thu, 1 Feb 2024 15:18:52 +0100 Subject: [PATCH 1/2] fix update packages list --- README.md | 10 +++++--- scripts/elixir/update_packages_list.exs | 32 ++++++++++++++----------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 10478d109..c65547b2c 100644 --- a/README.md +++ b/README.md @@ -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/) | @@ -198,6 +199,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 | @@ -229,6 +231,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/) | @@ -260,18 +263,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 | @@ -285,6 +288,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/) | diff --git a/scripts/elixir/update_packages_list.exs b/scripts/elixir/update_packages_list.exs index 1f957d702..4ec418cc0 100644 --- a/scripts/elixir/update_packages_list.exs +++ b/scripts/elixir/update_packages_list.exs @@ -6,6 +6,7 @@ require Logger packages = [ {:md, "### General"}, + "membrane_sdk", "membrane_core", "membrane_rtc_engine", "kino_membrane", @@ -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", @@ -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", @@ -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", @@ -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", @@ -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} -> @@ -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 = @@ -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 From 30e79cc6137798cd2c414820e57c15c81558e9c0 Mon Sep 17 00:00:00 2001 From: Membrane Bot Date: Thu, 1 Feb 2024 14:23:04 +0000 Subject: [PATCH 2/2] auto update packages list in readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c65547b2c..a7d250fc5 100644 --- a/README.md +++ b/README.md @@ -176,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). | |