membrane_sdk

Build log

host

membrane_sdk 0.2.1 · fail · run membrane_sdk-0.2.1-1790997890026
1561 of 1561 lines
1Resolving Hex dependencies...2Resolution completed in 1.472s3Unchanged:4  bimap 1.3.05  bunch 1.6.46  bunch_native 0.5.27  bundlex 1.5.88  cc_precompiler 0.1.119  certifi 2.17.010  circular_buffer 1.1.011  coerce 1.0.212  crc 0.10.613  elixir_make 0.10.014  elixir_uuid 1.2.115  ex_libsrtp 0.7.216  ex_sdp 0.15.017  finch 0.24.018  h2 0.12.319  hackney 4.8.420  heap 2.0.221  hpax 1.1.022  idna 7.1.023  image 0.42.024  interactive_cmd 0.1.425  jason 1.4.526  logger_backends 1.0.127  membrane_aac_fdk_plugin 0.18.1228  membrane_aac_format 0.8.129  membrane_aac_plugin 0.18.230  membrane_audio_filler_plugin 0.3.231  membrane_audio_mix_plugin 0.16.532  membrane_audiometer_plugin 0.12.233  membrane_camera_capture_plugin 0.7.234  membrane_cmaf_format 0.7.235  membrane_common_c 0.16.236  membrane_core 1.3.437  membrane_fake_plugin 0.11.038  membrane_ffmpeg_swresample_plugin 0.20.239  membrane_ffmpeg_swscale_plugin 0.15.140  membrane_ffmpeg_video_filter_plugin 0.13.141  membrane_file_plugin 0.17.542  membrane_flac_format 0.2.243  membrane_flac_plugin 0.11.044  membrane_flv_plugin 0.12.045  membrane_framerate_converter_plugin 0.8.246  membrane_funnel_plugin 0.9.247  membrane_generator_plugin 0.10.348  membrane_h264_ffmpeg_plugin 0.31.849  membrane_h264_format 0.6.150  membrane_h265_ffmpeg_plugin 0.4.151  membrane_h265_format 0.2.052  membrane_h26x_plugin 0.10.953  membrane_hackney_plugin 0.11.354  membrane_http_adaptive_stream_plugin 0.18.455  membrane_ivf_plugin 0.7.056  membrane_matroska_format 0.1.157  membrane_matroska_plugin 0.5.258  membrane_mp3_lame_plugin 0.18.359  membrane_mp3_mad_plugin 0.18.460  membrane_mp4_format 0.8.161  membrane_mp4_plugin 0.34.2 VULNERABLE!62    EEF-CVE-2026-53423 (MEDIUM)63    aka: CVE-2026-53423, GHSA-43hj-fxwj-49qw64    Unauthenticated denial-of-service via BEAM atom table exhaustion in membrane_mp4_plugin65    https://osv.dev/vulnerability/EEF-CVE-2026-5342366  membrane_mpegaudio_format 0.3.267  membrane_ogg_plugin 0.3.068  membrane_opus_format 0.3.269  membrane_opus_plugin 0.20.570  membrane_overlay_plugin 0.1.171  membrane_portaudio_plugin 0.19.272  membrane_precompiled_dependency_provider 0.1.273  membrane_raw_audio_format 0.12.374  membrane_raw_video_format 0.3.075  membrane_raw_video_parser_plugin 0.12.176  membrane_realtimer_plugin 0.9.077  membrane_rtmp_plugin 0.23.378  membrane_rtp_format 0.8.079  membrane_rtp_h264_plugin 0.19.480  membrane_rtp_mpegaudio_plugin 0.14.081  membrane_rtp_opus_plugin 0.9.082  membrane_rtp_plugin 0.27.183  membrane_rtp_vp8_plugin 0.9.284  membrane_rtsp 0.6.285  membrane_scissors_plugin 0.8.286  membrane_sdk 0.2.187  membrane_sdl_plugin 0.18.488  membrane_stream_plugin 0.4.289  membrane_tee_plugin 0.12.090  membrane_telemetry_metrics 0.1.391  membrane_udp_plugin 0.13.092  membrane_video_merger_plugin 0.9.293  membrane_vp8_format 0.5.194  membrane_vp9_format 0.5.195  membrane_wav_plugin 0.10.396  mime 2.0.797  mimerl 1.5.098  mint 1.11.099  mockery 2.3.4100  nerves 2.0.0-pre.2101  nerves_discovery 0.1.5102  nerves_logging 0.2.4103  nerves_runtime 0.13.13104  nerves_system_bbb 2.30.2105  nerves_system_br 1.34.4106  nerves_system_mangopi_mq_pro 0.17.2107  nerves_system_qemu_aarch64 0.4.2108  nerves_system_rpi0 2.1.2109  nerves_system_rpi4 2.1.2110  nerves_system_rpi5 2.1.2111  nerves_system_trellis 0.5.0112  nerves_system_x86_64 1.34.2113  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.1114  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.1115  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.1116  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.1117  nerves_toolchain_x86_64_nerves_linux_musl 15.3.1118  nerves_uevent 0.1.7119  nimble_options 1.1.1120  nimble_parsec 1.4.2121  nimble_pool 1.1.0122  numbers 5.2.5123  parse_trans 3.4.2124  phoenix_html 4.3.0125  property_table 0.3.4126  qex 0.5.2127  quic 2.1.0128  ratio 4.0.1129  req 0.7.4130  ring_logger 0.11.7131  shmex 0.5.2132  ssl_verify_fun 1.1.7133  stream_split 0.1.7134  sweet_xml 0.7.5135  tablet 0.3.3136  telemetry 1.4.2137  telemetry_metrics 1.2.0138  toolshed 0.5.0139  uboot_env 1.0.2140  unifex 1.1.2141  vix 0.42.0142  webtransport 0.4.7143  zarex 1.0.6144Found packages with security advisories, see above for details145All dependencies have been fetched146==> membrane_mp4_format147Compiling 1 file (.ex)148Generated membrane_mp4_format app149==> stream_split150Compiling 1 file (.ex)151Generated stream_split app152==> membrane_cmaf_format153Compiling 1 file (.ex)154Generated membrane_cmaf_format app155==> membrane_mpegaudio_format156Compiling 1 file (.ex)157Generated membrane_mpegaudio_format app158==> membrane_rtsp159Compiling 13 files (.ex)160    warning: unused require Logger161    │162  8 │   require Logger163    │   ~164    │165    └─ lib/membrane_rtsp/server/conn.ex:8:3166167    warning: a struct for Membrane.RTSP.Logic.State is expected on struct update:168169        %Membrane.RTSP.Logic.State{state | cseq: state.cseq + 1}170171    but got type:172173        dynamic()174175    where "state" was given the type:176177        # type: dynamic()178        # from: lib/membrane_rtsp/session/logic.ex:95:23179        {:ok, state} <- detect_authentication_type(parsed_response, state)180181    when defining the variable "state", you must also pattern match on "%Membrane.RTSP.Logic.State{}"182183    type warning found at:184    │185 96 │       state = %State{state | cseq: state.cseq + 1}186    │               ~187    │188    └─ lib/membrane_rtsp/session/logic.ex:96:15: Membrane.RTSP.Logic.parse_response/2189190     warning: a struct for URI is expected on struct update:191192         %URI{uri | userinfo: nil}193194     but got type:195196         dynamic()197198     where "uri" was given the type:199200         # type: dynamic()201         # from: lib/membrane_rtsp/request.ex:163:28202         uri203204     when defining the variable "uri", you must also pattern match on "%URI{}"205206     type warning found at:207     │208 164 │     %URI{uri | userinfo: nil}209     │     ~210     │211     └─ lib/membrane_rtsp/request.ex:164:5: Membrane.RTSP.Request.process_uri/2212213Generated membrane_rtsp app214==> membrane_aac_plugin215Compiling 6 files (.ex)216    warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator217    │218 89 │       <<frame::binary-size(size), rest::binary>> -> {:frame, frame, rest}219    │                            ~220    │221    └─ lib/membrane/aac/parser/adts.ex:89:28: Membrane.AAC.Parser.ADTS.extract_frame/4222223    warning: the variable "adts_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator224    │225 98 │       <<_adts::binary-size(adts_size), frame::binary-size(frame_size), rest::binary>> ->226    │                            ~227    │228    └─ lib/membrane/aac/parser/adts.ex:98:28: Membrane.AAC.Parser.ADTS.extract_frame/4229230    warning: the variable "frame_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator231    │232 98 │       <<_adts::binary-size(adts_size), frame::binary-size(frame_size), rest::binary>> ->233    │                                                           ~234    │235    └─ lib/membrane/aac/parser/adts.ex:98:59: Membrane.AAC.Parser.ADTS.extract_frame/4236237    warning: the variable "custom_frequency_length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator238    │239 32 │     <<custom_frequency::integer-size(custom_frequency_length), channel_config_id::4,240    │                                      ~241    │242    └─ lib/membrane/aac/parser/audio_specific_config.ex:32:38: Membrane.AAC.Parser.AudioSpecificConfig.parse_audio_specific_config/1243244    warning: the variable "url_length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator245    │246 60 │         <<_url::binary-size(url_length), rest::binary>> = rest247    │                             ~248    │249    └─ lib/membrane/aac/parser/esds.ex:60:29: Membrane.AAC.Parser.Esds.parse_esds/1250251    warning: the variable "payload_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator252    │253 92 │         <<payload::binary-size(payload_size), rest::binary>> = rest254    │                                ~255    │256    └─ lib/membrane/aac/parser/esds.ex:92:32: Membrane.AAC.Parser.Esds.unpack_esds_section/2257258    warning: the variable "payload_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator259    │260 96 │         <<payload::binary-size(payload_size), rest::binary>> = rest261    │                                ~262    │263    └─ lib/membrane/aac/parser/esds.ex:96:32: Membrane.AAC.Parser.Esds.unpack_esds_section/2264265    warning: a struct for Membrane.AAC.Filler.State is expected on struct update:266267        %Membrane.AAC.Filler.State{state | frame_duration: new_duration, channels: stream_format.channels}268269    but got type:270271        dynamic()272273    where "state" was given the type:274275        # type: dynamic()276        # from: lib/membrane/aac/filler.ex:71:57277        state278279    when defining the variable "state", you must also pattern match on "%Membrane.AAC.Filler.State{}"280281    type warning found at:282    │283 75 │     state = %State{state | frame_duration: new_duration, channels: stream_format.channels}284    │             ~285    │286    └─ lib/membrane/aac/filler.ex:75:13: Membrane.AAC.Filler.handle_stream_format/4287288     warning: a struct for Membrane.Buffer is expected on struct update:289290         %Membrane.Buffer{291           buffer292           | payload:293               Membrane.AAC.Parser.ADTS.payload_to_adts(buffer.payload, ctx.pads.output.stream_format)294         }295296     but got type:297298         dynamic(%{..., pts: integer()})299300     where "buffer" was given the type:301302         # type: dynamic(%{..., pts: integer()})303         # from: lib/membrane/aac/parser.ex:111:12304         buffer = %{buffer | pts: round(Ratio.to_float(timestamp))}305306     when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"307308     type warning found at:309     │310 116 │           %Buffer{311     │           ~312     │313     └─ lib/membrane/aac/parser.ex:116:11: Membrane.AAC.Parser.handle_buffer/4314315    warning: a struct for Membrane.Buffer is expected on struct update:316317        %Membrane.Buffer{318          buffer319          | payload: silent_frame_payload,320            pts: round(timestamp),321            dts: round(timestamp)322        }323324    but got type:325326        dynamic(%{..., pts: term()})327328    where "buffer" was given the type:329330        # type: dynamic(%{..., pts: term()})331        # from: lib/membrane/aac/filler.ex:84:32332        buffer.pts333334    when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"335336    type warning found at:337    │338 96 │         %Buffer{339    │         ~340    │341    └─ lib/membrane/aac/filler.ex:96:9: Membrane.AAC.Filler.handle_buffer/4342343Generated membrane_aac_plugin app344==> membrane_fake_plugin345Compiling 2 files (.ex)346Generated membrane_fake_plugin app347==> membrane_flac_plugin348Compiling 2 files (.ex)349     warning: the variable "pos" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator350     │351 264 │       <<frame::binary-size(pos), next_frame_candidate::binary>> = data352     │                            ~353     │354     └─ lib/membrane_flac_plugin/engine.ex:264:28: Membrane.FLAC.Parser.Engine.find_next_frame/3355356     warning: the variable "header_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator357     │358 335 │          <<header::binary-size(header_size), _body::binary>> = data,359     │                                ~360     │361     └─ lib/membrane_flac_plugin/engine.ex:335:32: Membrane.FLAC.Parser.Engine.parse_frame_header/2362363     warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator364     │365 523 │     <<num::size(size)>> = acc366     │                 ~367     │368     └─ lib/membrane_flac_plugin/engine.ex:523:17: Membrane.FLAC.Parser.Engine.decode_utf8_num_tail/3369370Generated membrane_flac_plugin app371==> membrane_flv_plugin372Compiling 5 files (.ex)373    warning: the variable "data_offset" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator374    │375 13 │       <<_header::binary-size(data_offset), rest::binary>> ->376    │                              ~377    │378    └─ lib/membrane_flv_plugin/parser.ex:13:30: Membrane.FLV.Parser.parse_header/1379380Generated membrane_flv_plugin app381==> membrane_framerate_converter_plugin382Compiling 1 file (.ex)383Generated membrane_framerate_converter_plugin app384==> membrane_h26x_plugin385Compiling 31 files (.ex)386Generated membrane_h26x_plugin app387==> membrane_ivf_plugin388Compiling 3 files (.ex)389    warning: the variable "size_of_frame" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator390    │391 93 │          <<frame::binary-size(size_of_frame), rest::binary>> <- rest do392    │                               ~393    │394    └─ lib/deserializer.ex:93:31: Membrane.Element.IVF.Deserializer.get_buffer/2395396    warning: a struct for Membrane.Element.IVF.Serializer.State is expected on struct update:397398        %Membrane.Element.IVF.Serializer.State{state | first_frame: false}399400    but got type:401402        dynamic(%{..., first_frame: term(), timebase: %Ratio{} or integer()})403404    where "state" was given the types:405406        # type: dynamic(%{..., timebase: %Ratio{} or integer()})407        # from: lib/serializer.ex:55:19408        Membrane.Element.IVF.Headers.create_ivf_frame_header(byte_size(frame), timestamp, state.timebase)409410        # type: dynamic(%{..., first_frame: term(), timebase: %Ratio{} or integer()})411        # from: lib/serializer.ex:59:16412        state.first_frame413414    when defining the variable "state", you must also pattern match on "%Membrane.Element.IVF.Serializer.State{}"415416    type warning found at:417    │418 72 │      %State{state | first_frame: false}}419    │      ~420    │421    └─ lib/serializer.ex:72:6: Membrane.Element.IVF.Serializer.handle_buffer/4422423    warning: a struct for Membrane.Element.IVF.Deserializer.State is expected on struct update:424425        %Membrane.Element.IVF.Deserializer.State{426          state427          | frame_acc: <<state.frame_acc::binary, buffer.payload::binary>>428        }429430    but got type:431432        dynamic(not %Membrane.Element.IVF.Deserializer.State{start_of_stream?: true})433434    where "state" was given the type:435436        # type: dynamic(not %Membrane.Element.IVF.Deserializer.State{start_of_stream?: true})437        # from: lib/deserializer.ex:70:43438        state439440    when defining the variable "state", you must also pattern match on "%Membrane.Element.IVF.Deserializer.State{}"441442    type warning found at:443    │444 71 │     state = %State{state | frame_acc: state.frame_acc <> buffer.payload}445    │             ~446    │447    └─ lib/deserializer.ex:71:13: Membrane.Element.IVF.Deserializer.handle_buffer/4448449    warning: a struct for Membrane.Element.IVF.Deserializer.State is expected on struct update:450451        %Membrane.Element.IVF.Deserializer.State{state | frame_acc: rest}452453    but got type:454455        dynamic(%{..., frame_acc: term(), timebase: term()})456457    where "state" was given the types:458459        # type: dynamic(%{..., frame_acc: term()})460        # from: lib/deserializer.ex:83:10461        get_buffer(state.frame_acc, state.timebase)462463        # type: dynamic(%{..., frame_acc: term(), timebase: term()})464        # from: lib/deserializer.ex:83:10465        get_buffer(state.frame_acc, state.timebase)466467    when defining the variable "state", you must also pattern match on "%Membrane.Element.IVF.Deserializer.State{}"468469    type warning found at:470    │471 84 │       {:ok, buffer, rest} -> flush_acc(%State{state | frame_acc: rest}, [buffer | buffers])472    │                                        ~473    │474    └─ lib/deserializer.ex:84:40: Membrane.Element.IVF.Deserializer.flush_acc/2475476Generated membrane_ivf_plugin app477==> membrane_mp4_plugin478Compiling 28 files (.ex)479    warning: the variable "content_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator480    │481 23 │           header_content: <<content::binary-size(content_size), data::binary>> <- rest,482    │                                                  ~483    │484    └─ lib/membrane_mp4/container/parse_helper.ex:23:50: Membrane.MP4.Container.ParseHelper.parse_boxes/4485486    warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator487    │488 61 │       <<^reserved::bitstring-size(size), rest::bitstring>> -> {:ok, {[], rest}, context}489    │                                   ~490    │491    └─ lib/membrane_mp4/container/parse_helper.ex:61:35: Membrane.MP4.Container.ParseHelper.parse_field/3492493     warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator494     │495 126 │       <<int::signed-integer-size(size), rest::bitstring>> -> {:ok, {int, rest}, context}496     │                                  ~497     │498     └─ lib/membrane_mp4/container/parse_helper.ex:126:34: Membrane.MP4.Container.ParseHelper.parse_field/3499500     warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator501     │502 133 │       <<uint::integer-size(size), rest::bitstring>> -> {:ok, {uint, rest}, context}503     │                            ~504     │505     └─ lib/membrane_mp4/container/parse_helper.ex:133:28: Membrane.MP4.Container.ParseHelper.parse_field/3506507     warning: the variable "int_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator508     │509 140 │       <<int::integer-size(int_size), frac::integer-size(frac_size), rest::bitstring>> ->510     │                           ~511     │512     └─ lib/membrane_mp4/container/parse_helper.ex:140:27: Membrane.MP4.Container.ParseHelper.parse_field/3513514     warning: the variable "frac_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator515     │516 140 │       <<int::integer-size(int_size), frac::integer-size(frac_size), rest::bitstring>> ->517     │                                                         ~518     │519     └─ lib/membrane_mp4/container/parse_helper.ex:140:57: Membrane.MP4.Container.ParseHelper.parse_field/3520521     warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator522     │523 154 │       <<bin::bitstring-size(size), rest::bitstring>> -> {:ok, {bin, rest}, context}524     │                             ~525     │526     └─ lib/membrane_mp4/container/parse_helper.ex:154:29: Membrane.MP4.Container.ParseHelper.parse_field/3527528    warning: the variable "to_skip" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator529    │530 75 │       <<_to_skip::binary-size(to_skip), payload::binary-size(size), rest::binary>> ->531    │                               ~532    │533    └─ lib/membrane_mp4/demuxer/isom/samples_info.ex:75:31: Membrane.MP4.Demuxer.ISOM.SamplesInfo.do_get_samples/3534535    warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator536    │537 75 │       <<_to_skip::binary-size(to_skip), payload::binary-size(size), rest::binary>> ->538    │                                                              ~539    │540    └─ lib/membrane_mp4/demuxer/isom/samples_info.ex:75:62: Membrane.MP4.Demuxer.ISOM.SamplesInfo.do_get_samples/3541542     warning: the variable "mdat_header_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator543     │544 350 │         <<_header::binary-size(mdat_header_size), content::binary>> = state.partial545     │                                ~546     │547     └─ lib/membrane_mp4/demuxer/isom.ex:350:32: Membrane.MP4.Demuxer.ISOM.handle_can_read_mdat_box/2548549     warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:550551         %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{&1 | track_with_keyframes?: is_video_pad}552553     but got type:554555         dynamic()556557     instead of using &1, you must define an anonymous function, define a variable and pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"558559     type warning found at:560     │561 301 │         &%SamplesQueue{&1 | track_with_keyframes?: is_video_pad}562     │          ~563     │564     └─ lib/membrane_mp4/muxer/cmaf.ex:301:10: Membrane.MP4.Muxer.CMAF.handle_stream_format/4565566     warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:567568         %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{569           queue570           | collected_samples_duration: queue.collected_samples_duration + sample.metadata.duration,571             target_samples: [sample | queue.target_samples]572         }573574     but got type:575576         dynamic()577578     where "queue" was given the type:579580         # type: dynamic()581         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:125:16582         queue583584     when defining the variable "queue", you must also pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"585586     type warning found at:587     │588 127 │     %__MODULE__{589     │     ~590     │591     └─ lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:127:5: Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.do_push/6592593     warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:594595         %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{596           queue597           | excess_samples: [sample | queue.excess_samples]598         }599600     but got type:601602         dynamic(%{..., collectable?: not false and not nil})603604     where "queue" was given the types:605606         # type: dynamic(%{..., collectable?: term()})607         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:14608         queue.collectable?609610         # type: dynamic(%{..., collectable?: not false and not nil})611         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:14612         queue.collectable?613614     when defining the variable "queue", you must also pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"615616     type warning found at:617     │618 186 │       %__MODULE__{queue | excess_samples: [sample | queue.excess_samples]}619     │       ~620     │621     └─ lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:186:7: Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.do_push/6622623     warning: a struct for Membrane.Buffer is expected on struct update:624625         %Membrane.Buffer{sample | dts: Membrane.Buffer.get_dts_or_pts(sample)}626627     but got type:628629         dynamic()630631     where "sample" was given the type:632633         # type: dynamic()634         # from: lib/membrane_mp4/muxer/cmaf.ex:341:49635         sample636637     when defining the variable "sample", you must also pattern match on "%Membrane.Buffer{}"638639     type warning found at:640     │641 348 │     sample = %Buffer{sample | dts: Buffer.get_dts_or_pts(sample)}642     │              ~643     │644     └─ lib/membrane_mp4/muxer/cmaf.ex:348:14: Membrane.MP4.Muxer.CMAF.handle_buffer/4645646     warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:647648         %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{649           queue650           | collectable?: true,651             target_samples: Enum.reverse(target_samples),652             collected_samples_duration: total_duration(target_samples),653             excess_samples: [sample]654         }655656     but got type:657658         dynamic(%{659           ...,660           collectable?: false or nil,661           excess_samples: list(term()),662           target_samples: term(),663           track_with_keyframes?: true664         })665666     where "queue" was given the types:667668         # type: dynamic(%{..., collectable?: term()})669         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:14670         queue.collectable?671672         # type: dynamic(%{..., collectable?: false or nil})673         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:14674         queue.collectable?675676         # type: dynamic(%{..., collectable?: false or nil, track_with_keyframes?: term()})677         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:188:16678         queue.track_with_keyframes?679680         # type: dynamic(%{..., collectable?: false or nil, track_with_keyframes?: boolean()})681         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:188:16682         queue.track_with_keyframes?683684         # type: dynamic(%{..., collectable?: false or nil, track_with_keyframes?: true})685         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:188:16686         queue.track_with_keyframes?687688         # type: dynamic(%{689           ...,690           collectable?: false or nil,691           excess_samples: list(term()),692           track_with_keyframes?: true693         })694         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:189:47695         queue.excess_samples ++ queue.target_samples696697         # type: dynamic(%{698           ...,699           collectable?: false or nil,700           excess_samples: list(term()),701           target_samples: term(),702           track_with_keyframes?: true703         })704         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:189:47705         queue.excess_samples ++ queue.target_samples706707     when defining the variable "queue", you must also pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"708709     type warning found at:710     │711 191 │         %__MODULE__{712     │         ~713     │714     └─ lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:191:9: Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.do_push/6715716     warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:717718         %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{719           queue720           | collectable?: true,721             target_samples: Enum.reverse(queue.target_samples),722             excess_samples: [sample | queue.excess_samples]723         }724725     but got type:726727         dynamic(%{..., collectable?: false or nil, track_with_keyframes?: boolean()})728729     where "queue" was given the types:730731         # type: dynamic(%{..., collectable?: term()})732         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:14733         queue.collectable?734735         # type: dynamic(%{..., collectable?: false or nil})736         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:14737         queue.collectable?738739         # type: dynamic(%{..., collectable?: false or nil, track_with_keyframes?: term()})740         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:188:16741         queue.track_with_keyframes?742743         # type: dynamic(%{..., collectable?: false or nil, track_with_keyframes?: boolean()})744         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:188:16745         queue.track_with_keyframes?746747     when defining the variable "queue", you must also pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"748749     type warning found at:750     │751 199 │         %__MODULE__{752     │         ~753     │754     └─ lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:199:9: Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.do_push/6755756     warning: a struct for Membrane.Buffer is expected on struct update:757758         %Membrane.Buffer{sample | metadata: sample_metadata}759760     but got type:761762         dynamic(%{..., metadata: map()})763764     where "sample" was given the type:765766         # type: dynamic(%{..., metadata: map()})767         # from: lib/membrane_mp4/muxer/cmaf.ex:494:17768         Map.put(769           sample.metadata,770           :duration,771           Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.last_sample(queue).metadata.duration772         )773774     when defining the variable "sample", you must also pattern match on "%Membrane.Buffer{}"775776     type warning found at:777     │778 496 │           sample = %Buffer{sample | metadata: sample_metadata}779     │                    ~780     │781     └─ lib/membrane_mp4/muxer/cmaf.ex:496:20: Membrane.MP4.Muxer.CMAF.generate_end_of_stream_segment/4782783     warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:784785         %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{786           queue787           | collectable?: false,788             collected_samples_duration: 0,789             target_samples: [],790             excess_samples: []791         }792793     but got type:794795         dynamic()796797     where "queue" was given the type:798799         # type: dynamic()800         # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:329:20801         queue802803     when defining the variable "queue", you must also pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"804805     type warning found at:806     │807 330 │     %__MODULE__{808     │     ~809     │810     └─ lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:330:5: Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.reset_queue/1811812     warning: a struct for Membrane.Buffer is expected on struct update:813814         %Membrane.Buffer{prev_sample | metadata: prev_sample_metadata}815816     but got type:817818         dynamic(%{..., dts: term(), metadata: map()})819820     where "prev_sample" was given the types:821822         # type: dynamic(not nil)823         # from: lib/membrane_mp4/muxer/cmaf.ex:727824         prev_sample == nil825826         # type: dynamic(%{..., dts: term()})827         # from: lib/membrane_mp4/muxer/cmaf.ex:730828         Numbers.sub(sample.dts, prev_sample.dts)829830         # type: dynamic(%{..., dts: term(), metadata: map()})831         # from: lib/membrane_mp4/muxer/cmaf.ex:731:34832         Map.put(prev_sample.metadata, :duration, duration)833834     when defining the variable "prev_sample", you must also pattern match on "%Membrane.Buffer{}"835836     type warning found at:837     │838 732 │       prev_sample = %Buffer{prev_sample | metadata: prev_sample_metadata}839     │                     ~840     │841     └─ lib/membrane_mp4/muxer/cmaf.ex:732:21: Membrane.MP4.Muxer.CMAF.process_buffer_awaiting_duration/3842843     warning: a struct for Membrane.Buffer is expected on struct update:844845         %Membrane.Buffer{buffer | dts: Membrane.Buffer.get_dts_or_pts(buffer)}846847     but got type:848849         dynamic()850851     where "buffer" was given the type:852853         # type: dynamic()854         # from: lib/membrane_mp4/muxer/isom.ex:136:47855         buffer856857     when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"858859     type warning found at:860     │861 140 │     buffer = %Buffer{buffer | dts: Buffer.get_dts_or_pts(buffer)}862     │              ~863     │864     └─ lib/membrane_mp4/muxer/isom.ex:140:14: Membrane.MP4.Muxer.ISOM.handle_buffer/4865866Generated membrane_mp4_plugin app867==> membrane_ogg_plugin868Compiling 2 files (.ex)869    warning: the variable "page_segments_count" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator870    │871 93 │       <<segment_table::binary-size(page_segments_count), data::binary>> ->872    │                                    ~873    │874    └─ lib/parser.ex:93:36: Membrane.Ogg.Parser.parse_segment_table/2875876     warning: the variable "after_crc_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator877     │878 112 │         after_crc::binary-size(after_crc_size), _rest::binary>> = data879     │                                ~880     │881     └─ lib/parser.ex:112:32: Membrane.Ogg.Parser.verify_length_and_crc/2882883     warning: the variable "count" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator884     │885 207 │     <<packet::binary-size(count), rem_data::binary>> = data886     │                           ~887     │888     └─ lib/parser.ex:207:27: Membrane.Ogg.Parser.split_packets/2889890    warning: a struct for Membrane.Ogg.Demuxer.State is expected on struct update:891892        %Membrane.Ogg.Demuxer.State{state | phase: :all_outputs_linked, tracks: state.tracks ++ [id]}893894    but got type:895896        dynamic()897898    where "state" was given the type:899900        # type: dynamic()901        # from: lib/demuxer.ex:59:56902        state903904    when defining the variable "state", you must also pattern match on "%Membrane.Ogg.Demuxer.State{}"905906    type warning found at:907    │908 61 │     state = %State{state | phase: :all_outputs_linked, tracks: state.tracks ++ [id]}909    │             ~910    │911    └─ lib/demuxer.ex:61:13: Membrane.Ogg.Demuxer.handle_pad_added/3912913    warning: a struct for Membrane.Ogg.Demuxer.State is expected on struct update:914915        %Membrane.Ogg.Demuxer.State{state | parser_acc: rest, continued_packets: continued_packets}916917    but got type:918919        dynamic(%{..., continued_packets: term(), parser_acc: binary()})920921    where "state" was given the types:922923        # type: dynamic(%{..., parser_acc: binary()})924        # from: lib/demuxer.ex:68925        <<state.parser_acc::binary, ...>>926927        # type: dynamic(%{..., continued_packets: term(), parser_acc: binary()})928        # from: lib/demuxer.ex:70:61929        Membrane.Ogg.Parser.parse(rest, state.continued_packets)930931    when defining the variable "state", you must also pattern match on "%Membrane.Ogg.Demuxer.State{}"932933    type warning found at:934    │935 72 │     state = %State{state | parser_acc: rest, continued_packets: continued_packets}936    │             ~937    │938    └─ lib/demuxer.ex:72:13: Membrane.Ogg.Demuxer.handle_buffer/4939940    warning: a struct for Membrane.Ogg.Demuxer.State is expected on struct update:941942        %Membrane.Ogg.Demuxer.State{state | actions_buffer: []}943944    but got type:945946        dynamic(%{..., actions_buffer: term(), phase: :all_outputs_linked})947948    where "state" was given the types:949950        # type: dynamic(%{..., phase: :all_outputs_linked})951        # from: lib/demuxer.ex:80:70952        state953954        # type: %{..., phase: :all_outputs_linked}955        # from: lib/demuxer.ex:81:24956        state.phase == :all_outputs_linked957958        # type: dynamic(%{..., actions_buffer: term(), phase: :all_outputs_linked})959        # from: lib/demuxer.ex:82:5960        process_actions(state.actions_buffer, context, %Membrane.Ogg.Demuxer.State{...})961962    when defining the variable "state", you must also pattern match on "%Membrane.Ogg.Demuxer.State{}"963964    type warning found at:965    │966 82 │     process_actions(state.actions_buffer, context, %State{state | actions_buffer: []})967    │                                                    ~968    │969    └─ lib/demuxer.ex:82:52: Membrane.Ogg.Demuxer.handle_demand/5970971    warning: a struct for Membrane.Ogg.Demuxer.State is expected on struct update:972973        %Membrane.Ogg.Demuxer.State{state | actions_buffer: buffered_actions}974975    but got type:976977        dynamic(%{..., actions_buffer: term(), tracks: term()})978979    where "state" was given the types:980981        # type: dynamic(%{..., tracks: term()})982        # from: lib/demuxer.ex:91:15983        get_demands_from_context(context, state)984985        # type: dynamic(%{..., actions_buffer: term(), tracks: term()})986        # from: lib/demuxer.ex:93:40987        classify_actions(actions, demands, state)988989    when defining the variable "state", you must also pattern match on "%Membrane.Ogg.Demuxer.State{}"990991    type warning found at:992    │993 95 │     state = %State{state | actions_buffer: buffered_actions}994    │             ~995    │996    └─ lib/demuxer.ex:95:13: Membrane.Ogg.Demuxer.process_actions/3997998     warning: a struct for Membrane.Ogg.Demuxer.State is expected on struct update:9991000         %Membrane.Ogg.Demuxer.State{state | phase: :awaiting_linking}10011002     but got type:10031004         dynamic()10051006     where "state" was given the type:10071008         # type: dynamic()1009         # from: lib/demuxer.ex:125:101010         state10111012     when defining the variable "state", you must also pattern match on "%Membrane.Ogg.Demuxer.State{}"10131014     type warning found at:1015     │1016 129 │     {[new_track_action], %State{state | phase: :awaiting_linking}}1017     │                          ~1018     │1019     └─ lib/demuxer.ex:129:26: Membrane.Ogg.Demuxer.process_bos_packet/210201021     warning: a struct for Membrane.Ogg.Demuxer.State is expected on struct update:10221023         %Membrane.Ogg.Demuxer.State{state | actions_buffer: []}10241025     but got type:10261027         dynamic(%{..., actions_buffer: list(term())})10281029     where "state" was given the type:10301031         # type: dynamic(%{..., actions_buffer: list(term())})1032         # from: lib/demuxer.ex:182:271033         state.actions_buffer ++ [forward: :end_of_stream]10341035     when defining the variable "state", you must also pattern match on "%Membrane.Ogg.Demuxer.State{}"10361037     type warning found at:1038     │1039 182 │     {state.actions_buffer ++ [forward: :end_of_stream], %State{state | actions_buffer: []}}1040     │                                                         ~1041     │1042     └─ lib/demuxer.ex:182:57: Membrane.Ogg.Demuxer.handle_end_of_stream/310431044Generated membrane_ogg_plugin app1045==> membrane_audio_filler_plugin1046Compiling 1 file (.ex)1047Generated membrane_audio_filler_plugin app1048==> membrane_audiometer_plugin1049Compiling 2 files (.ex)1050    warning: the variable "frame_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1051    │1052 68 │     <<frame::binary-size(frame_size), rest::binary>> = payload1053    │                          ~1054    │1055    └─ lib/membrane_element_audiometer/amplitude.ex:68:26: Membrane.Audiometer.Peakmeter.Amplitude.do_find_frame_with_max_values/610561057     warning: the variable "sample_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1058     │1059 102 │     <<sample::binary-size(sample_size), rest::binary>> = payload1060     │                           ~1061     │1062     └─ lib/membrane_element_audiometer/amplitude.ex:102:27: Membrane.Audiometer.Peakmeter.Amplitude.do_sample_to_channel_values/510631064Generated membrane_audiometer_plugin app1065==> membrane_raw_video_parser_plugin1066Compiling 1 file (.ex)1067Generated membrane_raw_video_parser_plugin app1068==> membrane_realtimer_plugin1069Compiling 1 file (.ex)1070Generated membrane_realtimer_plugin app1071==> membrane_scissors_plugin1072Compiling 1 file (.ex)1073Generated membrane_scissors_plugin app1074==> membrane_stream_plugin1075Compiling 7 files (.ex)1076Generated membrane_stream_plugin app1077==> membrane_tee_plugin1078Compiling 3 files (.ex)1079108003:26:03.334 [warning] Membrane.Tee.Master defines pads with `flow_control: :auto` and pads with `flow_control: :push` at the same time. Please, consider if this what you want to do - flow control of these pads won't be integrated. Setting `flow_control` to `:auto` in the places where it has been set to `:push` might be a good idea.1081Pads with `flow_control: :auto`: input, master.1082Pads with `flow_control: :push`: copy.10831084If you want get rid of this warning, pass `flow_control_hints?: false` option to `use Membrane.Filter`.10851086108703:26:03.376 [warning] Membrane.Tee.PushOutput defines pads with `flow_control: :auto` and pads with `flow_control: :push` at the same time. Please, consider if this what you want to do - flow control of these pads won't be integrated. Setting `flow_control` to `:auto` in the places where it has been set to `:push` might be a good idea.1088Pads with `flow_control: :auto`: input.1089Pads with `flow_control: :push`: output.10901091If you want get rid of this warning, pass `flow_control_hints?: false` option to `use Membrane.Filter`.10921093Generated membrane_tee_plugin app1094==> membrane_udp_plugin1095Compiling 5 files (.ex)1096Generated membrane_udp_plugin app1097==> membrane_video_merger_plugin1098Compiling 4 files (.ex)1099Generated membrane_video_merger_plugin app1100==> membrane_wav_plugin1101Compiling 3 files (.ex)1102     warning: the variable "stage_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1103     │1104 176 │       _fact_chunk::binary-size(stage_size),1105     │                                ~1106     │1107     └─ lib/membrane_wav/parser.ex:176:32: Membrane.WAV.Parser.parse_payload/311081109Generated membrane_wav_plugin app1110==> membrane_rtp_h264_plugin1111Compiling 8 files (.ex)1112    warning: the variable "preferred_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1113    │1114 42 │       <<header::1-binary, head::binary-size(preferred_size - 1), rest::binary>> ->1115    │                                             ~1116    │1117    └─ lib/rtp_h264/nal_formats/fu.ex:42:45: Membrane.RTP.H264.FU.serialize/211181119    warning: the variable "preferred_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1120    │1121 59 │       <<head::binary-size(preferred_size - 2), rest::binary>> when byte_size(rest) > 0 ->1122    │                           ~1123    │1124    └─ lib/rtp_h264/nal_formats/fu.ex:59:27: Membrane.RTP.H264.FU.do_serialize/511251126     warning: the variable "offset" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1127     │1128 120 │       <<_x::binary-size(offset), nalu::binary-size(nalu_size), remaining_aus::binary>> = rest1129     │                         ~1130     │1131     └─ lib/rtp_h264/utils.ex:120:25: Membrane.RTP.H264.Utils.check_first_aggregation_unit/311321133     warning: the variable "nalu_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1134     │1135 120 │       <<_x::binary-size(offset), nalu::binary-size(nalu_size), remaining_aus::binary>> = rest1136     │                                                    ~1137     │1138     └─ lib/rtp_h264/utils.ex:120:52: Membrane.RTP.H264.Utils.check_first_aggregation_unit/311391140     warning: a struct for Membrane.Buffer is expected on struct update:11411142         %Membrane.Buffer{buffer | payload: &1}11431144     but got type:11451146         dynamic(%{..., payload: term()})11471148     where "buffer" was given the type:11491150         # type: dynamic(%{..., payload: term()})1151         # from: lib/rtp_h264/payloader.ex:187:111152         Membrane.RTP.H264.FU.serialize(1153           buffer.payload,1154           state.max_payload_size1155         )11561157     when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"11581159     type warning found at:1160     │1161 188 │     |> Enum.map(&%Buffer{buffer | payload: &1})1162     │                  ~1163     │1164     └─ lib/rtp_h264/payloader.ex:188:18: Membrane.RTP.H264.Payloader.use_fu_a/211651166    warning: a struct for Membrane.RTP.H264.Depayloader.State is expected on struct update:11671168        %Membrane.RTP.H264.Depayloader.State{state | parser_acc: nil}11691170    but got type:11711172        dynamic()11731174    where "state" was given the type:11751176        # type: dynamic()1177        # from: lib/rtp_h264/depayloader.ex:49:431178        state11791180    when defining the variable "state", you must also pattern match on "%Membrane.RTP.H264.Depayloader.State{}"11811182    type warning found at:1183    │1184 57 │         {[], %State{state | parser_acc: nil}}1185    │              ~1186    │1187    └─ lib/rtp_h264/depayloader.ex:57:14: Membrane.RTP.H264.Depayloader.handle_buffer/411881189    warning: a struct for Membrane.RTP.H264.Depayloader.State is expected on struct update:11901191        %Membrane.RTP.H264.Depayloader.State{state | parser_acc: nil}11921193    but got type:11941195        dynamic()11961197    where "state" was given the type:11981199        # type: dynamic()1200        # from: lib/rtp_h264/depayloader.ex:73:561201        state12021203    when defining the variable "state", you must also pattern match on "%Membrane.RTP.H264.Depayloader.State{}"12041205    type warning found at:1206    │1207 79 │         result = buffer_output(data, buffer, %State{state | parser_acc: nil})1208    │                                              ~1209    │1210    └─ lib/rtp_h264/depayloader.ex:79:46: Membrane.RTP.H264.Depayloader.handle_unit_type/412111212    warning: a struct for Membrane.RTP.H264.FU is expected on struct update:12131214        %Membrane.RTP.H264.FU{acc | data: [data], last_seq_num: seq_num}12151216    but got type:12171218        dynamic()12191220    where "acc" was given the type:12211222        # type: dynamic()1223        # from: lib/rtp_h264/nal_formats/fu.ex:78:611224        acc12251226    when defining the variable "acc", you must also pattern match on "%Membrane.RTP.H264.FU{}"12271228    type warning found at:1229    │1230 79 │     do: {:incomplete, %__MODULE__{acc | data: [data], last_seq_num: seq_num}}1231    │                       ~1232    │1233    └─ lib/rtp_h264/nal_formats/fu.ex:79:23: Membrane.RTP.H264.FU.do_parse/412341235    warning: a struct for Membrane.RTP.H264.Depayloader.State is expected on struct update:12361237        %Membrane.RTP.H264.Depayloader.State{state | parser_acc: fu}12381239    but got type:12401241        dynamic()12421243    where "state" was given the type:12441245        # type: dynamic()1246        # from: lib/rtp_h264/depayloader.ex:73:561247        state12481249    when defining the variable "state", you must also pattern match on "%Membrane.RTP.H264.Depayloader.State{}"12501251    type warning found at:1252    │1253 83 │         result = {[], %State{state | parser_acc: fu}}1254    │                       ~1255    │1256    └─ lib/rtp_h264/depayloader.ex:83:23: Membrane.RTP.H264.Depayloader.handle_unit_type/412571258    warning: a struct for Membrane.Buffer is expected on struct update:12591260        %Membrane.Buffer{buffer | payload: add_prefix(&1)}12611262    but got type:12631264        dynamic()12651266    where "buffer" was given the type:12671268        # type: dynamic()1269        # from: lib/rtp_h264/depayloader.ex:91:511270        buffer12711272    when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"12731274    type warning found at:1275    │1276 93 │       buffers = Enum.map(result, &%Buffer{buffer | payload: add_prefix(&1)})1277    │                                   ~1278    │1279    └─ lib/rtp_h264/depayloader.ex:93:35: Membrane.RTP.H264.Depayloader.handle_unit_type/412801281     warning: a struct for Membrane.Buffer is expected on struct update:12821283         %Membrane.Buffer{buffer | payload: add_prefix(data)}12841285     but got type:12861287         dynamic()12881289     where "buffer" was given the type:12901291         # type: dynamic()1292         # from: lib/rtp_h264/depayloader.ex:103:311293         buffer12941295     when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"12961297     type warning found at:1298     │1299 104 │     [buffer: {:output, %Buffer{buffer | payload: add_prefix(data)}}]1300     │                        ~1301     │1302     └─ lib/rtp_h264/depayloader.ex:104:24: Membrane.RTP.H264.Depayloader.action_from_data/213031304Generated membrane_rtp_h264_plugin app1305==> membrane_rtp_opus_plugin1306Compiling 3 files (.ex)1307Generated membrane_rtp_opus_plugin app1308==> membrane_rtp_vp8_plugin1309Compiling 6 files (.ex)1310     warning: a struct for Membrane.RTP.VP8.PayloadDescriptor is expected on struct update:13111312         %Membrane.RTP.VP8.PayloadDescriptor{descriptor_acc | i: i, l: l, t: t, k: k}13131314     but got type:13151316         dynamic()13171318     where "descriptor_acc" was given the type:13191320         # type: dynamic()1321         # from: lib/membrane_rtp_vp8/payload_descriptor.ex:130:101322         descriptor_acc13231324     when defining the variable "descriptor_acc", you must also pattern match on "%Membrane.RTP.VP8.PayloadDescriptor{}"13251326     type warning found at:1327     │1328 136 │     {:ok, {%__MODULE__{descriptor_acc | i: i, l: l, t: t, k: k}, rest}}1329     │            ~1330     │1331     └─ lib/membrane_rtp_vp8/payload_descriptor.ex:136:12: Membrane.RTP.VP8.PayloadDescriptor.get_extended_control_bits/213321333    warning: a struct for Membrane.RTP.VP8.Depayloader.State is expected on struct update:13341335        %Membrane.RTP.VP8.Depayloader.State{1336          state1337          | frame_acc: %Membrane.RTP.VP8.Frame{fragments: [], last_seq_num: nil, last_timestamp: nil}1338        }13391340    but got type:13411342        dynamic()13431344    where "state" was given the type:13451346        # type: dynamic()1347        # from: lib/membrane_rtp_vp8/depayloader.ex:40:601348        state13491350    when defining the variable "state", you must also pattern match on "%Membrane.RTP.VP8.Depayloader.State{}"13511352    type warning found at:1353    │1354 41 │     do: {[forward: event], %State{state | frame_acc: %Frame{}}}1355    │                            ~1356    │1357    └─ lib/membrane_rtp_vp8/depayloader.ex:41:28: Membrane.RTP.VP8.Depayloader.handle_event/413581359     warning: a struct for Membrane.RTP.VP8.PayloadDescriptor is expected on struct update:13601361         %Membrane.RTP.VP8.PayloadDescriptor{descriptor_acc | m: 0, picture_id: picture_id}13621363     but got type:13641365         dynamic()13661367     where "descriptor_acc" was given the type:13681369         # type: dynamic()1370         # from: lib/membrane_rtp_vp8/payload_descriptor.ex:143:231371         descriptor_acc13721373     when defining the variable "descriptor_acc", you must also pattern match on "%Membrane.RTP.VP8.PayloadDescriptor{}"13741375     type warning found at:1376     │1377 145 │        do: {:ok, {%__MODULE__{descriptor_acc | m: 0, picture_id: picture_id}, rest}}1378     │                   ~1379     │1380     └─ lib/membrane_rtp_vp8/payload_descriptor.ex:145:19: Membrane.RTP.VP8.PayloadDescriptor.get_picture_id/213811382    warning: a struct for Membrane.Buffer is expected on struct update:13831384        %Membrane.Buffer{state.first_buffer | payload: frame}13851386    but got type:13871388        dynamic()13891390    where "state" was given the types:13911392        # type: dynamic(not %Membrane.RTP.VP8.Depayloader.State{first_buffer: nil})1393        # from: lib/membrane_rtp_vp8/depayloader.ex:52:421394        state13951396        # type: dynamic(1397          %{..., frame_acc: %{..., fragments: term()}} and1398            not %Membrane.RTP.VP8.Depayloader.State{first_buffer: nil}1399        )1400        # from: lib/membrane_rtp_vp8/depayloader.ex:53:271401        Membrane.RTP.VP8.Frame.flush(state.frame_acc)14021403        # type: dynamic(1404          %{..., first_buffer: term(), frame_acc: %{..., fragments: term()}} and1405            not %Membrane.RTP.VP8.Depayloader.State{first_buffer: nil}1406        )1407        # from: lib/membrane_rtp_vp8/depayloader.ex:56:261408        %Membrane.Buffer{...}14091410    you must assign "state.first_buffer" to variable and pattern match on "%Membrane.Buffer{}"14111412    type warning found at:1413    │1414 56 │        buffer: {:output, %Buffer{state.first_buffer | payload: frame}},1415    │                          ~1416    │1417    └─ lib/membrane_rtp_vp8/depayloader.ex:56:26: Membrane.RTP.VP8.Depayloader.handle_end_of_stream/314181419     warning: a struct for Membrane.RTP.VP8.PayloadDescriptor is expected on struct update:14201421         %Membrane.RTP.VP8.PayloadDescriptor{descriptor_acc | m: 1, picture_id: picture_id}14221423     but got type:14241425         dynamic()14261427     where "descriptor_acc" was given the type:14281429         # type: dynamic()1430         # from: lib/membrane_rtp_vp8/payload_descriptor.ex:147:231431         descriptor_acc14321433     when defining the variable "descriptor_acc", you must also pattern match on "%Membrane.RTP.VP8.PayloadDescriptor{}"14341435     type warning found at:1436     │1437 149 │        do: {:ok, {%__MODULE__{descriptor_acc | m: 1, picture_id: picture_id}, rest}}1438     │                   ~1439     │1440     └─ lib/membrane_rtp_vp8/payload_descriptor.ex:149:19: Membrane.RTP.VP8.PayloadDescriptor.get_picture_id/214411442    warning: a struct for Membrane.RTP.VP8.Depayloader.State is expected on struct update:14431444        %Membrane.RTP.VP8.Depayloader.State{state | frame_acc: acc}14451446    but got type:14471448        dynamic(%{..., frame_acc: term()})14491450    where "state" was given the type:14511452        # type: dynamic(%{..., frame_acc: term()})1453        # from: lib/membrane_rtp_vp8/depayloader.ex:76:161454        Membrane.RTP.VP8.Frame.parse(buffer, state.frame_acc)14551456    when defining the variable "state", you must also pattern match on "%Membrane.RTP.VP8.Depayloader.State{}"14571458    type warning found at:1459    │1460 78 │         {:ok, [], %State{state | frame_acc: acc}}1461    │                   ~1462    │1463    └─ lib/membrane_rtp_vp8/depayloader.ex:78:19: Membrane.RTP.VP8.Depayloader.parse_buffer/214641465     warning: a struct for Membrane.RTP.VP8.PayloadDescriptor is expected on struct update:14661467         %Membrane.RTP.VP8.PayloadDescriptor{descriptor_acc | tl0picidx: tl0picidx}14681469     but got type:14701471         dynamic()14721473     where "descriptor_acc" was given the type:14741475         # type: dynamic()1476         # from: lib/membrane_rtp_vp8/payload_descriptor.ex:156:381477         descriptor_acc14781479     when defining the variable "descriptor_acc", you must also pattern match on "%Membrane.RTP.VP8.PayloadDescriptor{}"14801481     type warning found at:1482     │1483 158 │        do: {:ok, {%__MODULE__{descriptor_acc | tl0picidx: tl0picidx}, rest}}1484     │                   ~1485     │1486     └─ lib/membrane_rtp_vp8/payload_descriptor.ex:158:19: Membrane.RTP.VP8.PayloadDescriptor.get_temporal_level_zero_index/214871488    warning: a struct for Membrane.RTP.VP8.Depayloader.State is expected on struct update:14891490        %Membrane.RTP.VP8.Depayloader.State{state | frame_acc: acc, first_buffer: buffer}14911492    but got type:14931494        dynamic(%{..., first_buffer: %{..., payload: term()}, frame_acc: term()})14951496    where "state" was given the types:14971498        # type: dynamic(%{..., frame_acc: term()})1499        # from: lib/membrane_rtp_vp8/depayloader.ex:76:161500        Membrane.RTP.VP8.Frame.parse(buffer, state.frame_acc)15011502        # type: dynamic(%{..., first_buffer: %{..., payload: term()}, frame_acc: term()})1503        # from: lib/membrane_rtp_vp8/depayloader.ex:81:91504        {:ok, [buffer: {:output, %{state.first_buffer | payload: frame}}],1505         %Membrane.RTP.VP8.Depayloader.State{...}}15061507    when defining the variable "state", you must also pattern match on "%Membrane.RTP.VP8.Depayloader.State{}"15081509    type warning found at:1510    │1511 82 │          %State{state | frame_acc: acc, first_buffer: buffer}}1512    │          ~1513    │1514    └─ lib/membrane_rtp_vp8/depayloader.ex:82:10: Membrane.RTP.VP8.Depayloader.parse_buffer/215151516Generated membrane_rtp_vp8_plugin app1517==> membrane_precompiled_dependency_provider1518Compiling 1 file (.ex)1519Generated membrane_precompiled_dependency_provider app1520==> unifex1521Bundlex: Building natives: unifex1522Compiling 33 files (.ex)1523    warning: unused require Bundlex.CNode1524    │1525  6 │   require Bundlex.CNode1526    │   ~1527    │1528    └─ lib/unifex/cnode.ex:6:315291530Generated unifex app1531==> membrane_camera_capture_plugin1532Bundlex: Building natives: camera_capture1533warning: Bundlex: Couldn't load OS dependency using {:precompiled, "https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2023-11-30-12-55/ffmpeg-n6.0.1-linux64-gpl-shared-6.0.tar.xz", ["libavformat", "libavutil", "libavdevice"]}15341535couldn't download and extract the precompiled dependency :ffmpeg due to:1536	** (BundlexError) Cannot download file from https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2023-11-30-12-55/ffmpeg-n6.0.1-linux64-gpl-shared-6.0.tar.xz1537	Response status: 404153815391540Loading using {:pkg_config, ["libavformat", "libavutil", "libavdevice"]}154115421543could not compile dependency :membrane_camera_capture_plugin, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile membrane_camera_capture_plugin --force", update it with "mix deps.update membrane_camera_capture_plugin" or clean it with "mix deps.clean membrane_camera_capture_plugin"1544==> nerves_compatibility_test1545** (Mix) Bundlex: Couldn't load OS dependency :ffmpeg of package membrane_camera_capture_plugin. Make sure to follow installation instructions that may be available in the readme of membrane_camera_capture_plugin.15461547Tried the following providers:15481549Provider `{:precompiled, "https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2023-11-30-12-55/ffmpeg-n6.0.1-linux64-gpl-shared-6.0.tar.xz", ["libavformat", "libavutil", "libavdevice"]}` couldn't download and extract the precompiled dependency :ffmpeg due to:1550	** (BundlexError) Cannot download file from https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2023-11-30-12-55/ffmpeg-n6.0.1-linux64-gpl-shared-6.0.tar.xz1551	Response status: 40415521553Provider `{:pkg_config, ["libavformat", "libavutil", "libavdevice"]}` couldn't load ["libavformat", "libavutil", "libavdevice"] libraries with pkg-config due to:1554	** (BundlexError) pkg-config error:1555	Code: 11556	Package libavformat was not found in the pkg-config search path.1557	Perhaps you should add the directory containing `libavformat.pc'1558	to the PKG_CONFIG_PATH environment variable1559	Package 'libavformat', required by 'virtual:world', not found15601561