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