aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/encoder_plugin.h4
-rw-r--r--src/output/recorder_output_plugin.c7
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;
}