Skip to content

Commit 8965ae2

Browse files
committed
Apply reviewers suggestions - use Qex
1 parent ca855f3 commit 8965ae2

File tree

2 files changed

+20
-18
lines changed

2 files changed

+20
-18
lines changed

lib/ex_hls/demuxing_engine/mpeg_ts.ex

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ defmodule ExHLS.DemuxingEngine.MPEGTS do
3838

3939
packets_map =
4040
Enum.reduce(new_packets, demuxing_engine.packets_map, fn new_packet, packets_map ->
41-
Map.update(packets_map, new_packet.pid, [new_packet], &(&1 ++ [new_packet]))
41+
Map.update(packets_map, new_packet.pid, Qex.new([new_packet]), &Qex.push(&1, new_packet))
4242
end)
4343

4444
%{demuxing_engine | demuxer: demuxer, packets_map: packets_map}
@@ -82,12 +82,10 @@ defmodule ExHLS.DemuxingEngine.MPEGTS do
8282
@impl true
8383
def pop_chunk(%__MODULE__{} = demuxing_engine, track_id) do
8484
with {[packet], demuxing_engine} <- take_packets(demuxing_engine, track_id) do
85-
{maybe_tden_tag, demuxing_engine} = maybe_read_tden_tag(demuxing_engine, packet.payload.pts)
86-
tden_tag = maybe_tden_tag || demuxing_engine.last_tden_tag
85+
demuxing_engine = maybe_read_tden_tag(demuxing_engine, packet.payload.pts)
8786

8887
{demuxing_engine, packet} =
89-
%{demuxing_engine | last_tden_tag: tden_tag}
90-
|> handle_possible_timestamps_rollover(track_id, packet)
88+
demuxing_engine |> handle_possible_timestamps_rollover(track_id, packet)
9189

9290
chunk = %ExHLS.Chunk{
9391
payload: packet.payload.data,
@@ -97,7 +95,7 @@ defmodule ExHLS.DemuxingEngine.MPEGTS do
9795
metadata: %{
9896
discontinuity: packet.payload.discontinuity,
9997
is_aligned: packet.payload.is_aligned,
100-
tden_tag: tden_tag
98+
tden_tag: demuxing_engine.last_tden_tag
10199
}
102100
}
103101

@@ -109,13 +107,12 @@ defmodule ExHLS.DemuxingEngine.MPEGTS do
109107
end
110108

111109
defp take_packets(demuxing_engine, track_id) do
112-
case Map.get(demuxing_engine.packets_map, track_id) do
113-
[packet | rest] ->
114-
demuxing_engine = put_in(demuxing_engine.packets_map[track_id], rest)
115-
{[packet], demuxing_engine}
116-
117-
_other ->
118-
{[], demuxing_engine}
110+
with {:ok, packets} <- Map.fetch(demuxing_engine.packets_map, track_id),
111+
{{:value, packet}, rest} <- Qex.pop(packets) do
112+
demuxing_engine = put_in(demuxing_engine.packets_map[track_id], rest)
113+
{[packet], demuxing_engine}
114+
else
115+
_other -> {[], demuxing_engine}
119116
end
120117
end
121118

@@ -128,11 +125,12 @@ defmodule ExHLS.DemuxingEngine.MPEGTS do
128125
end),
129126
no_id3_data: {[id3], demuxing_engine} <- take_packets(demuxing_engine, id3_track_id),
130127
id3_not_in_timerange: true <- id3.payload.pts <= packet_pts do
131-
{parse_tden_tag(id3.payload.data), demuxing_engine}
128+
tden_tag = parse_tden_tag(id3.payload.data) || demuxing_engine.last_tden_tag
129+
%{demuxing_engine | last_tden_tag: tden_tag}
132130
else
133-
no_id3_stream: nil -> {nil, demuxing_engine}
134-
no_id3_data: {[], updated_demuxing_engine} -> {nil, updated_demuxing_engine}
135-
id3_not_in_timerange: false -> {nil, demuxing_engine}
131+
no_id3_stream: nil -> demuxing_engine
132+
no_id3_data: {[], updated_demuxing_engine} -> updated_demuxing_engine
133+
id3_not_in_timerange: false -> demuxing_engine
136134
end
137135
end
138136

test/demuxing_engine_mpegts_test.exs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ defmodule ExHLS.DemuxingEngine.MPEGTS.Test do
2424
end)
2525

2626
demuxing_engine = ExHLS.DemuxingEngine.MPEGTS.new(0)
27-
demuxing_engine = %{demuxing_engine | packets_map: %{1 => packets, 2 => packets}}
27+
28+
demuxing_engine = %{
29+
demuxing_engine
30+
| packets_map: %{1 => Qex.new(packets), 2 => Qex.new(packets)}
31+
}
2832

2933
[1, 2]
3034
|> Enum.reduce(demuxing_engine, fn track_id, demuxing_engine ->

0 commit comments

Comments
 (0)