output/recorder, test/*: invoke encoder_read() after _open()
Make sure the file header gets written at the beginning, before _write() gets called.
This commit is contained in:
parent
674b4ab647
commit
43d8252050
@ -119,6 +119,10 @@ encoder_finish(struct encoder *encoder)
|
|||||||
* Before you free it, you must call encoder_close(). You may open
|
* Before you free it, you must call encoder_close(). You may open
|
||||||
* and close (reuse) one encoder any number of times.
|
* 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 encoder the encoder
|
||||||
* @param audio_format the encoder's input audio format; the plugin
|
* @param audio_format the encoder's input audio format; the plugin
|
||||||
* may modify the struct to adapt it to its abilities
|
* may modify the struct to adapt it to its abilities
|
||||||
|
@ -192,6 +192,13 @@ recorder_output_open(struct audio_output *ao,
|
|||||||
return false;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,6 +106,8 @@ int main(int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
encoder_to_stdout(encoder);
|
||||||
|
|
||||||
/* do it */
|
/* do it */
|
||||||
|
|
||||||
while ((nbytes = read(0, buffer, sizeof(buffer))) > 0) {
|
while ((nbytes = read(0, buffer, sizeof(buffer))) > 0) {
|
||||||
|
@ -67,6 +67,8 @@ main(G_GNUC_UNUSED int argc, G_GNUC_UNUSED char **argv)
|
|||||||
success = encoder_open(encoder, &audio_format, NULL);
|
success = encoder_open(encoder, &audio_format, NULL);
|
||||||
assert(success);
|
assert(success);
|
||||||
|
|
||||||
|
encoder_to_stdout(encoder);
|
||||||
|
|
||||||
/* write a block of data */
|
/* write a block of data */
|
||||||
|
|
||||||
success = encoder_write(encoder, zero, sizeof(zero), NULL);
|
success = encoder_write(encoder, zero, sizeof(zero), NULL);
|
||||||
|
Loading…
Reference in New Issue
Block a user