/*
- Copyright (C) 2016-2017 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2016-2018 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
using std::cout;
using boost::shared_ptr;
+using namespace dcpomatic;
#define CANARY 9999
+/* XXX: these tests don't check the timestamping in AudioRingBuffers */
+
/** Basic tests fetching the same number of channels as went in */
BOOST_AUTO_TEST_CASE (audio_ring_buffers_test1)
{
/* Getting some data should give an underrun and write zeros */
float buffer[256 * 6];
buffer[240 * 6] = CANARY;
- BOOST_CHECK_EQUAL (rb.get (buffer, 6, 240), true);
+ BOOST_CHECK (!rb.get(buffer, 6, 240));
for (int i = 0; i < 240 * 6; ++i) {
BOOST_REQUIRE_EQUAL (buffer[i], 0);
}
rb.clear ();
BOOST_CHECK_EQUAL (rb.size(), 0);
buffer[240 * 6] = CANARY;
- BOOST_CHECK_EQUAL (rb.get (buffer, 6, 240), true);
+ BOOST_CHECK (rb.get(buffer, 6, 240) == boost::optional<DCPTime>());
for (int i = 0; i < 240 * 6; ++i) {
BOOST_REQUIRE_EQUAL (buffer[i], 0);
}
data->data(j)[i] = value++;
}
}
- rb.put (data);
+ rb.put (data, DCPTime(), 48000);
BOOST_CHECK_EQUAL (rb.size(), 91);
/* Get part of it out */
buffer[40 * 6] = CANARY;
- BOOST_CHECK_EQUAL (rb.get (buffer, 6, 40), false);
+ BOOST_CHECK (*rb.get(buffer, 6, 40) == DCPTime());
int check = 0;
for (int i = 0; i < 40 * 6; ++i) {
BOOST_REQUIRE_EQUAL (buffer[i], check++);
/* Get the rest */
buffer[51 * 6] = CANARY;
- BOOST_CHECK_EQUAL (rb.get (buffer, 6, 51), false);
+ BOOST_CHECK (*rb.get(buffer, 6, 51) == DCPTime::from_frames(40, 48000));
for (int i = 0; i < 51 * 6; ++i) {
BOOST_REQUIRE_EQUAL (buffer[i], check++);
}
/* Now there should be an underrun */
buffer[240 * 6] = CANARY;
- BOOST_CHECK_EQUAL (rb.get (buffer, 6, 240), true);
+ BOOST_CHECK (!rb.get(buffer, 6, 240));
BOOST_CHECK_EQUAL (buffer[240 * 6], CANARY);
}
data->data(j)[i] = value++;
}
}
- rb.put (data);
+ rb.put (data, DCPTime(), 48000);
BOOST_CHECK_EQUAL (rb.size(), 91);
/* Get part of it out */
float buffer[256 * 6];
buffer[40 * 6] = CANARY;
- BOOST_CHECK_EQUAL (rb.get (buffer, 6, 40), false);
+ BOOST_CHECK (*rb.get(buffer, 6, 40) == DCPTime());
int check = 0;
for (int i = 0; i < 40; ++i) {
for (int j = 0; j < 2; ++j) {
/* Get the rest */
buffer[51 * 6] = CANARY;
- BOOST_CHECK_EQUAL (rb.get (buffer, 6, 51), false);
+ BOOST_CHECK (*rb.get(buffer, 6, 51) == DCPTime::from_frames(40, 48000));
for (int i = 0; i < 51; ++i) {
for (int j = 0; j < 2; ++j) {
BOOST_REQUIRE_EQUAL (buffer[i * 6 + j], check++);
/* Now there should be an underrun */
buffer[240 * 6] = CANARY;
- BOOST_CHECK_EQUAL (rb.get (buffer, 6, 240), true);
+ BOOST_CHECK (!rb.get(buffer, 6, 240));
BOOST_CHECK_EQUAL (buffer[240 * 6], CANARY);
}
data->data(j)[i] = value++;
}
}
- rb.put (data);
+ rb.put (data, DCPTime(), 48000);
BOOST_CHECK_EQUAL (rb.size(), 91);
/* Get part of it out */
float buffer[256 * 6];
buffer[40 * 2] = CANARY;
- BOOST_CHECK_EQUAL (rb.get (buffer, 2, 40), false);
+ BOOST_CHECK (*rb.get(buffer, 2, 40) == DCPTime());
int check = 0;
for (int i = 0; i < 40; ++i) {
for (int j = 0; j < 2; ++j) {
/* Get the rest */
buffer[51 * 2] = CANARY;
- BOOST_CHECK_EQUAL (rb.get (buffer, 2, 51), false);
+ BOOST_CHECK (*rb.get(buffer, 2, 51) == DCPTime::from_frames(40, 48000));
for (int i = 0; i < 51; ++i) {
for (int j = 0; j < 2; ++j) {
BOOST_REQUIRE_EQUAL (buffer[i * 2 + j], check++);
/* Now there should be an underrun */
buffer[240 * 2] = CANARY;
- BOOST_CHECK_EQUAL (rb.get (buffer, 2, 240), true);
+ BOOST_CHECK (!rb.get(buffer, 2, 240));
BOOST_CHECK_EQUAL (buffer[240 * 2], CANARY);
}