Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/update-packages-list.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
elixir-version: '1.17.2'
- name: Update packages list
env:
GH_TOKEN: ${{ secrets.BOT_TOKEN }}
GH_TOKEN: ${{ secrets.MEMBRANEFRAMEWORKADMIN_TOKEN }}
run: |
echo "Run script"
elixir scripts/elixir/update_packages_list.exs > output.txt 2> output.txt || ERROR=$? || true
Expand All @@ -29,11 +29,12 @@ jobs:
git config user.email 'bot@membrane.stream'
echo "Checkout"
git checkout -B auto-update-packages-list
git submodule foreach git pull
echo "Commit"
git add README.md
git commit -m "auto update packages list in readme" --allow-empty
echo "Push"
git push -f -u origin auto-update-packages-list
echo "Create PR"
gh pr create -B master -H auto-update-packages-list --label no-changelog --title "${STATUS} Auto update packages list" --body-file output.txt \
|| gh pr edit auto-update-packages-list --title "${STATUS} Auto update packages list" --body-file output.txt
|| gh pr edit auto-update-packages-list --title "${STATUS} Auto update packages list" --body-file output.txt
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# Changelog
## 1.2.5
* Add tutorials [#1007](https://github.com/membraneframework/membrane_core/pull/1007), plugins [#1012](https://github.com/membraneframework/membrane_core/pull/1012) and demos [#1013](https://github.com/membraneframework/membrane_core/pull/1013) to the docs.

## 1.2.4
* Add `:handle_end_of_stream` and `:handle_start_of_stream` options to debug elements. [#993](https://github.com/membraneframework/membrane_core/pull/993)
Expand Down
19 changes: 19 additions & 0 deletions mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,17 @@ defmodule Membrane.Mixfile do
defp docs do
[
main: "readme",
search: [
%{
name: "Ecosystem",
help: "Search all packages in our ecosystem - listed in the README or the docs",
packages: packages_in_ecosystem()
},
%{
name: "Core",
help: "Search only membrane core"
}
],
extras: extras(),
formatters: ["html"],
logo: "assets/logo.svg",
Expand Down Expand Up @@ -93,6 +104,14 @@ defmodule Membrane.Mixfile do
]
end

defp packages_in_ecosystem do
{packages, _bindings} = Code.eval_file("scripts/elixir/packages.exs")

packages
|> Enum.reject(&is_tuple(&1))
|> Enum.map(&String.to_atom/1)
end

defp extras do
[
"README.md",
Expand Down
134 changes: 134 additions & 0 deletions scripts/elixir/packages.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# Packages in the membrane ecosystem and their categories
[
{:section, "General"},
"membrane_sdk",
"membrane_core",
"membrane_rtc_engine",
"kino_membrane",
"docker_membrane",
"membrane_demo",
"membrane_tutorials",
"boombox",
{:section, "Plugins"},
{:subsection, "General purpose"},
"membrane_file_plugin",
"membrane_hackney_plugin",
"membrane_scissors_plugin",
"membrane_tee_plugin",
"membrane_funnel_plugin",
"membrane_realtimer_plugin",
"membrane_stream_plugin",
"membrane_fake_plugin",
"membrane_pcap_plugin",
"membrane_transcoder_plugin",
"membrane_generator_plugin",
"kim-company/membrane_live_framerate_converter_plugin",
"membrane_template_plugin",
{:subsection, "Streaming protocols"},
"membrane_webrtc_plugin",
"membrane_rtmp_plugin",
"membrane_http_adaptive_stream_plugin",
"membrane_srt_plugin",
"membrane_udp_plugin",
"membrane_tcp_plugin",
"membrane_rtp_plugin",
"membrane_rtp_h264_plugin",
"membrane_rtp_aac_plugin",
"membrane_rtp_vp8_plugin",
"membrane_rtp_vp9_plugin",
"membrane_rtp_mpegaudio_plugin",
"membrane_rtp_opus_plugin",
"membrane_rtp_g711_plugin",
"gBillal/membrane_rtsp_plugin",
"kim-company/membrane_mpeg_ts_plugin",
"kim-company/membrane_hls_plugin",
{:subsection, "Containers"},
"membrane_mp4_plugin",
"membrane_matroska_plugin",
"membrane_flv_plugin",
"membrane_ivf_plugin",
"membrane_ogg_plugin",
{:subsection, "Audio codecs"},
"membrane_aac_plugin",
"membrane_aac_fdk_plugin",
"membrane_flac_plugin",
"membrane_mp3_lame_plugin",
"membrane_mp3_mad_plugin",
"membrane_opus_plugin",
"membrane_wav_plugin",
"membrane_g711_plugin",
"membrane_g711_ffmpeg_plugin",
{:subsection, "Video codecs"},
"membrane_h26x_plugin",
"membrane_h264_ffmpeg_plugin",
"membrane_vpx_plugin",
"membrane_abr_transcoder_plugin",
"gBillal/membrane_h265_ffmpeg_plugin",
"binarynoggin/elixir-turbojpeg",
"kim-company/membrane_subtitle_mixer_plugin",
{:subsection, "Raw audio"},
"membrane_raw_audio_parser_plugin",
"membrane_portaudio_plugin",
"membrane_audio_mix_plugin",
"membrane_audio_filler_plugin",
"membrane_ffmpeg_swresample_plugin",
"membrane_audiometer_plugin",
{:subsection, "Raw video"},
"membrane_raw_video_parser_plugin",
"membrane_video_merger_plugin",
"membrane_smelter_plugin",
"membrane_camera_capture_plugin",
"membrane_rpicam_plugin",
"membrane_framerate_converter_plugin",
"membrane_sdl_plugin",
"membrane_overlay_plugin",
"membrane_ffmpeg_swscale_plugin",
"membrane_ffmpeg_video_filter_plugin",
"kim-company/membrane_video_mixer_plugin",
{:subsection, "External APIs"},
"membrane_aws_plugin",
"membrane_agora_plugin",
"membrane_webrtc_live",
"membrane_element_gcloud_speech_to_text",
"membrane_element_ibm_speech_to_text",
"YuzuTen/membrane_s3_plugin",
"lawik/membrane_transcription",
{:section, "Formats"},
"membrane_rtp_format",
"membrane_cmaf_format",
"membrane_matroska_format",
"membrane_mp4_format",
"membrane_raw_audio_format",
"membrane_raw_video_format",
"membrane_aac_format",
"membrane_opus_format",
"membrane_flac_format",
"membrane_mpegaudio_format",
"membrane_h264_format",
"membrane_vp8_format",
"membrane_vp9_format",
"membrane_g711_format",
"gBillal/membrane_h265_format",
{:section, "Standalone media libs"},
"elixir-webrtc/ex_webrtc",
"ex_sdp",
"ex_libnice",
"ex_libsrtp",
"ex_m3u8",
"ex_hls",
"ex_libsrt",
"membrane_rtsp",
"membrane_ffmpeg_generator",
{:section, "Utils"},
"unifex",
"bundlex",
"beamchmark",
"bunch",
"bunch_native",
"shmex",
"membrane_timestamp_queue",
"membrane_common_c",
"membrane_telemetry_metrics",
"membrane_opentelemetry",
"membrane_precompiled_dependency_provider"
]
137 changes: 3 additions & 134 deletions scripts/elixir/update_packages_list.exs
Original file line number Diff line number Diff line change
Expand Up @@ -2,141 +2,10 @@ Mix.install([{:req, "~> 0.4.0"}])

require Logger

# define packages structure
{packages, _bindings} = Code.eval_file("packages.exs", __DIR__)

packages =
[
{:section, "General"},
"membrane_sdk",
"membrane_core",
"membrane_rtc_engine",
"kino_membrane",
"docker_membrane",
"membrane_demo",
"membrane_tutorials",
"boombox",
{:section, "Plugins"},
{:subsection, "General purpose"},
"membrane_file_plugin",
"membrane_hackney_plugin",
"membrane_scissors_plugin",
"membrane_tee_plugin",
"membrane_funnel_plugin",
"membrane_realtimer_plugin",
"membrane_stream_plugin",
"membrane_fake_plugin",
"membrane_pcap_plugin",
"membrane_transcoder_plugin",
"membrane_generator_plugin",
"kim-company/membrane_live_framerate_converter_plugin",
"membrane_template_plugin",
{:subsection, "Streaming protocols"},
"membrane_webrtc_plugin",
"membrane_rtmp_plugin",
"membrane_http_adaptive_stream_plugin",
"membrane_srt_plugin",
"membrane_udp_plugin",
"membrane_tcp_plugin",
"membrane_rtp_plugin",
"membrane_rtp_h264_plugin",
"membrane_rtp_aac_plugin",
"membrane_rtp_vp8_plugin",
"membrane_rtp_vp9_plugin",
"membrane_rtp_mpegaudio_plugin",
"membrane_rtp_opus_plugin",
"membrane_rtp_g711_plugin",
"gBillal/membrane_rtsp_plugin",
"kim-company/membrane_mpeg_ts_plugin",
"kim-company/membrane_hls_plugin",
{:subsection, "Containers"},
"membrane_mp4_plugin",
"membrane_matroska_plugin",
"membrane_flv_plugin",
"membrane_ivf_plugin",
"membrane_ogg_plugin",
{:subsection, "Audio codecs"},
"membrane_aac_plugin",
"membrane_aac_fdk_plugin",
"membrane_flac_plugin",
"membrane_mp3_lame_plugin",
"membrane_mp3_mad_plugin",
"membrane_opus_plugin",
"membrane_wav_plugin",
"membrane_g711_plugin",
"membrane_g711_ffmpeg_plugin",
{:subsection, "Video codecs"},
"membrane_h26x_plugin",
"membrane_h264_ffmpeg_plugin",
"membrane_vpx_plugin",
"membrane_abr_transcoder_plugin",
"gBillal/membrane_h265_ffmpeg_plugin",
"binarynoggin/elixir-turbojpeg",
"kim-company/membrane_subtitle_mixer_plugin",
{:subsection, "Raw audio"},
"membrane_raw_audio_parser_plugin",
"membrane_portaudio_plugin",
"membrane_audio_mix_plugin",
"membrane_audio_filler_plugin",
"membrane_ffmpeg_swresample_plugin",
"membrane_audiometer_plugin",
{:subsection, "Raw video"},
"membrane_raw_video_parser_plugin",
"membrane_video_merger_plugin",
"membrane_smelter_plugin",
"membrane_camera_capture_plugin",
"membrane_rpicam_plugin",
"membrane_framerate_converter_plugin",
"membrane_sdl_plugin",
"membrane_overlay_plugin",
"membrane_ffmpeg_swscale_plugin",
"membrane_ffmpeg_video_filter_plugin",
"kim-company/membrane_video_mixer_plugin",
{:subsection, "External APIs"},
"membrane_aws_plugin",
"membrane_agora_plugin",
"membrane_webrtc_live",
"membrane_element_gcloud_speech_to_text",
"membrane_element_ibm_speech_to_text",
"YuzuTen/membrane_s3_plugin",
"lawik/membrane_transcription",
{:section, "Formats"},
"membrane_rtp_format",
"membrane_cmaf_format",
"membrane_matroska_format",
"membrane_mp4_format",
"membrane_raw_audio_format",
"membrane_raw_video_format",
"membrane_aac_format",
"membrane_opus_format",
"membrane_flac_format",
"membrane_mpegaudio_format",
"membrane_h264_format",
"membrane_vp8_format",
"membrane_vp9_format",
"membrane_g711_format",
"gBillal/membrane_h265_format",
{:section, "Standalone media libs"},
"elixir-webrtc/ex_webrtc",
"ex_sdp",
"ex_libnice",
"ex_libsrtp",
"ex_m3u8",
"ex_hls",
"ex_libsrt",
"membrane_rtsp",
"membrane_ffmpeg_generator",
{:section, "Utils"},
"unifex",
"bundlex",
"beamchmark",
"bunch",
"bunch_native",
"shmex",
"membrane_timestamp_queue",
"membrane_common_c",
"membrane_telemetry_metrics",
"membrane_opentelemetry",
"membrane_precompiled_dependency_provider"
]
packages
|> Enum.map(fn
{type, markdown} ->
%{type: type, name: markdown}
Expand Down