diff options
Diffstat (limited to 'plugins/liboggedit')
-rw-r--r-- | plugins/liboggedit/Makefile.am | 4 | ||||
-rw-r--r-- | plugins/liboggedit/oggedit_art.c | 2 | ||||
-rw-r--r-- | plugins/liboggedit/oggedit_flac.c | 14 | ||||
-rw-r--r-- | plugins/liboggedit/oggedit_internal.c | 11 | ||||
-rw-r--r-- | plugins/liboggedit/oggedit_opus.c | 9 | ||||
-rw-r--r-- | plugins/liboggedit/oggedit_utils.c | 10 | ||||
-rw-r--r-- | plugins/liboggedit/oggedit_vorbis.c | 12 |
7 files changed, 41 insertions, 21 deletions
diff --git a/plugins/liboggedit/Makefile.am b/plugins/liboggedit/Makefile.am index 2134718f..651f9f44 100644 --- a/plugins/liboggedit/Makefile.am +++ b/plugins/liboggedit/Makefile.am @@ -1,6 +1,6 @@ -if HAVE_VORBIS +if HAVE_OGG noinst_LIBRARIES = liboggedit.a liboggedit_a_SOURCES = oggedit_internal.h oggedit.h \ oggedit_internal.c oggedit_utils.c oggedit_art.c oggedit_opus.c oggedit_vorbis.c oggedit_flac.c -AM_CFLAGS = $(VORBIS_CFLAGS) -fPIC -std=c99 +AM_CFLAGS = $(OGG_CFLAGS) -fPIC -std=c99 endif diff --git a/plugins/liboggedit/oggedit_art.c b/plugins/liboggedit/oggedit_art.c index 44e1c015..83e1c193 100644 --- a/plugins/liboggedit/oggedit_art.c +++ b/plugins/liboggedit/oggedit_art.c @@ -31,7 +31,7 @@ #include <string.h> #include <stdbool.h> #include <ogg/ogg.h> -#include <deadbeef/deadbeef.h> +#include "../../deadbeef.h" #include "oggedit_internal.h" #include "oggedit.h" diff --git a/plugins/liboggedit/oggedit_flac.c b/plugins/liboggedit/oggedit_flac.c index 6eec6ac9..fd3a71a6 100644 --- a/plugins/liboggedit/oggedit_flac.c +++ b/plugins/liboggedit/oggedit_flac.c @@ -32,7 +32,10 @@ #include <unistd.h> #include <stdbool.h> #include <ogg/ogg.h> -#include <deadbeef/deadbeef.h> +#if HAVE_SYS_SYSLIMITS_H +#include <sys/syslimits.h> +#endif +#include "../../deadbeef.h" #include "oggedit_internal.h" #include "oggedit.h" @@ -86,7 +89,7 @@ static ogg_packet **metadata_block_packets(DB_FILE *in, ogg_sync_state *oy, cons if (!headers) *res = OGGEDIT_ALLOCATION_FAILURE; - else if (!packets || headers[0]->packet[0] & 0x3F != VCTYPE) + else if (!packets || (headers[0]->packet[0] & 0x3F) != VCTYPE) *res = OGGEDIT_CANNOT_PARSE_HEADERS; else *res = pages; @@ -158,9 +161,12 @@ off_t oggedit_write_flac_metadata(DB_FILE *in, const char *fname, const off_t of const off_t stream_size_k = in->vfs->getlength(in) / 1000; // use file size for now const size_t metadata_size = 4 + vc_size(vendor, num_tags, tags); ptrdiff_t padding = headers[0]->bytes - metadata_size; - if (stream_size_k < 1000 || padding < 0 || headers[1] && padding > 0 || padding > stream_size_k+metadata_size) - if (res = open_temp_file(fname, tempname, &out)) + if (stream_size_k < 1000 || padding < 0 || (headers[1] && padding > 0) || padding > stream_size_k+metadata_size) { + res = open_temp_file(fname, tempname, &out); + if (res) { goto cleanup; + } + } /* Re-pad if writing the whole file */ if (*tempname) { diff --git a/plugins/liboggedit/oggedit_internal.c b/plugins/liboggedit/oggedit_internal.c index a95fa1f8..f12e8d6d 100644 --- a/plugins/liboggedit/oggedit_internal.c +++ b/plugins/liboggedit/oggedit_internal.c @@ -36,7 +36,10 @@ #include <errno.h> #include <sys/stat.h> #include <ogg/ogg.h> -#include <deadbeef/deadbeef.h> +#if HAVE_SYS_SYSLIMITS_H +#include <sys/syslimits.h> +#endif +#include "../../deadbeef.h" #include "oggedit.h" #include "oggedit_internal.h" @@ -276,7 +279,7 @@ int copy_up_to_header(DB_FILE *in, FILE *out, ogg_sync_state *oy, ogg_page *og, long flush_stream(FILE *out, ogg_stream_state *os) { ogg_page og; - while (ogg_stream_flush_fill(os, &og, MAXPAYLOAD)) + while (ogg_stream_flush(os, &og)) if (!write_page(out, &og)) return OGGEDIT_WRITE_ERROR; const long pageno = ogg_stream_check(os) ? OGGEDIT_FLUSH_FAILED : ogg_page_pageno(&og); @@ -433,8 +436,10 @@ ogg_packet *fill_vc_packet(const char *magic, const size_t magic_length, const c if (op) { memset(op, '\0', sizeof(*op)); op->bytes = oggpack_bytes(&opb); - if (op->packet = malloc(op->bytes)) + op->packet = malloc(op->bytes); + if (op->packet) { memcpy(op->packet, oggpack_get_buffer(&opb), op->bytes); + } } oggpack_writeclear(&opb); diff --git a/plugins/liboggedit/oggedit_opus.c b/plugins/liboggedit/oggedit_opus.c index cb52480d..5d167094 100644 --- a/plugins/liboggedit/oggedit_opus.c +++ b/plugins/liboggedit/oggedit_opus.c @@ -33,7 +33,7 @@ #include <stdbool.h> #include <limits.h> #include <ogg/ogg.h> -#include <deadbeef/deadbeef.h> +#include "../../deadbeef.h" #include "oggedit_internal.h" #include "oggedit.h" @@ -141,9 +141,12 @@ off_t oggedit_write_opus_metadata(DB_FILE *in, const char *fname, const off_t of ptrdiff_t padding = tags_packet_size - metadata_size; 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) - if (res = open_temp_file(fname, tempname, &out)) + if (file_size_k < 100 || padding < 0 || padding > file_size_k/10+stream_size_k+metadata_size) { + res = open_temp_file(fname, tempname, &out); + if (res) { goto cleanup; + } + } /* Re-pad if writing the whole file */ if (*tempname) diff --git a/plugins/liboggedit/oggedit_utils.c b/plugins/liboggedit/oggedit_utils.c index 03e753a8..2d40e275 100644 --- a/plugins/liboggedit/oggedit_utils.c +++ b/plugins/liboggedit/oggedit_utils.c @@ -41,15 +41,15 @@ uint8_t *oggedit_vorbis_channel_map(const int channel_count) return NULL; switch(channel_count) { case 3: - return memcpy(map, &(uint8_t[]){0,2,1}, map_size); + return memcpy(map, &((uint8_t[]){0,2,1}), map_size); case 5: - return memcpy(map, &(uint8_t[]){0,2,1,3,4}, map_size); + return memcpy(map, &((uint8_t[]){0,2,1,3,4}), map_size); case 6: - return memcpy(map, &(uint8_t[]){0,2,1,4,5,3}, map_size); + return memcpy(map, &((uint8_t[]){0,2,1,4,5,3}), map_size); case 7: - return memcpy(map, &(uint8_t[]){0,2,1,4,5,6,3}, map_size); + return memcpy(map, &((uint8_t[]){0,2,1,4,5,6,3}), map_size); case 8: - return memcpy(map, &(uint8_t[]){0,2,1,6,7,4,5,3}, map_size); + return memcpy(map, &((uint8_t[]){0,2,1,6,7,4,5,3}), map_size); default: free(map); return NULL; diff --git a/plugins/liboggedit/oggedit_vorbis.c b/plugins/liboggedit/oggedit_vorbis.c index 2ff3fc09..499c88b0 100644 --- a/plugins/liboggedit/oggedit_vorbis.c +++ b/plugins/liboggedit/oggedit_vorbis.c @@ -32,7 +32,10 @@ #include <unistd.h> #include <stdbool.h> #include <ogg/ogg.h> -#include <deadbeef/deadbeef.h> +#if HAVE_SYS_SYSLIMITS_H +#include <sys/syslimits.h> +#endif +#include "../../deadbeef.h" #include "oggedit_internal.h" #include "oggedit.h" @@ -124,9 +127,12 @@ off_t oggedit_write_vorbis_metadata(DB_FILE *in, const char *fname, const off_t ptrdiff_t padding = tags_packet_size - metadata_size; 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) - if (res = open_temp_file(fname, tempname, &out)) + if (file_size_k < 100 || padding < 0 || padding > file_size_k/10+stream_size_k+metadata_size) { + res = open_temp_file (fname, tempname, &out); + if (res) { goto cleanup; + } + } /* Re-pad if writing the whole file */ if (*tempname) |