diff options
author | Max Kellermann <max@duempel.org> | 2012-10-01 23:17:13 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2012-10-02 00:18:18 +0200 |
commit | 43d82520502bc0c76fbd11d6e949739235166021 (patch) | |
tree | 3157bfc6f63a293509d2f3ca581f11bb6af02267 /src | |
parent | 674b4ab64735dac3b8113e09db4cdb9072ddacb7 (diff) | |
download | mpd-43d82520502bc0c76fbd11d6e949739235166021.tar.gz mpd-43d82520502bc0c76fbd11d6e949739235166021.tar.xz mpd-43d82520502bc0c76fbd11d6e949739235166021.zip |
output/recorder, test/*: invoke encoder_read() after _open()
Make sure the file header gets written at the beginning, before
_write() gets called.
Diffstat (limited to 'src')
-rw-r--r-- | src/encoder_plugin.h | 4 | ||||
-rw-r--r-- | src/output/recorder_output_plugin.c | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/encoder_plugin.h b/src/encoder_plugin.h index 33a379115..cae0c8048 100644 --- a/src/encoder_plugin.h +++ b/src/encoder_plugin.h @@ -119,6 +119,10 @@ encoder_finish(struct encoder *encoder) * Before you free it, you must call encoder_close(). You may open * and close (reuse) one encoder any number of times. * + * After this function returns successfully and before the first + * encoder_write() call, you should invoke encoder_read() to obtain + * the file header. + * * @param encoder the encoder * @param audio_format the encoder's input audio format; the plugin * may modify the struct to adapt it to its abilities diff --git a/src/output/recorder_output_plugin.c b/src/output/recorder_output_plugin.c index ea299468b..ad2d961d3 100644 --- a/src/output/recorder_output_plugin.c +++ b/src/output/recorder_output_plugin.c @@ -192,6 +192,13 @@ recorder_output_open(struct audio_output *ao, return false; } + if (!recorder_output_encoder_to_file(recorder, error_r)) { + encoder_close(recorder->encoder); + close(recorder->fd); + unlink(recorder->path); + return false; + } + return true; } |