Packages
membrane_h264_ffmpeg_plugin
0.16.2
0.32.7
0.32.6
0.32.5
0.32.4
0.32.3
0.32.2
0.32.1
0.32.0
0.31.8
0.31.7
0.31.6
0.31.5
0.31.4
0.31.3
0.31.2
0.31.1
0.31.0
0.30.1
0.30.0
0.29.0
0.28.2
0.28.1
0.28.0
0.27.0
0.26.2
0.26.1
0.26.0
0.25.4
0.25.3
0.25.2
0.25.1
0.25.0
0.24.0
0.23.0
0.22.1
0.22.0
0.21.6
0.21.5
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.1
0.20.0
0.19.0
0.18.0
0.17.0
0.16.3
0.16.2
0.16.1
0.16.0
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
Membrane H264 decoder and encoder based on FFmpeg and x264
Current section
Files
Jump to
Current section
Files
lib/membrane_h264_ffmpeg/common.ex
defmodule Membrane.H264.FFmpeg.Common do
@moduledoc false
use Ratio
@h264_time_base 90_000
@doc """
Converts time in membrane time base (1 [ns]) to h264 time base (1/90_000 [s])
"""
@spec to_h264_time_base_truncated(number | Ratio.t()) :: integer
def to_h264_time_base_truncated(timestamp) do
(timestamp * @h264_time_base / Membrane.Time.second()) |> Ratio.trunc()
end
@doc """
Converts time from h264 time base (1/90_000 [s]) to membrane time base (1 [ns])
"""
@spec to_membrane_time_base_truncated(number | Ratio.t()) :: integer
def to_membrane_time_base_truncated(timestamp) do
(timestamp * Membrane.Time.second() / @h264_time_base) |> Ratio.trunc()
end
end