[FFmpeg-devel] [PATCH v2] lavc/libzvbi: remove deprecated API usage
Josh de Kock
josh at itanimul.li
Sun Feb 12 16:35:26 EET 2017
Hi Carl,
I'm not sure, 0.2.28 doesn't compile on my system. It has been tested with the
latest version 0.2.38.
Does the updated patch look better?
Josh
Signed-off-by: Josh de Kock <josh at itanimul.li>
---
libavcodec/libzvbi-teletextdec.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/libavcodec/libzvbi-teletextdec.c b/libavcodec/libzvbi-teletextdec.c
index d1f0a9f..290e89f 100644
--- a/libavcodec/libzvbi-teletextdec.c
+++ b/libavcodec/libzvbi-teletextdec.c
@@ -41,6 +41,7 @@
#define BITMAP_CHAR_WIDTH 12
#define BITMAP_CHAR_HEIGHT 10
#define MAX_SLICES 64
+#define VBI_VERSION (VBI_VERSION_MAJOR * 10000 + VBI_VERSION_MINOR * 100 + VBI_VERSION_MICRO)
typedef struct TeletextPage
{
@@ -395,7 +396,11 @@ static int teletext_decode_frame(AVCodecContext *avctx, void *data, int *data_si
if (!ctx->vbi) {
if (!(ctx->vbi = vbi_decoder_new()))
return AVERROR(ENOMEM);
+#if VBI_VERSION >= 234 // 0.2.34
+ if (!vbi_event_handler_register(ctx->vbi, VBI_EVENT_TTX_PAGE, handler, ctx)) {
+#else
if (!vbi_event_handler_add(ctx->vbi, VBI_EVENT_TTX_PAGE, handler, ctx)) {
+#endif
vbi_decoder_delete(ctx->vbi);
ctx->vbi = NULL;
return AVERROR(ENOMEM);
@@ -524,8 +529,14 @@ static int teletext_close_decoder(AVCodecContext *avctx)
subtitle_rect_free(&ctx->pages[--ctx->nb_pages].sub_rect);
av_freep(&ctx->pages);
- vbi_decoder_delete(ctx->vbi);
- ctx->vbi = NULL;
+ if (ctx->vbi) {
+#if VBI_VERSION >= 234 // 0.2.34
+ vbi_event_handler_unregister(ctx->vbi, handler, ctx);
+#endif
+ vbi_decoder_delete(ctx->vbi);
+ ctx->vbi = NULL;
+ }
+
ctx->pts = AV_NOPTS_VALUE;
if (!(avctx->flags2 & AV_CODEC_FLAG2_RO_FLUSH_NOOP))
ctx->readorder = 0;
--
2.10.1 (Apple Git-78)
More information about the ffmpeg-devel
mailing list