summaryrefslogtreecommitdiff
path: root/plugins/liboggedit/oggedit_vorbis.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/liboggedit/oggedit_vorbis.c')
-rw-r--r--plugins/liboggedit/oggedit_vorbis.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/plugins/liboggedit/oggedit_vorbis.c b/plugins/liboggedit/oggedit_vorbis.c
index 499c88b0..e1252411 100644
--- a/plugins/liboggedit/oggedit_vorbis.c
+++ b/plugins/liboggedit/oggedit_vorbis.c
@@ -30,14 +30,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
-#include <stdbool.h>
-#include <ogg/ogg.h>
-#if HAVE_SYS_SYSLIMITS_H
-#include <sys/syslimits.h>
-#endif
-#include "../../deadbeef.h"
#include "oggedit_internal.h"
-#include "oggedit.h"
#define VCMAGIC "\3vorbis"
#define CODEMAGIC "\5vorbis"
@@ -76,8 +69,12 @@ static ptrdiff_t check_vorbis_headers(DB_FILE *in, ogg_sync_state *oy, const off
if (!*vendor)
return OGGEDIT_CANNOT_PARSE_HEADERS;
+#ifdef HAVE_OGG_STREAM_FLUSH_FILL
if ((vc.bytes + codebooks->bytes) < MAXPAYLOAD * (pages-1))
return 4; // prevent in-place write if the packets are split over too many pages
+#else
+ return 4; // not safe to pad without ogg_stream_flush_fill
+#endif
return vc.bytes;
}
@@ -128,7 +125,7 @@ off_t oggedit_write_vorbis_metadata(DB_FILE *in, const char *fname, const off_t
const off_t file_size_k = in->vfs->getlength(in) / 1000;
const size_t stream_size_k = stream_size ? stream_size / 1000 : file_size_k;
if (file_size_k < 100 || padding < 0 || padding > file_size_k/10+stream_size_k+metadata_size) {
- res = open_temp_file (fname, tempname, &out);
+ res = open_temp_file(fname, tempname, &out);
if (res) {
goto cleanup;
}