Skip to content

Commit

Permalink
Set pts and dts to 0 by default
Browse files Browse the repository at this point in the history
  • Loading branch information
mickel8 committed Jan 20, 2024
1 parent 0bf91fd commit 052b5ee
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
8 changes: 6 additions & 2 deletions lib/decoder.ex
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,12 @@ defmodule Xav.Decoder do
Video frames are always in the RGB format.
Audio samples are always interleaved.
"""
@spec decode(t(), binary(), integer(), integer()) :: {:ok, Xav.Frame.t()} | {:error, atom()}
def decode(decoder, data, pts, dts) do
@spec decode(t(), binary(), pts: integer(), dts: integer()) ::
{:ok, Xav.Frame.t()} | {:error, atom()}
def decode(decoder, data, opts \\ []) do
pts = opts[:pts] || 0
dts = opts[:dts] || 0

case Xav.NIF.decode(decoder, data, pts, dts) do
{:ok, {data, format, width, height, pts}} ->
{:ok, Xav.Frame.new(data, format, width, height, pts)}
Expand Down
4 changes: 2 additions & 2 deletions test/decoder_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -188,14 +188,14 @@ defmodule Xav.DecoderTest do
{:ok, decoder} = Xav.Decoder.new(:opus)

assert {:ok, %Xav.Frame{samples: 960, pts: 0, format: :flt}} =
Xav.Decoder.decode(decoder, @opus_frame, 0, 0)
Xav.Decoder.decode(decoder, @opus_frame)
end

test "video" do
{:ok, decoder} = Xav.Decoder.new(:vp8)

assert {:ok, %Xav.Frame{width: 640, height: 480, pts: 0, format: :rgb}} =
Xav.Decoder.decode(decoder, @vp8_keyframe, 0, 0)
Xav.Decoder.decode(decoder, @vp8_keyframe)
end
end
end

0 comments on commit 052b5ee

Please sign in to comment.