From 906d91d8a698ee1f9820a42a171aefe34f741f67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kita?= Date: Thu, 7 Sep 2023 16:39:47 +0200 Subject: [PATCH] Fix pts generation with repeated parameter set (#42) * Get pts from the VCL NAL unit instead of from the first NAL unit from the AU when the timestamps are rewritten * Fix the description of skip_until_keyframe option --- README.md | 2 +- lib/membrane_h264_plugin/parser.ex | 5 ++--- mix.exs | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index beb0601..949bc8e 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ The package can be installed by adding `membrane_h264_plugin` to your list of de ```elixir def deps do [ - {:membrane_h264_plugin, "~> 0.7.1"} + {:membrane_h264_plugin, "~> 0.7.2"} ] end ``` diff --git a/lib/membrane_h264_plugin/parser.ex b/lib/membrane_h264_plugin/parser.ex index d3ecdb2..9c6d54d 100644 --- a/lib/membrane_h264_plugin/parser.ex +++ b/lib/membrane_h264_plugin/parser.ex @@ -46,6 +46,7 @@ defmodule Membrane.H264.Parser do use Membrane.Filter require Membrane.Logger + require Membrane.H264.Parser.NALuTypes, as: NALuTypes alias __MODULE__.{ AUSplitter, @@ -114,8 +115,6 @@ defmodule Membrane.H264.Parser do default: true, description: """ Determines whether to drop the stream until the first key frame is received. - - Defaults to false. """ ], repeat_parameter_sets: [ @@ -528,7 +527,7 @@ defmodule Membrane.H264.Parser do {timestamps, %{state | au_timestamp_generator: timestamp_generator}} else - {hd(au).timestamps, state} + {Enum.find(au, &NALuTypes.is_vcl_nalu_type(&1.type)).timestamps, state} end end diff --git a/mix.exs b/mix.exs index 712ad00..1146f74 100644 --- a/mix.exs +++ b/mix.exs @@ -1,7 +1,7 @@ defmodule Membrane.H264.Plugin.Mixfile do use Mix.Project - @version "0.7.1" + @version "0.7.2" @github_url "https://github.com/membraneframework-labs/membrane_h264_plugin" def project do