diff mbox

[FFmpeg-devel] lavc/libzvbi: remove deprecated API usage

Message ID 20170211232324.70689-1-josh@itanimul.li
State Superseded
Headers show

Commit Message

Josh Dekker Feb. 11, 2017, 11:23 p.m. UTC
Signed-off-by: Josh de Kock <josh@itanimul.li>
---
 libavcodec/libzvbi-teletextdec.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

Comments

Carl Eugen Hoyos Feb. 11, 2017, 11:40 p.m. UTC | #1
2017-02-12 0:23 GMT+01:00 Josh de Kock <josh@itanimul.li>:

> -        if (!vbi_event_handler_add(ctx->vbi, VBI_EVENT_TTX_PAGE, handler, ctx)) {
> +        if (!vbi_event_handler_register(ctx->vbi, VBI_EVENT_TTX_PAGE, handler, ctx)) {
>              vbi_decoder_delete(ctx->vbi);
>              ctx->vbi = NULL;
>              return AVERROR(ENOMEM);
> @@ -524,8 +524,12 @@ 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) {
> +        vbi_event_handler_unregister(ctx->vbi, handler, ctx);

Does this work with 0.2.28?

Thank you, Carl Eugen
Marton Balint Feb. 12, 2017, 12:44 p.m. UTC | #2
On Sat, 11 Feb 2017, Josh de Kock wrote:

> Signed-off-by: Josh de Kock <josh@itanimul.li>
> ---
> libavcodec/libzvbi-teletextdec.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/libzvbi-teletextdec.c b/libavcodec/libzvbi-teletextdec.c
> index d1f0a9f..2ed4a82 100644
> --- a/libavcodec/libzvbi-teletextdec.c
> +++ b/libavcodec/libzvbi-teletextdec.c
> @@ -395,7 +395,7 @@ 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_event_handler_add(ctx->vbi, VBI_EVENT_TTX_PAGE, handler, ctx)) {
> +        if (!vbi_event_handler_register(ctx->vbi, VBI_EVENT_TTX_PAGE, handler, ctx)) {
>             vbi_decoder_delete(ctx->vbi);
>             ctx->vbi = NULL;
>             return AVERROR(ENOMEM);
> @@ -524,8 +524,12 @@ 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) {
> +        vbi_event_handler_unregister(ctx->vbi, handler, ctx);
> +        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;
> --

LGTM if tested.

Thanks,
Marton
diff mbox

Patch

diff --git a/libavcodec/libzvbi-teletextdec.c b/libavcodec/libzvbi-teletextdec.c
index d1f0a9f..2ed4a82 100644
--- a/libavcodec/libzvbi-teletextdec.c
+++ b/libavcodec/libzvbi-teletextdec.c
@@ -395,7 +395,7 @@  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_event_handler_add(ctx->vbi, VBI_EVENT_TTX_PAGE, handler, ctx)) {
+        if (!vbi_event_handler_register(ctx->vbi, VBI_EVENT_TTX_PAGE, handler, ctx)) {
             vbi_decoder_delete(ctx->vbi);
             ctx->vbi = NULL;
             return AVERROR(ENOMEM);
@@ -524,8 +524,12 @@  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) {
+        vbi_event_handler_unregister(ctx->vbi, handler, ctx);
+        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;