Skip to content

Commit 56a3372

Browse files
gBillalConnorRigby
authored andcommitted
Fix tests
1 parent 0040b4d commit 56a3372

File tree

5 files changed

+31
-42
lines changed

5 files changed

+31
-42
lines changed

lib/turbojpeg/filter.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ defmodule Turbojpeg.Filter do
1414
accepted_format: %RawVideo{pixel_format: pix_fmt} when pix_fmt in [:I420, :I422, :I444]
1515

1616
# TODO: implement JPEG stream format
17-
def_output_pad :output, accepted_format: RemoteStream
17+
def_output_pad :output, flow_control: :auto, accepted_format: RemoteStream
1818

1919
def_options quality: [
2020
spec: Turbojpeg.quality(),

lib/turbojpeg/sink.ex

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ defmodule Turbojpeg.Sink do
5656

5757
@impl true
5858
def handle_write(:input, %Buffer{payload: payload}, _ctx, state) do
59-
IO.inspect(payload)
6059
with {:ok, data} <-
6160
Turbojpeg.yuv_to_jpeg(payload, state.width, state.height, state.quality, state.format),
6261
:ok <- File.write(state.filename, data) do

test/test_helper.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ExUnit.start()
1+
ExUnit.start(capture_log: true)

test/turbojpeg/filter_test.exs

Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,45 @@
11
defmodule Turbojpeg.FilterTest do
22
use ExUnit.Case
3+
4+
import Membrane.ChildrenSpec
35
import Membrane.Testing.Assertions
4-
alias Membrane.Testing
56

6-
defmodule MockSource do
7-
use Membrane.Source
7+
alias Membrane.Testing
88

9-
def_output_pad :output, mode: :push, caps: :any
9+
@stream_format %Membrane.RawVideo{
10+
width: 64,
11+
height: 64,
12+
pixel_format: :I444,
13+
framerate: nil,
14+
aligned: true
15+
}
1016

11-
def_options yuv: [spec: binary], repeat: [spec: pos_integer]
17+
defp start_pipeline(jpeg, repeat) do
18+
{:ok, yuv} = Turbojpeg.jpeg_to_yuv(jpeg)
19+
data = List.duplicate(yuv, repeat)
1220

13-
@impl true
14-
def handle_prepared_to_playing(_ctx, state) do
15-
buffers = %Membrane.Buffer{payload: state.yuv} |> Bunch.Enum.repeated(state.repeat)
16-
send(self(), :end_of_stream)
17-
{{:ok, buffer: {:output, buffers}}, state}
18-
end
21+
structure = [
22+
child(:source, %Testing.Source{output: data, stream_format: @stream_format})
23+
|> child(:filter, %Turbojpeg.Filter{quality: 100})
24+
|> child(:sink, Testing.Sink)
25+
]
1926

20-
@impl true
21-
def handle_other(:end_of_stream, _ctx, state) do
22-
{{:ok, end_of_stream: :output}, state}
23-
end
27+
Testing.Pipeline.start_link_supervised!(structure: structure)
2428
end
2529

2630
test "integration test" do
27-
repeat = 5
2831
jpeg = File.read!("fixture/ff0000_i444.jpg")
29-
{:ok, yuv} = Turbojpeg.jpeg_to_yuv(jpeg)
30-
31-
children = [
32-
source: %MockSource{yuv: yuv, repeat: repeat},
33-
parser: %Membrane.Element.RawVideo.Parser{format: :I444, width: 64, height: 64},
34-
filter: %Turbojpeg.Filter{quality: 100},
35-
sink: Membrane.Testing.Sink
36-
]
37-
38-
assert {:ok, pipeline} =
39-
Testing.Pipeline.start_link(%Testing.Pipeline.Options{elements: children})
32+
repeat = 5
4033

41-
:ok = Testing.Pipeline.play(pipeline)
42-
assert_pipeline_playback_changed(pipeline, _, :playing)
34+
pid = start_pipeline(jpeg, repeat)
35+
assert_pipeline_play(pid)
4336

4437
1..repeat
4538
|> Enum.each(fn _ ->
46-
assert_sink_buffer(pipeline, :sink, buffer)
39+
assert_sink_buffer(pid, :sink, buffer)
4740
assert buffer.payload == jpeg
4841
end)
4942

50-
assert_end_of_stream(pipeline, :sink)
51-
refute_sink_buffer(pipeline, :sink, _, 0)
43+
assert_end_of_stream(pid, :sink)
5244
end
5345
end

test/turbojpeg_test.exs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ defmodule TurbojpegTest do
3636
rgb(),
3737
format()
3838
] do
39-
color = :io_lib.format('#~2.16.0B~2.16.0B~2.16.0B', [r, g, b])
39+
color = :io_lib.format(~c"#~2.16.0B~2.16.0B~2.16.0B", [r, g, b])
4040

4141
jpeg =
4242
%Mogrify.Image{}
@@ -47,10 +47,9 @@ defmodule TurbojpegTest do
4747
|> Mogrify.custom("stdout", "jpg:-")
4848
|> Mogrify.create(buffer: true)
4949

50-
jpeg = Shmex.new(jpeg.buffer)
51-
{:ok, yuv} = Turbojpeg.jpeg_to_yuv(jpeg)
50+
{:ok, yuv} = Turbojpeg.jpeg_to_yuv(jpeg.buffer)
5251

53-
{:ok, original_header} = Turbojpeg.get_jpeg_header(jpeg)
52+
{:ok, original_header} = Turbojpeg.get_jpeg_header(jpeg.buffer)
5453

5554
{:ok, new_jpeg} = Turbojpeg.yuv_to_jpeg(yuv, width, height, 100, original_header.format)
5655

@@ -77,10 +76,9 @@ defmodule TurbojpegTest do
7776
|> Mogrify.custom("stdout", "jpg:-")
7877
|> Mogrify.create(buffer: true)
7978

80-
jpeg = Shmex.new(jpeg.buffer)
81-
{:ok, yuv} = Turbojpeg.jpeg_to_yuv(jpeg)
79+
{:ok, yuv} = Turbojpeg.jpeg_to_yuv(jpeg.buffer)
8280
{:ok, new_jpeg} = Turbojpeg.yuv_to_jpeg(yuv, width, height, quality, format)
83-
{:ok, original_header} = Turbojpeg.get_jpeg_header(jpeg)
81+
{:ok, original_header} = Turbojpeg.get_jpeg_header(jpeg.buffer)
8482
{:ok, new_header} = Turbojpeg.get_jpeg_header(new_jpeg)
8583
assert original_header == new_header
8684
end

0 commit comments

Comments
 (0)