Build log
host
membrane_rtc_engine_hls 0.10.0 · fail · run membrane_rtc_engine_hls-0.10.0-1790995953968
1757 of 1757 lines
1Resolving Hex dependencies...2Resolution completed in 0.546s3Unchanged:4 bimap 1.3.05 bunch 1.6.46 bunch_native 0.5.27 bundlex 1.5.88 circular_buffer 1.1.09 coerce 1.0.210 crc 0.11.011 elixir_make 0.10.012 elixir_uuid 1.2.113 ex_dtls 0.18.114 ex_ice 0.13.015 ex_libsrtp 0.7.416 ex_rtcp 0.4.217 ex_rtp 0.4.118 ex_sdp 1.3.019 ex_stun 0.2.120 ex_turn 0.2.321 ex_webrtc 0.15.122 finch 0.24.023 fishjam_protos 0.4.024 heap 2.0.225 hpax 1.1.026 interactive_cmd 0.1.427 jason 1.4.528 logger_backends 1.0.129 membrane_aac_fdk_plugin 0.18.1530 membrane_aac_format 0.8.131 membrane_aac_plugin 0.18.232 membrane_cmaf_format 0.7.233 membrane_common_c 0.16.234 membrane_core 1.2.735 membrane_file_plugin 0.17.536 membrane_funnel_plugin 0.9.237 membrane_h264_ffmpeg_plugin 0.31.338 membrane_h264_format 0.6.139 membrane_h265_format 0.2.040 membrane_h26x_plugin 0.10.941 membrane_http_adaptive_stream_plugin 0.18.542 membrane_mp4_format 0.8.143 membrane_mp4_plugin 0.35.3 VULNERABLE!44 EEF-CVE-2026-53423 (MEDIUM)45 aka: CVE-2026-53423, GHSA-43hj-fxwj-49qw46 Unauthenticated denial-of-service via BEAM atom table exhaustion in membrane_mp4_plugin47 https://osv.dev/vulnerability/EEF-CVE-2026-5342348 membrane_opus_format 0.3.249 membrane_opus_plugin 0.20.850 membrane_precompiled_dependency_provider 0.2.451 membrane_raw_audio_format 0.12.352 membrane_raw_video_format 0.3.053 membrane_rtc_engine 0.25.054 membrane_rtc_engine_ex_webrtc 0.2.055 membrane_rtc_engine_hls 0.10.056 membrane_rtp_format 0.10.057 membrane_rtp_h264_plugin 0.20.258 membrane_rtp_plugin 0.30.059 membrane_rtp_vp8_plugin 0.9.460 membrane_tee_plugin 0.12.061 membrane_telemetry_metrics 0.1.362 membrane_timestamp_queue 0.2.363 membrane_vp8_format 0.5.164 mime 2.0.765 mint 1.11.066 nerves 2.0.0-pre.267 nerves_discovery 0.1.568 nerves_logging 0.2.469 nerves_runtime 0.13.1370 nerves_system_bbb 2.30.271 nerves_system_br 1.34.472 nerves_system_mangopi_mq_pro 0.17.273 nerves_system_qemu_aarch64 0.4.274 nerves_system_rpi0 2.1.275 nerves_system_rpi4 2.1.276 nerves_system_rpi5 2.1.277 nerves_system_trellis 0.5.078 nerves_system_x86_64 1.34.279 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.180 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.181 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.182 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.183 nerves_toolchain_x86_64_nerves_linux_musl 15.3.184 nerves_uevent 0.1.785 nimble_options 1.1.186 nimble_pool 1.1.087 numbers 5.2.588 property_table 0.3.489 protobuf 0.15.0 VULNERABLE!90 GHSA-rv48-qqj5-crxg (HIGH)91 aka: CVE-2026-5445192 Protobuf: Unbounded recursion depth in embedded-message decoding93 https://osv.dev/vulnerability/GHSA-rv48-qqj5-crxg94 qex 0.5.295 ratio 3.0.296 req 0.7.497 ring_logger 0.11.798 shmex 0.5.299 statistics 0.6.3100 tablet 0.3.3101 telemetry 1.4.2102 telemetry_metrics 1.2.0103 toolshed 0.5.0104 uboot_env 1.0.2105 unifex 1.1.2106 zarex 1.0.6107Found packages with security advisories, see above for details108All dependencies have been fetched109==> membrane_mp4_format110Compiling 1 file (.ex)111Generated membrane_mp4_format app112==> ratio113Compiling 5 files (.ex)114 warning: <|> is deprecated. Use another pipe-like operator115 │116 123 │ def numerator <|> denominator117 │ ~118 │119 └─ lib/ratio.ex:123:17120121 warning: <|> is deprecated. Use another pipe-like operator122 │123 125 │ def _numerator <|> 0 do124 │ ~125 │126 └─ lib/ratio.ex:125:18127128 warning: <|> is deprecated. Use another pipe-like operator129 │130 129 │ def numerator <|> denominator when is_integer(numerator) and is_integer(denominator) do131 │ ~132 │133 └─ lib/ratio.ex:129:17134135 warning: <|> is deprecated. Use another pipe-like operator136 │137 133 │ def numerator <|> denominator when is_float(numerator) do138 │ ~139 │140 └─ lib/ratio.ex:133:17141142 warning: <|> is deprecated. Use another pipe-like operator143 │144 137 │ def numerator <|> denominator when is_float(denominator) do145 │ ~146 │147 └─ lib/ratio.ex:137:17148149 warning: <|> is deprecated. Use another pipe-like operator150 │151 141 │ def (numerator = %Ratio{}) <|> (denominator = %Ratio{}) do152 │ ~153 │154 └─ lib/ratio.ex:141:30155156 warning: <|> is deprecated. Use another pipe-like operator157 │158 146 │ def (numerator = %Decimal{}) <|> (denominator = %Decimal{}) do159 │ ~160 │161 └─ lib/ratio.ex:146:34162163 warning: <|> is deprecated. Use another pipe-like operator164 │165 151 │ def (numerator = %Decimal{}) <|> denominator when is_float(denominator) do166 │ ~167 │168 └─ lib/ratio.ex:151:34169170 warning: <|> is deprecated. Use another pipe-like operator171 │172 156 │ def numerator <|> (denominator = %Decimal{}) when is_float(numerator) do173 │ ~174 │175 └─ lib/ratio.ex:156:19176177 warning: <|> is deprecated. Use another pipe-like operator178 │179 161 │ def (numerator = %Decimal{}) <|> denominator when is_integer(denominator) do180 │ ~181 │182 └─ lib/ratio.ex:161:34183184 warning: <|> is deprecated. Use another pipe-like operator185 │186 166 │ def numerator <|> (denominator = %Decimal{}) when is_integer(numerator) do187 │ ~188 │189 └─ lib/ratio.ex:166:19190191 warning: <|> is deprecated. Use another pipe-like operator192 │193 171 │ def numerator <|> (denominator = %Ratio{}) when is_integer(numerator) do194 │ ~195 │196 └─ lib/ratio.ex:171:17197198 warning: <|> is deprecated. Use another pipe-like operator199 │200 175 │ def (numerator = %Ratio{}) <|> denominator when is_integer(denominator) do201 │ ~202 │203 └─ lib/ratio.ex:175:30204205 warning: <|> is deprecated. Use another pipe-like operator206 │207 205 │ <|> Ratio.DecimalConversion.decimal_to_rational(denominator)208 │ ~209 │210 └─ lib/ratio.ex:205:7211212 warning: <|> is deprecated. Use another pipe-like operator213 │214 209 │ numerator <|> Ratio.DecimalConversion.decimal_to_rational(denominator)215 │ ~216 │217 └─ lib/ratio.ex:209:17218219 warning: <|> is deprecated. Use another pipe-like operator220 │221 214 │ numerator <|> denominator222 │ ~223 │224 └─ lib/ratio.ex:214:15225226 warning: <|> is deprecated. Use another pipe-like operator227 │228 228 │ do: Kernel.abs(numerator) <|> denominator229 │ ~230 │231 └─ lib/ratio.ex:228:31232233 warning: <|> is deprecated. Use another pipe-like operator234 │235 271 │ Kernel.+(a, c) <|> lcm236 │ ~237 │238 └─ lib/ratio.ex:271:20239240 warning: <|> is deprecated. Use another pipe-like operator241 │242 275 │ Kernel.+(a * d, c * b) <|> (b * d)243 │ ~244 │245 └─ lib/ratio.ex:275:28246247 warning: <|> is deprecated. Use another pipe-like operator248 │249 309 │ Kernel.*(numerator1, numerator2) <|> Kernel.*(denominator1, denominator2)250 │ ~251 │252 └─ lib/ratio.ex:309:38253254 warning: <|> is deprecated. Use another pipe-like operator255 │256 327 │ Kernel.*(numerator1, denominator2) <|> Kernel.*(denominator1, numerator2)257 │ ~258 │259 └─ lib/ratio.ex:327:40260261 warning: <|> is deprecated. Use another pipe-like operator262 │263 434 │ defp do_pow(x, n, y) when Kernel.<(n, 0), do: do_pow(1 <|> x, Kernel.-(n), y)264 │ ~265 │266 └─ lib/ratio.ex:434:58267268 warning: <|> is deprecated. Use another pipe-like operator269 │270 21 │ numerator <|> denominator271 │ ~272 │273 └─ lib/ratio/float_conversion.ex:21:15274275 warning: Ratio.DecimalConversion.decimal_to_rational/1 is undefined (module Ratio.DecimalConversion is not available or is yet to be defined)276 │277 17 │ {ratio, Ratio.DecimalConversion.decimal_to_rational(decimal)}278 │ ~279 │280 └─ lib/ratio/coerce.ex:17:37: Coerce.Implementations.Ratio.Decimal.coerce/2281282both :extra_applications and :applications was found in your mix.exs. You most likely want to remove the :applications key, as all applications are derived from your dependencies283Generated ratio app284==> membrane_cmaf_format285Compiling 1 file (.ex)286Generated membrane_cmaf_format app287==> membrane_core288Compiling 139 files (.ex)289 warning: unused require Membrane.Core.Message (convert it to an alias instead)290 │291 7 │ require Membrane.Core.Message, as: Message292 │ ~293 │294 └─ lib/membrane/core/parent/diamond_detection_controller.ex:7:3295296 warning: unused require Membrane.Core.Component297 │298 5 │ require Membrane.Core.Component299 │ ~300 │301 └─ lib/membrane/core/child/lifecycle_controller.ex:5:3302303 warning: unused require Membrane.Core.Component304 │305 7 │ require Membrane.Core.Component306 │ ~307 │308 └─ lib/membrane/core/timer_controller.ex:7:3309310 warning: unused require Membrane.Core.Helper.FastMap311 │312 138 │ require FastMap313 │ ~314 │315 └─ lib/membrane/core/child/pad_model.ex:138:5316317 warning: unused require Membrane.Core.Child.PadModel318 │319 7 │ require Membrane.Core.Child.PadModel320 │ ~321 │322 └─ lib/membrane/core/child/pad_controller.ex:7:3323324 warning: unused require Membrane.Core.Message (convert it to an alias instead)325 │326 19 │ require Membrane.Core.Message, as: Message327 │ ~328 │329 └─ lib/membrane/core/element/manual_flow_controller.ex:19:3330331 warning: unused require Membrane.Logger332 │333 20 │ require Membrane.Logger334 │ ~335 │336 └─ lib/membrane/core/element/manual_flow_controller.ex:20:3337338 warning: unused require Membrane.Core.Component339 │340 23 │ require Membrane.Core.Component341 │ ~342 │343 └─ lib/membrane/core/parent/child_life_controller.ex:23:3344345 warning: unused require Membrane.Core.Message (convert it to an alias instead)346 │347 24 │ require Membrane.Core.Message, as: Message348 │ ~349 │350 └─ lib/membrane/core/parent/child_life_controller.ex:24:3351352 warning: unused require Membrane.Core.Component353 │354 9 │ require Membrane.Core.Component355 │ ~356 │357 └─ lib/membrane/core/parent/child_life_controller/startup_utils.ex:9:3358359 warning: unused require Membrane.Core.Component360 │361 18 │ require Membrane.Core.Component362 │ ~363 │364 └─ lib/membrane/core/parent/lifecycle_controller.ex:18:3365366 warning: unused require Membrane.Core.Message367 │368 19 │ require Membrane.Core.Message369 │ ~370 │371 └─ lib/membrane/core/parent/lifecycle_controller.ex:19:3372373 warning: unused require Membrane.Core.Message374 │375 20 │ require Membrane.Core.Message376 │ ~377 │378 └─ lib/membrane/core/element/lifecycle_controller.ex:20:3379380 warning: unused require Membrane.Core.Message381 │382 7 │ require Membrane.Core.Message383 │ ~384 │385 └─ lib/membrane/core/lifecycle_controller.ex:7:3386387 warning: the variable "at_pos" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator388 │389 103 │ <<part1::binary-size(at_pos), part2::binary>> = payload390 │ ~391 │392 └─ lib/membrane/payload.ex:103:26: Membrane.Payload.BitString.split_at/2393394 warning: the variable "bytes" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator395 │396 116 │ <<_dropped::binary-size(bytes), rest::binary>> = payload397 │ ~398 │399 └─ lib/membrane/payload.ex:116:29: Membrane.Payload.BitString.drop/2400401 warning: unused require Membrane.Core.Message (convert it to an alias instead)402 │403 11 │ require Membrane.Core.Message, as: Message404 │ ~405 │406 └─ lib/membrane/core/element/atomic_demand.ex:11:3407408 warning: unused require Membrane.Pad (convert it to an alias instead)409 │410 13 │ require Membrane.Pad, as: Pad411 │ ~412 │413 └─ lib/membrane/core/element/atomic_demand.ex:13:3414415 warning: unused require Membrane.Core.Message416 │417 20 │ require Membrane.Core.Message418 │ ~419 │420 └─ lib/membrane/bin.ex:20:3421422 warning: unused require Membrane.Core.Message (convert it to an alias instead)423 │424 24 │ require Membrane.Core.Message, as: Message425 │ ~426 │427 └─ lib/membrane/core/element/effective_flow_controller.ex:24:3428429 warning: unused require Membrane.Pad (convert it to an alias instead)430 │431 26 │ require Membrane.Pad, as: Pad432 │ ~433 │434 └─ lib/membrane/core/element/effective_flow_controller.ex:26:3435436 warning: unused require Membrane.Core.Message (convert it to an alias instead)437 │438 26 │ require Membrane.Core.Message, as: Message439 │ ~440 │441 └─ lib/membrane/core/element/pad_controller.ex:26:3442443 warning: unused require Membrane.Pad (convert it to an alias instead)444 │445 29 │ require Membrane.Pad, as: Pad446 │ ~447 │448 └─ lib/membrane/core/element/pad_controller.ex:29:3449450 warning: unused require Membrane.Pad (convert it to an alias instead)451 │452 18 │ require Membrane.Pad, as: Pad453 │ ~454 │455 └─ lib/membrane/core/element/auto_flow_controller.ex:18:3456457 warning: unused require Membrane.Pad458 │459 15 │ require Membrane.Pad460 │ ~461 │462 └─ lib/membrane/core/legacy_telemetry.ex:15:3463464 warning: unused require Membrane.Core.Component465 │466 14 │ require Membrane.Core.Component467 │ ~468 │469 └─ lib/membrane/core/pipeline.ex:14:3470471 warning: unused require Membrane.Pad (convert it to an alias instead)472 │473 6 │ require Membrane.Pad, as: Pad474 │ ~475 │476 └─ lib/membrane/core/element/diamond_detection_controller/path_in_grapth.ex:6:5477478 warning: unused require Membrane.Pad479 │480 11 │ require Membrane.Pad481 │ ~482 │483 └─ lib/membrane/core/child/pad_spec_handler.ex:11:3484485 warning: unused require Membrane.Core.Message (convert it to an alias instead)486 │487 63 │ require Membrane.Core.Message, as: Message488 │ ~489 │490 └─ lib/membrane/pipeline.ex:63:3491492 warning: unused require Membrane.Logger493 │494 81 │ require Membrane.Logger495 │ ~496 │497 └─ lib/membrane/core/element/diamond_detection_controller.ex:81:3498499 warning: unused require Membrane.Pad (convert it to an alias instead)500 │501 82 │ require Membrane.Pad, as: Pad502 │ ~503 │504 └─ lib/membrane/core/element/diamond_detection_controller.ex:82:3505506 warning: unused require Membrane.Core.Telemetry (convert it to an alias instead)507 │508 13 │ require Membrane.Core.Telemetry, as: Telemetry509 │ ~510 │511 └─ lib/membrane/core/callback_handler.ex:13:3512513 warning: unused require Membrane.Logger514 │515 11 │ require Membrane.Logger516 │ ~517 │518 └─ lib/membrane/core/pipeline/action_handler.ex:11:3519520 warning: unused require Membrane.Core.Telemetry (convert it to an alias instead)521 │522 42 │ require Membrane.Core.Telemetry, as: Telemetry523 │ ~524 │525 └─ lib/membrane/core/element.ex:42:3526527 warning: unused require Membrane.Core.Message528 │529 11 │ require Message530 │ ~531 │532 └─ lib/membrane/core/bin/action_handler.ex:11:3533534 warning: unused require Membrane.Core.Telemetry (convert it to an alias instead)535 │536 27 │ require Membrane.Core.Telemetry, as: Telemetry537 │ ~538 │539 └─ lib/membrane/core/element/buffer_controller.ex:27:3540541 warning: unused require Membrane.Core.Message (convert it to an alias instead)542 │543 34 │ require Membrane.Core.Message, as: Message544 │ ~545 │546 └─ lib/membrane/core/element/action_handler.ex:34:3547548 warning: unused require Membrane.Core.Telemetry (convert it to an alias instead)549 │550 36 │ require Membrane.Core.Telemetry, as: Telemetry551 │ ~552 │553 └─ lib/membrane/core/element/action_handler.ex:36:3554555 warning: unused require Membrane.Core.Telemetry556 │557 23 │ require Membrane.Core.Telemetry558 │ ~559 │560 └─ lib/membrane/core/element/stream_format_controller.ex:23:3561562 warning: unused require Membrane.Core.Message563 │564 24 │ require Membrane.Core.Message565 │ ~566 │567 └─ lib/membrane/core/element/event_controller.ex:24:3568569 warning: unused require Membrane.Core.Telemetry570 │571 25 │ require Membrane.Core.Telemetry572 │ ~573 │574 └─ lib/membrane/core/element/event_controller.ex:25:3575576 warning: unused require Membrane.Core.Message577 │578 24 │ require Membrane.Core.Message579 │ ~580 │581 └─ lib/membrane/core/parent/child_life_controller/link_utils.ex:24:3582583 warning: unused require Membrane.Core.Telemetry584 │585 25 │ require Membrane.Core.Telemetry586 │ ~587 │588 └─ lib/membrane/core/parent/child_life_controller/link_utils.ex:25:3589590 warning: unused require Membrane.Core.Message591 │592 90 │ require Membrane.Core.Message593 │ ~594 │595 └─ lib/membrane/testing/pipeline.ex:90:3596597 warning: the following clause cannot match because the previous clauses already matched all possible values:598599 _ ->600601 it attempts to match on the result of:602603 handler_reported?(component_type, callback)604605 which has the already matched type:606607 dynamic(false)608609 type warning found at:610 │611 190 │ if handler_reported?(component_type, callback) do612 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~613 │614 └─ lib/membrane/core/telemetry.ex:190: Membrane.Core.Telemetry.track_callback_handler/5615616 warning: the right-hand side of || will never be executed:617618 input_demand_unit || ...619620 because the left-hand side always evaluates to:621622 dynamic(not false and not nil)623624 where "input_demand_unit" was given the type:625626 # type: dynamic(not false and not nil)627 # from: lib/membrane/core/element/pad_controller.ex:140:45628 {output_demand_unit, input_demand_unit} = resolve_demand_units(output_pad_info, pad_info)629630 type warning found at:631 │632 155 │ receiver_demand_unit: input_demand_unit || :buffers,633 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~634 │635 └─ lib/membrane/core/element/pad_controller.ex:155: Membrane.Core.Element.PadController.do_handle_link/6636637 warning: the following clause is redundant:638639 {[], next_state} ->640641 previous clauses have already matched on the following types:642643 {empty_list() or non_empty_list(term(), term()), term()}644645 where "next_state" was given the type:646647 # type: dynamic()648 # from: lib/membrane/filter_aggregator.ex649 {[], next_state}650651 type warning found at:652 │653 186 │ {[], next_state} ->654 │ ~655 │656 └─ lib/membrane/filter_aggregator.ex:186:24: Membrane.FilterAggregator.perform_actions/5657658Generated membrane_core app659==> membrane_aac_plugin660Compiling 6 files (.ex)661 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 operator662 │663 89 │ <<frame::binary-size(size), rest::binary>> -> {:frame, frame, rest}664 │ ~665 │666 └─ lib/membrane/aac/parser/adts.ex:89:28: Membrane.AAC.Parser.ADTS.extract_frame/4667668 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 operator669 │670 98 │ <<_adts::binary-size(adts_size), frame::binary-size(frame_size), rest::binary>> ->671 │ ~672 │673 └─ lib/membrane/aac/parser/adts.ex:98:28: Membrane.AAC.Parser.ADTS.extract_frame/4674675 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 operator676 │677 98 │ <<_adts::binary-size(adts_size), frame::binary-size(frame_size), rest::binary>> ->678 │ ~679 │680 └─ lib/membrane/aac/parser/adts.ex:98:59: Membrane.AAC.Parser.ADTS.extract_frame/4681682 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 operator683 │684 32 │ <<custom_frequency::integer-size(custom_frequency_length), channel_config_id::4,685 │ ~686 │687 └─ lib/membrane/aac/parser/audio_specific_config.ex:32:38: Membrane.AAC.Parser.AudioSpecificConfig.parse_audio_specific_config/1688689 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 operator690 │691 60 │ <<_url::binary-size(url_length), rest::binary>> = rest692 │ ~693 │694 └─ lib/membrane/aac/parser/esds.ex:60:29: Membrane.AAC.Parser.Esds.parse_esds/1695696 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 operator697 │698 92 │ <<payload::binary-size(payload_size), rest::binary>> = rest699 │ ~700 │701 └─ lib/membrane/aac/parser/esds.ex:92:32: Membrane.AAC.Parser.Esds.unpack_esds_section/2702703 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 operator704 │705 96 │ <<payload::binary-size(payload_size), rest::binary>> = rest706 │ ~707 │708 └─ lib/membrane/aac/parser/esds.ex:96:32: Membrane.AAC.Parser.Esds.unpack_esds_section/2709710 warning: a struct for Membrane.AAC.Filler.State is expected on struct update:711712 %Membrane.AAC.Filler.State{state | frame_duration: new_duration, channels: stream_format.channels}713714 but got type:715716 dynamic()717718 where "state" was given the type:719720 # type: dynamic()721 # from: lib/membrane/aac/filler.ex:71:57722 state723724 when defining the variable "state", you must also pattern match on "%Membrane.AAC.Filler.State{}"725726 type warning found at:727 │728 75 │ state = %State{state | frame_duration: new_duration, channels: stream_format.channels}729 │ ~730 │731 └─ lib/membrane/aac/filler.ex:75:13: Membrane.AAC.Filler.handle_stream_format/4732733 warning: a struct for Membrane.Buffer is expected on struct update:734735 %Membrane.Buffer{736 buffer737 | payload:738 Membrane.AAC.Parser.ADTS.payload_to_adts(buffer.payload, ctx.pads.output.stream_format)739 }740741 but got type:742743 dynamic(%{..., pts: integer()})744745 where "buffer" was given the type:746747 # type: dynamic(%{..., pts: integer()})748 # from: lib/membrane/aac/parser.ex:111:12749 buffer = %{buffer | pts: round(Ratio.to_float(timestamp))}750751 when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"752753 type warning found at:754 │755 116 │ %Buffer{756 │ ~757 │758 └─ lib/membrane/aac/parser.ex:116:11: Membrane.AAC.Parser.handle_buffer/4759760 warning: a struct for Membrane.Buffer is expected on struct update:761762 %Membrane.Buffer{763 buffer764 | payload: silent_frame_payload,765 pts: round(timestamp),766 dts: round(timestamp)767 }768769 but got type:770771 dynamic(%{..., pts: term()})772773 where "buffer" was given the type:774775 # type: dynamic(%{..., pts: term()})776 # from: lib/membrane/aac/filler.ex:84:32777 buffer.pts778779 when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"780781 type warning found at:782 │783 96 │ %Buffer{784 │ ~785 │786 └─ lib/membrane/aac/filler.ex:96:9: Membrane.AAC.Filler.handle_buffer/4787788Generated membrane_aac_plugin app789==> membrane_h26x_plugin790Compiling 31 files (.ex)791Generated membrane_h26x_plugin app792==> membrane_raw_audio_format793Compiling 2 files (.ex)794Generated membrane_raw_audio_format app795==> membrane_rtp_format796Compiling 5 files (.ex)797Generated membrane_rtp_format app798==> membrane_rtp_h264_plugin799Compiling 8 files (.ex)800 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 operator801 │802 37 │ <<header::1-binary, head::binary-size(preferred_size - 1), rest::binary>> ->803 │ ~804 │805 └─ lib/rtp_h264/nal_formats/fu.ex:37:45: Membrane.RTP.H264.FU.serialize/2806807 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 operator808 │809 54 │ <<head::binary-size(preferred_size - 2), rest::binary>> when byte_size(rest) > 0 ->810 │ ~811 │812 └─ lib/rtp_h264/nal_formats/fu.ex:54:27: Membrane.RTP.H264.FU.do_serialize/5813814 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 operator815 │816 120 │ <<_x::binary-size(offset), nalu::binary-size(nalu_size), remaining_aus::binary>> = rest817 │ ~818 │819 └─ lib/rtp_h264/utils.ex:120:25: Membrane.RTP.H264.Utils.check_first_aggregation_unit/3820821 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 operator822 │823 120 │ <<_x::binary-size(offset), nalu::binary-size(nalu_size), remaining_aus::binary>> = rest824 │ ~825 │826 └─ lib/rtp_h264/utils.ex:120:52: Membrane.RTP.H264.Utils.check_first_aggregation_unit/3827828 warning: a struct for Membrane.Buffer is expected on struct update:829830 %Membrane.Buffer{buffer | payload: &1}831832 but got type:833834 dynamic(%{..., payload: term()})835836 where "buffer" was given the type:837838 # type: dynamic(%{..., payload: term()})839 # from: lib/rtp_h264/payloader.ex:187:11840 Membrane.RTP.H264.FU.serialize(841 buffer.payload,842 state.max_payload_size843 )844845 when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"846847 type warning found at:848 │849 188 │ |> Enum.map(&%Buffer{buffer | payload: &1})850 │ ~851 │852 └─ lib/rtp_h264/payloader.ex:188:18: Membrane.RTP.H264.Payloader.use_fu_a/2853854 warning: a struct for Membrane.RTP.H264.Depayloader.State is expected on struct update:855856 %Membrane.RTP.H264.Depayloader.State{state | parser_acc: nil}857858 but got type:859860 dynamic()861862 where "state" was given the type:863864 # type: dynamic()865 # from: lib/rtp_h264/depayloader.ex:43:43866 state867868 when defining the variable "state", you must also pattern match on "%Membrane.RTP.H264.Depayloader.State{}"869870 type warning found at:871 │872 51 │ {[], %State{state | parser_acc: nil}}873 │ ~874 │875 └─ lib/rtp_h264/depayloader.ex:51:14: Membrane.RTP.H264.Depayloader.handle_buffer/4876877 warning: a struct for Membrane.RTP.H264.Depayloader.State is expected on struct update:878879 %Membrane.RTP.H264.Depayloader.State{state | parser_acc: nil}880881 but got type:882883 dynamic()884885 where "state" was given the type:886887 # type: dynamic()888 # from: lib/rtp_h264/depayloader.ex:67:56889 state890891 when defining the variable "state", you must also pattern match on "%Membrane.RTP.H264.Depayloader.State{}"892893 type warning found at:894 │895 71 │ result = buffer_output(data, buffer, %State{state | parser_acc: nil})896 │ ~897 │898 └─ lib/rtp_h264/depayloader.ex:71:46: Membrane.RTP.H264.Depayloader.handle_unit_type/4899900 warning: a struct for Membrane.RTP.H264.FU is expected on struct update:901902 %Membrane.RTP.H264.FU{acc | data: [packet]}903904 but got type:905906 dynamic()907908 where "acc" was given the type:909910 # type: dynamic()911 # from: lib/rtp_h264/nal_formats/fu.ex:73:54912 acc913914 when defining the variable "acc", you must also pattern match on "%Membrane.RTP.H264.FU{}"915916 type warning found at:917 │918 74 │ do: {:incomplete, %__MODULE__{acc | data: [packet]}}919 │ ~920 │921 └─ lib/rtp_h264/nal_formats/fu.ex:74:23: Membrane.RTP.H264.FU.do_parse/3922923 warning: a struct for Membrane.RTP.H264.Depayloader.State is expected on struct update:924925 %Membrane.RTP.H264.Depayloader.State{state | parser_acc: fu}926927 but got type:928929 dynamic()930931 where "state" was given the type:932933 # type: dynamic()934 # from: lib/rtp_h264/depayloader.ex:67:56935 state936937 when defining the variable "state", you must also pattern match on "%Membrane.RTP.H264.Depayloader.State{}"938939 type warning found at:940 │941 75 │ result = {[], %State{state | parser_acc: fu}}942 │ ~943 │944 └─ lib/rtp_h264/depayloader.ex:75:23: Membrane.RTP.H264.Depayloader.handle_unit_type/4945946 warning: a struct for Membrane.Buffer is expected on struct update:947948 %Membrane.Buffer{buffer | payload: add_prefix(&1)}949950 but got type:951952 dynamic()953954 where "buffer" was given the type:955956 # type: dynamic()957 # from: lib/rtp_h264/depayloader.ex:83:51958 buffer959960 when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"961962 type warning found at:963 │964 85 │ buffers = Enum.map(result, &%Buffer{buffer | payload: add_prefix(&1)})965 │ ~966 │967 └─ lib/rtp_h264/depayloader.ex:85:35: Membrane.RTP.H264.Depayloader.handle_unit_type/4968969 warning: a struct for Membrane.Buffer is expected on struct update:970971 %Membrane.Buffer{buffer | payload: add_prefix(data)}972973 but got type:974975 dynamic()976977 where "buffer" was given the type:978979 # type: dynamic()980 # from: lib/rtp_h264/depayloader.ex:95:31981 buffer982983 when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"984985 type warning found at:986 │987 96 │ [buffer: {:output, %Buffer{buffer | payload: add_prefix(data)}}]988 │ ~989 │990 └─ lib/rtp_h264/depayloader.ex:96:24: Membrane.RTP.H264.Depayloader.action_from_data/2991992Generated membrane_rtp_h264_plugin app993==> membrane_rtp_vp8_plugin994Compiling 6 files (.ex)995 warning: a struct for Membrane.RTP.VP8.Depayloader.State is expected on struct update:996997 %Membrane.RTP.VP8.Depayloader.State{998 state999 | frame_acc: %Membrane.RTP.VP8.Frame{fragments: [], last_seq_num: nil, last_timestamp: nil}1000 }10011002 but got type:10031004 dynamic()10051006 where "state" was given the type:10071008 # type: dynamic()1009 # from: lib/membrane_rtp_vp8/depayloader.ex:40:601010 state10111012 when defining the variable "state", you must also pattern match on "%Membrane.RTP.VP8.Depayloader.State{}"10131014 type warning found at:1015 │1016 41 │ do: {[forward: event], %State{state | frame_acc: %Frame{}}}1017 │ ~1018 │1019 └─ lib/membrane_rtp_vp8/depayloader.ex:41:28: Membrane.RTP.VP8.Depayloader.handle_event/410201021 warning: a struct for Membrane.Buffer is expected on struct update:10221023 %Membrane.Buffer{state.first_buffer | payload: frame}10241025 but got type:10261027 dynamic()10281029 where "state" was given the types:10301031 # type: dynamic(not %Membrane.RTP.VP8.Depayloader.State{first_buffer: nil})1032 # from: lib/membrane_rtp_vp8/depayloader.ex:52:421033 state10341035 # type: dynamic(1036 %{..., frame_acc: %{..., fragments: term()}} and1037 not %Membrane.RTP.VP8.Depayloader.State{first_buffer: nil}1038 )1039 # from: lib/membrane_rtp_vp8/depayloader.ex:53:271040 Membrane.RTP.VP8.Frame.flush(state.frame_acc)10411042 # type: dynamic(1043 %{..., first_buffer: term(), frame_acc: %{..., fragments: term()}} and1044 not %Membrane.RTP.VP8.Depayloader.State{first_buffer: nil}1045 )1046 # from: lib/membrane_rtp_vp8/depayloader.ex:56:261047 %Membrane.Buffer{...}10481049 you must assign "state.first_buffer" to variable and pattern match on "%Membrane.Buffer{}"10501051 type warning found at:1052 │1053 56 │ buffer: {:output, %Buffer{state.first_buffer | payload: frame}},1054 │ ~1055 │1056 └─ lib/membrane_rtp_vp8/depayloader.ex:56:26: Membrane.RTP.VP8.Depayloader.handle_end_of_stream/310571058 warning: a struct for Membrane.RTP.VP8.PayloadDescriptor is expected on struct update:10591060 %Membrane.RTP.VP8.PayloadDescriptor{descriptor_acc | i: i, l: l, t: t, k: k}10611062 but got type:10631064 dynamic()10651066 where "descriptor_acc" was given the type:10671068 # type: dynamic()1069 # from: lib/membrane_rtp_vp8/payload_descriptor.ex:130:101070 descriptor_acc10711072 when defining the variable "descriptor_acc", you must also pattern match on "%Membrane.RTP.VP8.PayloadDescriptor{}"10731074 type warning found at:1075 │1076 136 │ {:ok, {%__MODULE__{descriptor_acc | i: i, l: l, t: t, k: k}, rest}}1077 │ ~1078 │1079 └─ lib/membrane_rtp_vp8/payload_descriptor.ex:136:12: Membrane.RTP.VP8.PayloadDescriptor.get_extended_control_bits/210801081 warning: a struct for Membrane.RTP.VP8.Depayloader.State is expected on struct update:10821083 %Membrane.RTP.VP8.Depayloader.State{state | frame_acc: acc}10841085 but got type:10861087 dynamic(%{..., frame_acc: term()})10881089 where "state" was given the type:10901091 # type: dynamic(%{..., frame_acc: term()})1092 # from: lib/membrane_rtp_vp8/depayloader.ex:76:161093 Membrane.RTP.VP8.Frame.parse(buffer, state.frame_acc)10941095 when defining the variable "state", you must also pattern match on "%Membrane.RTP.VP8.Depayloader.State{}"10961097 type warning found at:1098 │1099 78 │ {:ok, [], %State{state | frame_acc: acc}}1100 │ ~1101 │1102 └─ lib/membrane_rtp_vp8/depayloader.ex:78:19: Membrane.RTP.VP8.Depayloader.parse_buffer/211031104 warning: a struct for Membrane.RTP.VP8.PayloadDescriptor is expected on struct update:11051106 %Membrane.RTP.VP8.PayloadDescriptor{descriptor_acc | m: 0, picture_id: picture_id}11071108 but got type:11091110 dynamic()11111112 where "descriptor_acc" was given the type:11131114 # type: dynamic()1115 # from: lib/membrane_rtp_vp8/payload_descriptor.ex:143:231116 descriptor_acc11171118 when defining the variable "descriptor_acc", you must also pattern match on "%Membrane.RTP.VP8.PayloadDescriptor{}"11191120 type warning found at:1121 │1122 145 │ do: {:ok, {%__MODULE__{descriptor_acc | m: 0, picture_id: picture_id}, rest}}1123 │ ~1124 │1125 └─ lib/membrane_rtp_vp8/payload_descriptor.ex:145:19: Membrane.RTP.VP8.PayloadDescriptor.get_picture_id/211261127 warning: a struct for Membrane.RTP.VP8.Depayloader.State is expected on struct update:11281129 %Membrane.RTP.VP8.Depayloader.State{state | frame_acc: acc, first_buffer: buffer}11301131 but got type:11321133 dynamic(%{..., first_buffer: %{..., payload: term()}, frame_acc: term()})11341135 where "state" was given the types:11361137 # type: dynamic(%{..., frame_acc: term()})1138 # from: lib/membrane_rtp_vp8/depayloader.ex:76:161139 Membrane.RTP.VP8.Frame.parse(buffer, state.frame_acc)11401141 # type: dynamic(%{..., first_buffer: %{..., payload: term()}, frame_acc: term()})1142 # from: lib/membrane_rtp_vp8/depayloader.ex:81:91143 {:ok, [buffer: {:output, %{state.first_buffer | payload: frame}}],1144 %Membrane.RTP.VP8.Depayloader.State{...}}11451146 when defining the variable "state", you must also pattern match on "%Membrane.RTP.VP8.Depayloader.State{}"11471148 type warning found at:1149 │1150 82 │ %State{state | frame_acc: acc, first_buffer: buffer}}1151 │ ~1152 │1153 └─ lib/membrane_rtp_vp8/depayloader.ex:82:10: Membrane.RTP.VP8.Depayloader.parse_buffer/211541155 warning: a struct for Membrane.RTP.VP8.PayloadDescriptor is expected on struct update:11561157 %Membrane.RTP.VP8.PayloadDescriptor{descriptor_acc | m: 1, picture_id: picture_id}11581159 but got type:11601161 dynamic()11621163 where "descriptor_acc" was given the type:11641165 # type: dynamic()1166 # from: lib/membrane_rtp_vp8/payload_descriptor.ex:147:231167 descriptor_acc11681169 when defining the variable "descriptor_acc", you must also pattern match on "%Membrane.RTP.VP8.PayloadDescriptor{}"11701171 type warning found at:1172 │1173 149 │ do: {:ok, {%__MODULE__{descriptor_acc | m: 1, picture_id: picture_id}, rest}}1174 │ ~1175 │1176 └─ lib/membrane_rtp_vp8/payload_descriptor.ex:149:19: Membrane.RTP.VP8.PayloadDescriptor.get_picture_id/211771178 warning: a struct for Membrane.RTP.VP8.PayloadDescriptor is expected on struct update:11791180 %Membrane.RTP.VP8.PayloadDescriptor{descriptor_acc | tl0picidx: tl0picidx}11811182 but got type:11831184 dynamic()11851186 where "descriptor_acc" was given the type:11871188 # type: dynamic()1189 # from: lib/membrane_rtp_vp8/payload_descriptor.ex:156:381190 descriptor_acc11911192 when defining the variable "descriptor_acc", you must also pattern match on "%Membrane.RTP.VP8.PayloadDescriptor{}"11931194 type warning found at:1195 │1196 158 │ do: {:ok, {%__MODULE__{descriptor_acc | tl0picidx: tl0picidx}, rest}}1197 │ ~1198 │1199 └─ lib/membrane_rtp_vp8/payload_descriptor.ex:158:19: Membrane.RTP.VP8.PayloadDescriptor.get_temporal_level_zero_index/212001201Generated membrane_rtp_vp8_plugin app1202==> membrane_funnel_plugin1203Compiling 2 files (.ex)1204Generated membrane_funnel_plugin app1205==> membrane_tee_plugin1206Compiling 3 files (.ex)1207120802:53:17.595 [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.1209Pads with `flow_control: :auto`: input, master.1210Pads with `flow_control: :push`: copy.12111212If you want get rid of this warning, pass `flow_control_hints?: false` option to `use Membrane.Filter`.12131214121502:53:17.638 [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.1216Pads with `flow_control: :auto`: input.1217Pads with `flow_control: :push`: output.12181219If you want get rid of this warning, pass `flow_control_hints?: false` option to `use Membrane.Filter`.12201221Generated membrane_tee_plugin app1222==> membrane_file_plugin1223Compiling 10 files (.ex)1224Generated membrane_file_plugin app1225==> membrane_timestamp_queue1226Compiling 1 file (.ex)1227Generated membrane_timestamp_queue app1228==> membrane_mp4_plugin1229Compiling 32 files (.ex)1230 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 operator1231 │1232 23 │ header_content: <<content::binary-size(content_size), data::binary>> <- rest,1233 │ ~1234 │1235 └─ lib/membrane_mp4/container/parse_helper.ex:23:50: Membrane.MP4.Container.ParseHelper.parse_boxes/412361237 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 operator1238 │1239 76 │ <<^reserved::bitstring-size(size), rest::bitstring>> -> {:ok, {[], rest}, context}1240 │ ~1241 │1242 └─ lib/membrane_mp4/container/parse_helper.ex:76:35: Membrane.MP4.Container.ParseHelper.parse_field/312431244 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 operator1245 │1246 113 │ <<int::signed-integer-size(size), rest::bitstring>> ->1247 │ ~1248 │1249 └─ lib/membrane_mp4/container/parse_helper.ex:113:34: Membrane.MP4.Container.ParseHelper.parse_field/312501251 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 operator1252 │1253 123 │ <<uint::integer-size(size), rest::bitstring>> ->1254 │ ~1255 │1256 └─ lib/membrane_mp4/container/parse_helper.ex:123:28: Membrane.MP4.Container.ParseHelper.parse_field/312571258 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 operator1259 │1260 133 │ <<int::integer-size(int_size), frac::integer-size(frac_size), rest::bitstring>> ->1261 │ ~1262 │1263 └─ lib/membrane_mp4/container/parse_helper.ex:133:27: Membrane.MP4.Container.ParseHelper.parse_field/312641265 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 operator1266 │1267 133 │ <<int::integer-size(int_size), frac::integer-size(frac_size), rest::bitstring>> ->1268 │ ~1269 │1270 └─ lib/membrane_mp4/container/parse_helper.ex:133:57: Membrane.MP4.Container.ParseHelper.parse_field/312711272 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 operator1273 │1274 147 │ <<bin::bitstring-size(size), rest::bitstring>> -> {:ok, {bin, rest}, context}1275 │ ~1276 │1277 └─ lib/membrane_mp4/container/parse_helper.ex:147:29: Membrane.MP4.Container.ParseHelper.parse_field/312781279 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 operator1280 │1281 376 │ <<_header::binary-size(mdat_header_size), content::binary>> = state.partial1282 │ ~1283 │1284 └─ lib/membrane_mp4/demuxer/isom.ex:376:32: Membrane.MP4.Demuxer.ISOM.handle_can_read_mdat_box/212851286 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 operator1287 │1288 75 │ <<_to_skip::binary-size(to_skip), payload::binary-size(size), rest::binary>> ->1289 │ ~1290 │1291 └─ lib/membrane_mp4/demuxer/isom/samples_info.ex:75:31: Membrane.MP4.Demuxer.ISOM.SamplesInfo.do_get_samples/312921293 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 operator1294 │1295 75 │ <<_to_skip::binary-size(to_skip), payload::binary-size(size), rest::binary>> ->1296 │ ~1297 │1298 └─ lib/membrane_mp4/demuxer/isom/samples_info.ex:75:62: Membrane.MP4.Demuxer.ISOM.SamplesInfo.do_get_samples/312991300 warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:13011302 %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{&1 | track_with_keyframes?: is_video_pad}13031304 but got type:13051306 dynamic()13071308 instead of using &1, you must define an anonymous function, define a variable and pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"13091310 type warning found at:1311 │1312 301 │ &%SamplesQueue{&1 | track_with_keyframes?: is_video_pad}1313 │ ~1314 │1315 └─ lib/membrane_mp4/muxer/cmaf.ex:301:10: Membrane.MP4.Muxer.CMAF.handle_stream_format/413161317 warning: a struct for Membrane.Buffer is expected on struct update:13181319 %Membrane.Buffer{buffer | dts: Membrane.Buffer.get_dts_or_pts(buffer)}13201321 but got type:13221323 dynamic()13241325 where "buffer" was given the type:13261327 # type: dynamic()1328 # from: lib/membrane_mp4/muxer/isom.ex1329 {{Membrane.Pad, :input, pad_ref}, {:buffer, buffer}}13301331 when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}"13321333 type warning found at:1334 │1335 189 │ buffer = %Buffer{buffer | dts: Buffer.get_dts_or_pts(buffer)}1336 │ ~1337 │1338 └─ lib/membrane_mp4/muxer/isom.ex:189:14: Membrane.MP4.Muxer.ISOM.handle_queue_item/213391340 warning: a struct for Membrane.Buffer is expected on struct update:13411342 %Membrane.Buffer{sample | dts: Membrane.Buffer.get_dts_or_pts(sample)}13431344 but got type:13451346 dynamic()13471348 where "sample" was given the type:13491350 # type: dynamic()1351 # from: lib/membrane_mp4/muxer/cmaf.ex:341:491352 sample13531354 when defining the variable "sample", you must also pattern match on "%Membrane.Buffer{}"13551356 type warning found at:1357 │1358 348 │ sample = %Buffer{sample | dts: Buffer.get_dts_or_pts(sample)}1359 │ ~1360 │1361 └─ lib/membrane_mp4/muxer/cmaf.ex:348:14: Membrane.MP4.Muxer.CMAF.handle_buffer/413621363 warning: a struct for Membrane.Buffer is expected on struct update:13641365 %Membrane.Buffer{sample | metadata: sample_metadata}13661367 but got type:13681369 dynamic(%{..., metadata: map()})13701371 where "sample" was given the type:13721373 # type: dynamic(%{..., metadata: map()})1374 # from: lib/membrane_mp4/muxer/cmaf.ex:489:171375 Map.put(1376 sample.metadata,1377 :duration,1378 Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.last_sample(queue).metadata.duration1379 )13801381 when defining the variable "sample", you must also pattern match on "%Membrane.Buffer{}"13821383 type warning found at:1384 │1385 491 │ sample = %Buffer{sample | metadata: sample_metadata}1386 │ ~1387 │1388 └─ lib/membrane_mp4/muxer/cmaf.ex:491:20: Membrane.MP4.Muxer.CMAF.generate_end_of_stream_segment/413891390 warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:13911392 %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{1393 queue1394 | collected_samples_duration: queue.collected_samples_duration + sample.metadata.duration,1395 target_samples: [sample | queue.target_samples]1396 }13971398 but got type:13991400 dynamic()14011402 where "queue" was given the type:14031404 # type: dynamic()1405 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:125:161406 queue14071408 when defining the variable "queue", you must also pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"14091410 type warning found at:1411 │1412 127 │ %__MODULE__{1413 │ ~1414 │1415 └─ lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:127:5: Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.do_push/614161417 warning: a struct for Membrane.Buffer is expected on struct update:14181419 %Membrane.Buffer{prev_sample | metadata: prev_sample_metadata}14201421 but got type:14221423 dynamic(%{..., dts: term(), metadata: map()})14241425 where "prev_sample" was given the types:14261427 # type: dynamic(not nil)1428 # from: lib/membrane_mp4/muxer/cmaf.ex:7221429 prev_sample == nil14301431 # type: dynamic(%{..., dts: term()})1432 # from: lib/membrane_mp4/muxer/cmaf.ex:7251433 Numbers.sub(sample.dts, prev_sample.dts)14341435 # type: dynamic(%{..., dts: term(), metadata: map()})1436 # from: lib/membrane_mp4/muxer/cmaf.ex:726:341437 Map.put(prev_sample.metadata, :duration, duration)14381439 when defining the variable "prev_sample", you must also pattern match on "%Membrane.Buffer{}"14401441 type warning found at:1442 │1443 727 │ prev_sample = %Buffer{prev_sample | metadata: prev_sample_metadata}1444 │ ~1445 │1446 └─ lib/membrane_mp4/muxer/cmaf.ex:727:21: Membrane.MP4.Muxer.CMAF.process_buffer_awaiting_duration/314471448 warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:14491450 %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{1451 queue1452 | excess_samples: [sample | queue.excess_samples]1453 }14541455 but got type:14561457 dynamic(%{..., collectable?: not false and not nil})14581459 where "queue" was given the types:14601461 # type: dynamic(%{..., collectable?: term()})1462 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:141463 queue.collectable?14641465 # type: dynamic(%{..., collectable?: not false and not nil})1466 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:141467 queue.collectable?14681469 when defining the variable "queue", you must also pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"14701471 type warning found at:1472 │1473 186 │ %__MODULE__{queue | excess_samples: [sample | queue.excess_samples]}1474 │ ~1475 │1476 └─ lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:186:7: Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.do_push/614771478 warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:14791480 %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{1481 queue1482 | collectable?: true,1483 target_samples: Enum.reverse(target_samples),1484 collected_samples_duration: total_duration(target_samples),1485 excess_samples: [sample]1486 }14871488 but got type:14891490 dynamic(%{1491 ...,1492 collectable?: false or nil,1493 excess_samples: list(term()),1494 target_samples: term(),1495 track_with_keyframes?: true1496 })14971498 where "queue" was given the types:14991500 # type: dynamic(%{..., collectable?: term()})1501 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:141502 queue.collectable?15031504 # type: dynamic(%{..., collectable?: false or nil})1505 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:141506 queue.collectable?15071508 # type: dynamic(%{..., collectable?: false or nil, track_with_keyframes?: term()})1509 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:188:161510 queue.track_with_keyframes?15111512 # type: dynamic(%{..., collectable?: false or nil, track_with_keyframes?: boolean()})1513 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:188:161514 queue.track_with_keyframes?15151516 # type: dynamic(%{..., collectable?: false or nil, track_with_keyframes?: true})1517 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:188:161518 queue.track_with_keyframes?15191520 # type: dynamic(%{1521 ...,1522 collectable?: false or nil,1523 excess_samples: list(term()),1524 track_with_keyframes?: true1525 })1526 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:189:471527 queue.excess_samples ++ queue.target_samples15281529 # type: dynamic(%{1530 ...,1531 collectable?: false or nil,1532 excess_samples: list(term()),1533 target_samples: term(),1534 track_with_keyframes?: true1535 })1536 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:189:471537 queue.excess_samples ++ queue.target_samples15381539 when defining the variable "queue", you must also pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"15401541 type warning found at:1542 │1543 191 │ %__MODULE__{1544 │ ~1545 │1546 └─ lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:191:9: Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.do_push/615471548 warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:15491550 %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{1551 queue1552 | collectable?: true,1553 target_samples: Enum.reverse(queue.target_samples),1554 excess_samples: [sample | queue.excess_samples]1555 }15561557 but got type:15581559 dynamic(%{..., collectable?: false or nil, track_with_keyframes?: boolean()})15601561 where "queue" was given the types:15621563 # type: dynamic(%{..., collectable?: term()})1564 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:141565 queue.collectable?15661567 # type: dynamic(%{..., collectable?: false or nil})1568 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:185:141569 queue.collectable?15701571 # type: dynamic(%{..., collectable?: false or nil, track_with_keyframes?: term()})1572 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:188:161573 queue.track_with_keyframes?15741575 # type: dynamic(%{..., collectable?: false or nil, track_with_keyframes?: boolean()})1576 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:188:161577 queue.track_with_keyframes?15781579 when defining the variable "queue", you must also pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"15801581 type warning found at:1582 │1583 199 │ %__MODULE__{1584 │ ~1585 │1586 └─ lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:199:9: Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.do_push/615871588 warning: a struct for Membrane.MP4.Muxer.CMAF.TrackSamplesQueue is expected on struct update:15891590 %Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{1591 queue1592 | collectable?: false,1593 collected_samples_duration: 0,1594 target_samples: [],1595 excess_samples: []1596 }15971598 but got type:15991600 dynamic()16011602 where "queue" was given the type:16031604 # type: dynamic()1605 # from: lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:329:201606 queue16071608 when defining the variable "queue", you must also pattern match on "%Membrane.MP4.Muxer.CMAF.TrackSamplesQueue{}"16091610 type warning found at:1611 │1612 330 │ %__MODULE__{1613 │ ~1614 │1615 └─ lib/membrane_mp4/muxer/cmaf/track_samples_queue.ex:330:5: Membrane.MP4.Muxer.CMAF.TrackSamplesQueue.reset_queue/116161617 warning: the following clause will never match:16181619 {:error, :not_available_yet} ->16201621 it is expected to match on type:16221623 none()16241625 type warning found at:1626 │1627 288 │ {:error, :not_available_yet} -> {[], state}1628 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1629 │1630 └─ lib/membrane_mp4/demuxer/cmaf.ex:288: Membrane.MP4.Demuxer.CMAF.get_buffers/116311632 warning: incompatible types given to Ratio.mult/2:16331634 Ratio.mult(1635 Ratio.new(sample.ts, engine.last_timescales[sample.track_id]),1636 10001637 )16381639 given types:16401641 dynamic(), -integer()-16421643 but expected one of:16441645 (1646 %Ratio{numerator: float() or integer(), denominator: float() or integer()},1647 %Ratio{numerator: float() or integer(), denominator: float() or integer()}1648 )16491650 where "engine" was given the types:16511652 # type: dynamic(%{..., samples_info: term()})1653 # from: lib/membrane_mp4/demuxer/cmaf/engine.ex:182:121654 Enum.split_while(1655 engine.samples_info,1656 &(&1.offset - engine.how_many_segment_bytes_read < byte_size(mdat_box.content))1657 )16581659 # type: dynamic(%{..., how_many_segment_bytes_read: integer(), samples_info: term()})1660 # from: lib/membrane_mp4/demuxer/cmaf/engine.ex:192:481661 sample.offset - engine.how_many_segment_bytes_read16621663 # type: dynamic(%{1664 ...,1665 how_many_segment_bytes_read: integer(),1666 last_timescales:1667 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1668 non_struct_map(),1669 samples_info: term()1670 })1671 # from: lib/membrane_mp4/demuxer/cmaf/engine.ex:195:541672 engine.last_timescales[sample.track_id]16731674 where "sample" was given the types:16751676 # type: dynamic(%{..., offset: integer(), size: integer()})1677 # from: lib/membrane_mp4/demuxer/cmaf/engine.ex:192:221678 binary_part(mdat_box.content, sample.offset - engine.how_many_segment_bytes_read, sample.size)16791680 # type: dynamic(%{..., offset: integer()})1681 # from: lib/membrane_mp4/demuxer/cmaf/engine.ex:192:481682 sample.offset - engine.how_many_segment_bytes_read16831684 # type: dynamic(%{..., offset: integer(), size: integer(), ts: term()})1685 # from: lib/membrane_mp4/demuxer/cmaf/engine.ex:195:171686 Ratio.new(sample.ts, engine.last_timescales[sample.track_id])16871688 # type: dynamic(%{..., offset: integer(), size: integer(), track_id: term(), ts: term()})1689 # from: lib/membrane_mp4/demuxer/cmaf/engine.ex:195:541690 engine.last_timescales[sample.track_id]16911692 type warning found at:1693 │1694 196 │ |> Ratio.mult(1000)1695 │ ~1696 │1697 └─ lib/membrane_mp4/demuxer/cmaf/engine.ex:196:20: Membrane.MP4.Demuxer.CMAF.Engine.read_mdat/216981699Generated membrane_mp4_plugin app1700==> unifex1701Bundlex: Building natives: unifex1702Compiling 33 files (.ex)1703 warning: unused require Bundlex.CNode1704 │1705 6 │ require Bundlex.CNode1706 │ ~1707 │1708 └─ lib/unifex/cnode.ex:6:317091710Generated unifex app1711==> ex_dtls1712Bundlex: Building natives: native1713Compiling 2 files (.ex)1714Generated ex_dtls app1715==> membrane_common_c1716Bundlex: Building natives: membrane, membrane_ringbuffer1717Compiling 1 file (.ex)1718Generated membrane_common_c app1719172002:53:24.949 [warning] Function decode marked as dirty does not match any function defined in spec (/work/proj/deps/membrane_h264_ffmpeg_plugin/c_src/membrane_h264_ffmpeg_plugin/decoder.spec.exs).1721172202:53:24.949 [warning] Function flush marked as dirty does not match any function defined in spec (/work/proj/deps/membrane_h264_ffmpeg_plugin/c_src/membrane_h264_ffmpeg_plugin/decoder.spec.exs).1723172402:53:24.978 [warning] Function flush marked as dirty does not match any function defined in spec (/work/proj/deps/membrane_h264_ffmpeg_plugin/c_src/membrane_h264_ffmpeg_plugin/encoder.spec.exs).1725172602:53:24.978 [warning] Function encode marked as dirty does not match any function defined in spec (/work/proj/deps/membrane_h264_ffmpeg_plugin/c_src/membrane_h264_ffmpeg_plugin/encoder.spec.exs).1727==> membrane_h264_ffmpeg_plugin1728Bundlex: Building natives: decoder, encoder1729warning: Bundlex: Couldn't load OS dependency using {:precompiled, "https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n6.0-latest-linux64-gpl-shared-6.0.tar.xz", ["libavcodec", "libavutil"]}17301731couldn't download and extract the precompiled dependency :ffmpeg due to:1732 ** (BundlexError) Cannot download file from https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n6.0-latest-linux64-gpl-shared-6.0.tar.xz1733 Response status: 404173417351736Loading using {:pkg_config, ["libavcodec", "libavutil"]}173717381739could not compile dependency :membrane_h264_ffmpeg_plugin, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile membrane_h264_ffmpeg_plugin --force", update it with "mix deps.update membrane_h264_ffmpeg_plugin" or clean it with "mix deps.clean membrane_h264_ffmpeg_plugin"1740==> nerves_compatibility_test1741** (Mix) Bundlex: Couldn't load OS dependency :ffmpeg of package membrane_h264_ffmpeg_plugin. Make sure to follow installation instructions that may be available in the readme of membrane_h264_ffmpeg_plugin.17421743Tried the following providers:17441745Provider `{:precompiled, "https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n6.0-latest-linux64-gpl-shared-6.0.tar.xz", ["libavcodec", "libavutil"]}` couldn't download and extract the precompiled dependency :ffmpeg due to:1746 ** (BundlexError) Cannot download file from https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n6.0-latest-linux64-gpl-shared-6.0.tar.xz1747 Response status: 40417481749Provider `{:pkg_config, ["libavcodec", "libavutil"]}` couldn't load ["libavcodec", "libavutil"] libraries with pkg-config due to:1750 ** (BundlexError) pkg-config error:1751 Code: 11752 Package libavcodec was not found in the pkg-config search path.1753 Perhaps you should add the directory containing `libavcodec.pc'1754 to the PKG_CONFIG_PATH environment variable1755 Package 'libavcodec', required by 'virtual:world', not found17561757