membraneframework / membrane_core

The core of the Membrane Framework, advanced multimedia processing framework
https://membrane.stream
Apache License 2.0
1.22k stars 34 forks source link

AAC FDK plugin pts bad arg in arithmetic #791

Closed Doerge closed 2 months ago

Doerge commented 2 months ago

When encoding with certain streams (sorry, can't share the one example I have), the pts check fails with:

[error] GenServer #PID<0.830.0> terminating
** (ArithmeticError) bad argument in arithmetic expression
    :erlang.-(nil, nil)
    (membrane_aac_fdk_plugin 0.18.7) lib/membrane_aac_fdk_plugin/encoder.ex:281: Membrane.AAC.FDK.Encoder.validate_pts_integrity/2
    (membrane_aac_fdk_plugin 0.18.7) lib/membrane_aac_fdk_plugin/encoder.ex:165: Membrane.AAC.FDK.Encoder.handle_buffer/4
    (membrane_core 1.0.1) lib/membrane/core/callback_handler.ex:139: Membrane.Core.CallbackHandler.exec_callback/4
    (membrane_core 1.0.1) lib/membrane/core/callback_handler.ex:69: Membrane.Core.CallbackHandler.exec_and_handle_callback/5
    (elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
    (membrane_core 1.0.1) lib/membrane/core/element.ex:232: Membrane.Core.Element.handle_info/2
    (stdlib 5.2) gen_server.erl:1095: :gen_server.try_handle_info/3
    (stdlib 5.2) gen_server.erl:1183: :gen_server.handle_msg/6
    (stdlib 5.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3

Downgrading solved it for me:

      {:membrane_aac_fdk_plugin, "== 0.18.2"},

See also: https://discord.com/channels/464786597288738816/1224674826489172009/1227985490691489823

bartkrak commented 2 months ago

I've made a pull request that should fix your problem. It should soon be released as a patch.