diff --git a/lib/rtp_h264/nal_formats/stap_a.ex b/lib/rtp_h264/nal_formats/stap_a.ex index 4c93ff4..a5868e1 100644 --- a/lib/rtp_h264/nal_formats/stap_a.ex +++ b/lib/rtp_h264/nal_formats/stap_a.ex @@ -44,11 +44,11 @@ defmodule Membrane.RTP.H264.StapA do def aggregation_unit_size(nalu), do: byte_size(nalu) + 2 @spec serialize([binary], 0..1, 0..3) :: binary - def serialize(payloads, reserved, nri) do + def serialize(payloads, f, nri) do payloads |> Enum.reverse() |> Enum.map(&<>) |> IO.iodata_to_binary() - |> NAL.Header.add_header(reserved, nri, NAL.Header.encode_type(:stap_a)) + |> NAL.Header.add_header(f, nri, NAL.Header.encode_type(:stap_a)) end end diff --git a/lib/rtp_h264/nal_header.ex b/lib/rtp_h264/nal_header.ex index 84b30f5..676c93e 100644 --- a/lib/rtp_h264/nal_header.ex +++ b/lib/rtp_h264/nal_header.ex @@ -78,8 +78,8 @@ defmodule Membrane.RTP.H264.NAL.Header do Adds NAL header to payload """ @spec add_header(binary(), 0 | 1, nri(), type()) :: binary() - def add_header(payload, reserved, nri, type), - do: <> <> payload + def add_header(payload, f, nri, type), + do: <> <> payload @doc """ Parses type stored in NAL Header diff --git a/lib/rtp_h264/payloader.ex b/lib/rtp_h264/payloader.ex index fdff232..5140b13 100644 --- a/lib/rtp_h264/payloader.ex +++ b/lib/rtp_h264/payloader.ex @@ -53,8 +53,7 @@ defmodule Membrane.RTP.H264.Payloader do pts: 0, dts: 0, metadata: nil, - nri: 0, - reserved: 0 + nri: 0 } ] end @@ -115,7 +114,7 @@ defmodule Membrane.RTP.H264.Payloader do metadata_match? = !stap_acc.metadata || stap_acc.pts == buffer.pts if metadata_match? and size <= state.max_payload_size do - <> = buffer.payload + <<_f::1, nri::2, _type::5, _rest::binary>> = buffer.payload stap_acc = %{ stap_acc @@ -124,8 +123,7 @@ defmodule Membrane.RTP.H264.Payloader do metadata: stap_acc.metadata || buffer.metadata, pts: buffer.pts, dts: buffer.dts, - reserved: stap_acc.reserved * r, - nri: min(stap_acc.nri, nri) + nri: max(stap_acc.nri, nri) } {:accept, [], %{state | stap_acc: stap_acc}} @@ -154,7 +152,7 @@ defmodule Membrane.RTP.H264.Payloader do ] payloads -> - payload = StapA.serialize(payloads, stap_acc.reserved, stap_acc.nri) + payload = StapA.serialize(payloads, 0, stap_acc.nri) [ %Buffer{