Commit 1caa41a6 authored by Max Kellermann's avatar Max Kellermann

test/run_encoder: use EncoderToOutputStream()

parent bf596352
...@@ -21,29 +21,19 @@ ...@@ -21,29 +21,19 @@
#include "encoder/EncoderList.hxx" #include "encoder/EncoderList.hxx"
#include "encoder/EncoderPlugin.hxx" #include "encoder/EncoderPlugin.hxx"
#include "encoder/EncoderInterface.hxx" #include "encoder/EncoderInterface.hxx"
#include "encoder/ToOutputStream.hxx"
#include "AudioFormat.hxx" #include "AudioFormat.hxx"
#include "AudioParser.hxx" #include "AudioParser.hxx"
#include "config/ConfigData.hxx" #include "config/ConfigData.hxx"
#include "fs/io/StdioOutputStream.hxx"
#include "util/Error.hxx" #include "util/Error.hxx"
#include "Log.hxx" #include "Log.hxx"
#include "stdbin.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <stddef.h> #include <stddef.h>
#include <unistd.h> #include <unistd.h>
static void
encoder_to_stdout(Encoder &encoder)
{
size_t length;
static char buffer[32768];
while ((length = encoder_read(&encoder, buffer, sizeof(buffer))) > 0) {
gcc_unused ssize_t ignored = write(1, buffer, length);
}
}
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
const char *encoder_name; const char *encoder_name;
...@@ -95,7 +85,12 @@ int main(int argc, char **argv) ...@@ -95,7 +85,12 @@ int main(int argc, char **argv)
return EXIT_FAILURE; return EXIT_FAILURE;
} }
encoder_to_stdout(*encoder); StdioOutputStream os(stdout);
if (!EncoderToOutputStream(os, *encoder, error)) {
LogError(error);
return EXIT_FAILURE;
}
/* do it */ /* do it */
...@@ -106,7 +101,10 @@ int main(int argc, char **argv) ...@@ -106,7 +101,10 @@ int main(int argc, char **argv)
return EXIT_FAILURE; return EXIT_FAILURE;
} }
encoder_to_stdout(*encoder); if (!EncoderToOutputStream(os, *encoder, error)) {
LogError(error);
return EXIT_FAILURE;
}
} }
if (!encoder_end(encoder, error)) { if (!encoder_end(encoder, error)) {
...@@ -114,7 +112,10 @@ int main(int argc, char **argv) ...@@ -114,7 +112,10 @@ int main(int argc, char **argv)
return EXIT_FAILURE; return EXIT_FAILURE;
} }
encoder_to_stdout(*encoder); if (!EncoderToOutputStream(os, *encoder, error)) {
LogError(error);
return EXIT_FAILURE;
}
encoder->Close(); encoder->Close();
encoder->Dispose(); encoder->Dispose();
......
...@@ -21,29 +21,20 @@ ...@@ -21,29 +21,20 @@
#include "encoder/EncoderList.hxx" #include "encoder/EncoderList.hxx"
#include "encoder/EncoderPlugin.hxx" #include "encoder/EncoderPlugin.hxx"
#include "encoder/EncoderInterface.hxx" #include "encoder/EncoderInterface.hxx"
#include "encoder/ToOutputStream.hxx"
#include "AudioFormat.hxx" #include "AudioFormat.hxx"
#include "config/ConfigData.hxx" #include "config/ConfigData.hxx"
#include "stdbin.h" #include "fs/io/StdioOutputStream.hxx"
#include "tag/Tag.hxx" #include "tag/Tag.hxx"
#include "tag/TagBuilder.hxx" #include "tag/TagBuilder.hxx"
#include "util/Error.hxx" #include "util/Error.hxx"
#include "Log.hxx"
#include <stddef.h> #include <stddef.h>
#include <unistd.h> #include <unistd.h>
static uint8_t zero[256]; static uint8_t zero[256];
static void
encoder_to_stdout(Encoder &encoder)
{
size_t length;
static char buffer[32768];
while ((length = encoder_read(&encoder, buffer, sizeof(buffer))) > 0) {
gcc_unused ssize_t ignored = write(1, buffer, length);
}
}
int int
main(gcc_unused int argc, gcc_unused char **argv) main(gcc_unused int argc, gcc_unused char **argv)
{ {
...@@ -66,21 +57,33 @@ main(gcc_unused int argc, gcc_unused char **argv) ...@@ -66,21 +57,33 @@ main(gcc_unused int argc, gcc_unused char **argv)
success = encoder->Open(audio_format, IgnoreError()); success = encoder->Open(audio_format, IgnoreError());
assert(success); assert(success);
encoder_to_stdout(*encoder); StdioOutputStream os(stdout);
Error error;
if (!EncoderToOutputStream(os, *encoder, error)) {
LogError(error);
return EXIT_FAILURE;
}
/* write a block of data */ /* write a block of data */
success = encoder_write(encoder, zero, sizeof(zero), IgnoreError()); success = encoder_write(encoder, zero, sizeof(zero), IgnoreError());
assert(success); assert(success);
encoder_to_stdout(*encoder); if (!EncoderToOutputStream(os, *encoder, error)) {
LogError(error);
return EXIT_FAILURE;
}
/* write a tag */ /* write a tag */
success = encoder_pre_tag(encoder, IgnoreError()); success = encoder_pre_tag(encoder, IgnoreError());
assert(success); assert(success);
encoder_to_stdout(*encoder); if (!EncoderToOutputStream(os, *encoder, error)) {
LogError(error);
return EXIT_FAILURE;
}
Tag tag; Tag tag;
...@@ -94,7 +97,10 @@ main(gcc_unused int argc, gcc_unused char **argv) ...@@ -94,7 +97,10 @@ main(gcc_unused int argc, gcc_unused char **argv)
success = encoder_tag(encoder, tag, IgnoreError()); success = encoder_tag(encoder, tag, IgnoreError());
assert(success); assert(success);
encoder_to_stdout(*encoder); if (!EncoderToOutputStream(os, *encoder, error)) {
LogError(error);
return EXIT_FAILURE;
}
/* write another block of data */ /* write another block of data */
...@@ -106,7 +112,10 @@ main(gcc_unused int argc, gcc_unused char **argv) ...@@ -106,7 +112,10 @@ main(gcc_unused int argc, gcc_unused char **argv)
success = encoder_end(encoder, IgnoreError()); success = encoder_end(encoder, IgnoreError());
assert(success); assert(success);
encoder_to_stdout(*encoder); if (!EncoderToOutputStream(os, *encoder, error)) {
LogError(error);
return EXIT_FAILURE;
}
encoder->Close(); encoder->Close();
encoder->Dispose(); encoder->Dispose();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment