Skip to content
Merged
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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@ If you have any questions regarding Membrane Framework or need consulting, feel
| [membrane_overlay_plugin](https://github.com/membraneframework/membrane_overlay_plugin) | Filter for applying overlay image or text on top of video | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_overlay_plugin.svg)](https://hex.pm/api/packages/membrane_overlay_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_overlay_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/) |
| [membrane_ffmpeg_video_filter_plugin](https://github.com/membraneframework/membrane_ffmpeg_video_filter_plugin) | FFmpeg-based video filters | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_ffmpeg_video_filter_plugin.svg)](https://hex.pm/api/packages/membrane_ffmpeg_video_filter_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_ffmpeg_video_filter_plugin/) |
| [membrane_yolo_plugin](https://github.com/membraneframework/membrane_yolo_plugin) | Membrane Plugin for applying YOLO object detection on raw video frames | |
| [membrane_video_mixer_plugin](https://github.com/kim-company/membrane_video_mixer_plugin) | [Maintainer: [kim-company](https://github.com/kim-company)] Membrane.Filter that mixes a variable number of input videos into one output using ffmpeg filters | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_video_mixer_plugin.svg)](https://hex.pm/api/packages/membrane_video_mixer_plugin) |

#### External APIs
Expand Down
5 changes: 5 additions & 0 deletions guides/packages/08_Plugins_|_Raw_video.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ FFmpeg-based video filters

[![Hex.pm](https://img.shields.io/hexpm/v/membrane_ffmpeg_video_filter_plugin.svg)](https://hex.pm/api/packages/membrane_ffmpeg_video_filter_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_ffmpeg_video_filter_plugin/) [![GitHub](https://img.shields.io/badge/github-code-white.svg?logo=github)](https://github.com/membraneframework/membrane_ffmpeg_video_filter_plugin)

## membrane_yolo_plugin
Membrane Plugin for applying YOLO object detection on raw video frames

[![GitHub](https://img.shields.io/badge/github-code-white.svg?logo=github)](https://github.com/membraneframework/membrane_yolo_plugin)

## membrane_video_mixer_plugin
[Maintainer: [kim-company](https://github.com/kim-company)] Membrane.Filter that mixes a variable number of input videos into one output using ffmpeg filters

Expand Down
5 changes: 1 addition & 4 deletions mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -105,11 +105,8 @@ defmodule Membrane.Mixfile do
end

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

{packages, _bindings} = Code.eval_file("scripts/elixir/hex_packages.exs")
packages
|> Enum.reject(&is_tuple(&1))
|> Enum.map(&String.to_atom/1)
end

defp extras do
Expand Down
108 changes: 108 additions & 0 deletions scripts/elixir/hex_packages.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Generated code, do not edit. See `scripts/elixir/update_packages_list.exs`.
[
:membrane_sdk,
:membrane_core,
:membrane_rtc_engine,
:kino_membrane,
:boombox,
: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_transcoder_plugin,
:membrane_generator_plugin,
: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_mpegaudio_plugin,
:membrane_rtp_opus_plugin,
:membrane_rtp_g711_plugin,
:membrane_rtsp_plugin,
:membrane_mpeg_ts_plugin,
:membrane_hls_plugin,
:membrane_mp4_plugin,
:membrane_matroska_plugin,
:membrane_flv_plugin,
:membrane_ivf_plugin,
:membrane_ogg_plugin,
: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,
:membrane_h26x_plugin,
:membrane_h264_ffmpeg_plugin,
:membrane_vpx_plugin,
:membrane_abr_transcoder_plugin,
:membrane_h265_ffmpeg_plugin,
:membrane_raw_audio_parser_plugin,
:membrane_portaudio_plugin,
:membrane_audio_mix_plugin,
:membrane_audio_filler_plugin,
:membrane_ffmpeg_swresample_plugin,
:membrane_audiometer_plugin,
: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,
:membrane_agora_plugin,
:membrane_element_gcloud_speech_to_text,
:membrane_element_ibm_speech_to_text,
:membrane_s3_plugin,
: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,
:membrane_h265_format,
:ex_webrtc,
:ex_sdp,
:ex_libnice,
:ex_libsrtp,
:ex_m3u8,
:ex_hls,
:ex_libsrt,
:membrane_rtsp,
:membrane_ffmpeg_generator,
:unifex,
:bundlex,
:beamchmark,
:bunch,
:bunch_native,
:shmex,
:membrane_timestamp_queue,
:membrane_common_c,
:membrane_telemetry_metrics,
:membrane_opentelemetry,
:membrane_precompiled_dependency_provider
]
1 change: 1 addition & 0 deletions scripts/elixir/packages.exs
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
"membrane_overlay_plugin",
"membrane_ffmpeg_swscale_plugin",
"membrane_ffmpeg_video_filter_plugin",
"membrane_yolo_plugin",
"kim-company/membrane_video_mixer_plugin",
{:subsection, "External APIs"},
"membrane_aws_plugin",
Expand Down
22 changes: 21 additions & 1 deletion scripts/elixir/update_packages_list.exs
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,26 @@ packages =
other
end)

generated_code_comment =
"Generated code, do not edit. See `scripts/elixir/update_packages_list.exs`."

# save packages that have hexdocs

hex_packages =
packages
|> Enum.filter(&(&1.type == :package and &1.hexdocs_badge != nil))
|> Enum.map(&String.to_atom(&1.name))
|> inspect(limit: :infinity)
|> Code.format_string!()
|> IO.iodata_to_binary()

hex_packages_text = """
# #{generated_code_comment}
#{hex_packages}
"""

File.write!(Path.join(__DIR__, "hex_packages.exs"), hex_packages_text)

# generate packages list in markdown

header = """
Expand All @@ -158,7 +178,7 @@ header = """
"""

generated_code_comment =
"<!-- Generated code, do not edit. See `scripts/elixir/update_packages_list.exs`. -->"
"<!-- #{generated_code_comment} -->"
Comment on lines 180 to +181

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's not reassign the variable, just add the markers in line 209


packages_md =
packages
Expand Down