diff options
author | Tuomas Virtanen <katajakasa@gmail.com> | 2018-03-26 01:24:49 +0300 |
---|---|---|
committer | Tuomas Virtanen <katajakasa@gmail.com> | 2018-03-26 01:24:49 +0300 |
commit | be594be5832e05d51cced3921dcdca05765f8460 (patch) | |
tree | 24575a9703e9756bc5290771cf855e7dd5fa4722 /include | |
parent | eace70f1c1c7ba7339713666a76213acf1125202 (diff) |
Toy around more with ass/ssa subtitles
Diffstat (limited to 'include')
5 files changed, 26 insertions, 2 deletions
diff --git a/include/kitchensink/internal/kitdecoder.h b/include/kitchensink/internal/kitdecoder.h index 5d494e8..6ec209e 100644 --- a/include/kitchensink/internal/kitdecoder.h +++ b/include/kitchensink/internal/kitdecoder.h @@ -46,6 +46,7 @@ KIT_LOCAL AVPacket* Kit_ReadDecoderInput(Kit_Decoder *dec); KIT_LOCAL int Kit_WriteDecoderOutput(Kit_Decoder *dec, void *packet);
KIT_LOCAL void* Kit_PeekDecoderOutput(Kit_Decoder *dec);
KIT_LOCAL void Kit_AdvanceDecoderOutput(Kit_Decoder *dec);
+KIT_LOCAL void Kit_ForEachDecoderOutput(Kit_Decoder *dec, Kit_ForEachItemCallback foreach_cb, void *userdata);
KIT_LOCAL void Kit_ClearDecoderBuffers(Kit_Decoder *dec);
KIT_LOCAL int Kit_RunDecoder(Kit_Decoder *dec);
KIT_LOCAL void Kit_ClearDecoderInput(Kit_Decoder *dec);
diff --git a/include/kitchensink/internal/subtitle/kitsubtitlepacket.h b/include/kitchensink/internal/subtitle/kitsubtitlepacket.h new file mode 100644 index 0000000..989cde7 --- /dev/null +++ b/include/kitchensink/internal/subtitle/kitsubtitlepacket.h @@ -0,0 +1,18 @@ +#ifndef KITSUBTITLEPACKET_H
+#define KITSUBTITLEPACKET_H
+
+#include <SDL2/SDL_Surface.h>
+
+typedef struct Kit_SubtitlePacket {
+ double pts_start;
+ double pts_end;
+ int x;
+ int y;
+ SDL_Surface *surface;
+} Kit_SubtitlePacket;
+
+Kit_SubtitlePacket* Kit_CreateSubtitlePacket(
+ double pts_start, double pts_end, int pos_x, int pos_y, SDL_Surface *surface);
+void Kit_FreeSubtitlePacket(Kit_SubtitlePacket *packet);
+
+#endif // KITSUBTITLEPACKET_H
diff --git a/include/kitchensink/internal/subtitle/renderers/kitsubrenderer.h b/include/kitchensink/internal/subtitle/renderers/kitsubrenderer.h index b24161a..e237546 100644 --- a/include/kitchensink/internal/subtitle/renderers/kitsubrenderer.h +++ b/include/kitchensink/internal/subtitle/renderers/kitsubrenderer.h @@ -5,8 +5,9 @@ #include "kitchensink/kitformats.h"
typedef struct Kit_SubtitleRenderer Kit_SubtitleRenderer;
+//typedef struct Kit_SubtitlePacket Kit_SubtitlePacket;
-typedef int (*ren_render_cb)(Kit_SubtitleRenderer *ren, void *src, double start_pts, void *surface);
+typedef Kit_SubtitlePacket* (*ren_render_cb)(Kit_SubtitleRenderer *ren, void *src, double start_pts, double end_pts);
typedef void (*ren_close_cb)(Kit_SubtitleRenderer *ren);
struct Kit_SubtitleRenderer {
@@ -16,7 +17,7 @@ struct Kit_SubtitleRenderer { };
KIT_LOCAL Kit_SubtitleRenderer* Kit_CreateSubtitleRenderer();
-KIT_LOCAL int Kit_RunSubtitleRenderer(Kit_SubtitleRenderer *ren, void *src, double start_pts, void *surface);
+KIT_LOCAL Kit_SubtitlePacket* Kit_RunSubtitleRenderer(Kit_SubtitleRenderer *ren, void *src, double start_pts, double end_pts);
KIT_LOCAL void Kit_CloseSubtitleRenderer(Kit_SubtitleRenderer *ren);
#endif // KITSUBRENDERER_H
diff --git a/include/kitchensink/internal/utils/kitbuffer.h b/include/kitchensink/internal/utils/kitbuffer.h index 4d0f8cc..67d93c3 100644 --- a/include/kitchensink/internal/utils/kitbuffer.h +++ b/include/kitchensink/internal/utils/kitbuffer.h @@ -6,6 +6,7 @@ typedef struct Kit_Buffer Kit_Buffer; typedef void (*Kit_BufferFreeCallback)(void*); +typedef void (*Kit_ForEachItemCallback)(void*, void *userdata); struct Kit_Buffer { unsigned int read_p; @@ -23,6 +24,7 @@ KIT_LOCAL void* Kit_ReadBuffer(Kit_Buffer *buffer); KIT_LOCAL void* Kit_PeekBuffer(const Kit_Buffer *buffer); KIT_LOCAL void Kit_AdvanceBuffer(Kit_Buffer *buffer); KIT_LOCAL int Kit_WriteBuffer(Kit_Buffer *buffer, void *ptr); +KIT_LOCAL void Kit_ForEachItemInBuffer(const Kit_Buffer *buffer, Kit_ForEachItemCallback cb, void *userdata); KIT_LOCAL int Kit_IsBufferFull(const Kit_Buffer *buffer); #endif // KITBUFFER_H diff --git a/include/kitchensink/internal/utils/kitlog.h b/include/kitchensink/internal/utils/kitlog.h index 1a56e53..56ff493 100644 --- a/include/kitchensink/internal/utils/kitlog.h +++ b/include/kitchensink/internal/utils/kitlog.h @@ -3,9 +3,11 @@ #ifdef NDEBUG
#define LOG(...)
+ #define LOGFLUSH()
#else
#include <stdio.h>
#define LOG(...) fprintf(stderr, __VA_ARGS__)
+ #define LOGFLUSH() fflush(stderr)
#endif
#endif // KITLOG_H
|