Sha256: c9c4df449ea07f2e01231b4117d32570d28628f7dc5818354a0a3db28801e84c

Contents?: true

Size: 1.74 KB

Versions: 8

Compression:

Stored size: 1.74 KB

Contents

require 'spec_helper'

describe FormatParser::MP3Parser do
  it 'decodes and estimates duration for a VBR MP3' do
    fpath = fixtures_dir + '/MP3/atc_fixture_vbr.mp3'
    parsed = subject.call(File.open(fpath, 'rb'))

    expect(parsed).not_to be_nil

    expect(parsed.nature).to eq(:audio)
    expect(parsed.format).to eq(:mp3)
    expect(parsed.num_audio_channels).to eq(2)
    expect(parsed.audio_sample_rate_hz).to eq(44100)
    expect(parsed.intrinsics).not_to be_nil
    expect(parsed.media_duration_seconds).to be_within(0.1).of(0.836)
  end

  it 'decodes and estimates duration for a CBR MP3' do
    fpath = fixtures_dir + '/MP3/atc_fixture_cbr.mp3'
    parsed = subject.call(File.open(fpath, 'rb'))

    expect(parsed).not_to be_nil

    expect(parsed.nature).to eq(:audio)
    expect(parsed.format).to eq(:mp3)
    expect(parsed.num_audio_channels).to eq(2)
    expect(parsed.audio_sample_rate_hz).to eq(44100)
    expect(parsed.intrinsics).not_to be_nil
    expect(parsed.media_duration_seconds).to be_within(0.1).of(0.81)
  end

  it 'parses the Cassy MP3' do
    fpath = fixtures_dir + '/MP3/Cassy.mp3'
    parsed = subject.call(File.open(fpath, 'rb'))

    expect(parsed).not_to be_nil

    expect(parsed.nature).to eq(:audio)
    expect(parsed.format).to eq(:mp3)
    expect(parsed.num_audio_channels).to eq(2)
    expect(parsed.audio_sample_rate_hz).to eq(44100)
    expect(parsed.intrinsics).not_to be_nil
    expect(parsed.media_duration_seconds).to be_within(0.1).of(1102.46)

    expect(parsed.intrinsics).not_to be_nil
  end

  it 'avoids returning a result when the parsed duration is infinite' do
    fpath = fixtures_dir + '/JPEG/too_many_APP1_markers_surrogate.jpg'
    parsed = subject.call(File.open(fpath, 'rb'))

    expect(parsed).to be_nil
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
format_parser-0.12.4 spec/parsers/mp3_parser_spec.rb
format_parser-0.12.2 spec/parsers/mp3_parser_spec.rb
format_parser-0.12.1 spec/parsers/mp3_parser_spec.rb
format_parser-0.12.0 spec/parsers/mp3_parser_spec.rb
format_parser-0.11.0 spec/parsers/mp3_parser_spec.rb
format_parser-0.10.0 spec/parsers/mp3_parser_spec.rb
format_parser-0.9.4 spec/parsers/mp3_parser_spec.rb
format_parser-0.9.3 spec/parsers/mp3_parser_spec.rb