diff options
Diffstat (limited to '')
-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; } |