membrane_rtc_engine_hls

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