diff options
author | Marton Balint <cus@passwd.hu> | 2016-06-18 15:49:01 +0200 |
---|---|---|
committer | Marton Balint <cus@passwd.hu> | 2016-06-26 19:17:37 +0200 |
commit | 1fc85d8511fb059450e36f2493b273635d507aa3 (patch) | |
tree | f5ecc4682a41469a57d261cf33c3039e1a5ac0ea /libavdevice | |
parent | 340cea9f22c162e10d120835661e132721b7454b (diff) | |
download | ffmpeg-1fc85d8511fb059450e36f2493b273635d507aa3.tar.gz |
avdevice/decklink: factorize cleanup function to common code
Reviewed-by: Deti Fliegl <deti@fliegl.de>
Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'libavdevice')
-rw-r--r-- | libavdevice/decklink_common.cpp | 13 | ||||
-rw-r--r-- | libavdevice/decklink_common.h | 1 | ||||
-rw-r--r-- | libavdevice/decklink_dec.cpp | 11 | ||||
-rw-r--r-- | libavdevice/decklink_enc.cpp | 10 |
4 files changed, 18 insertions, 17 deletions
diff --git a/libavdevice/decklink_common.cpp b/libavdevice/decklink_common.cpp index ac7964cd17..43599b6b2b 100644 --- a/libavdevice/decklink_common.cpp +++ b/libavdevice/decklink_common.cpp @@ -239,3 +239,16 @@ int ff_decklink_list_formats(AVFormatContext *avctx, decklink_direction_t direct return 0; } + +void ff_decklink_cleanup(AVFormatContext *avctx) +{ + struct decklink_cctx *cctx = (struct decklink_cctx *) avctx->priv_data; + struct decklink_ctx *ctx = (struct decklink_ctx *) cctx->ctx; + + if (ctx->dli) + ctx->dli->Release(); + if (ctx->dlo) + ctx->dlo->Release(); + if (ctx->dl) + ctx->dl->Release(); +} diff --git a/libavdevice/decklink_common.h b/libavdevice/decklink_common.h index dff4fc1cec..1a9feeba43 100644 --- a/libavdevice/decklink_common.h +++ b/libavdevice/decklink_common.h @@ -105,5 +105,6 @@ int ff_decklink_set_format(AVFormatContext *avctx, int width, int height, int tb int ff_decklink_set_format(AVFormatContext *avctx, decklink_direction_t direction, int num); int ff_decklink_list_devices(AVFormatContext *avctx); int ff_decklink_list_formats(AVFormatContext *avctx, decklink_direction_t direction = DIRECTION_OUT); +void ff_decklink_cleanup(AVFormatContext *avctx); #endif /* AVDEVICE_DECKLINK_COMMON_H */ diff --git a/libavdevice/decklink_dec.cpp b/libavdevice/decklink_dec.cpp index 3b5d4be56a..8b57e0cd08 100644 --- a/libavdevice/decklink_dec.cpp +++ b/libavdevice/decklink_dec.cpp @@ -419,11 +419,7 @@ av_cold int ff_decklink_read_close(AVFormatContext *avctx) ctx->dli->DisableAudioInput(); } - if (ctx->dli) - ctx->dli->Release(); - if (ctx->dl) - ctx->dl->Release(); - + ff_decklink_cleanup(avctx); avpacket_queue_end(&ctx->queue); av_freep(&cctx->ctx); @@ -620,10 +616,7 @@ av_cold int ff_decklink_read_header(AVFormatContext *avctx) return 0; error: - - ctx->dli->Release(); - ctx->dl->Release(); - + ff_decklink_cleanup(avctx); return AVERROR(EIO); } diff --git a/libavdevice/decklink_enc.cpp b/libavdevice/decklink_enc.cpp index 6c5450f4ec..4d00a537ec 100644 --- a/libavdevice/decklink_enc.cpp +++ b/libavdevice/decklink_enc.cpp @@ -193,10 +193,7 @@ av_cold int ff_decklink_write_trailer(AVFormatContext *avctx) ctx->dlo->DisableAudioOutput(); } - if (ctx->dlo) - ctx->dlo->Release(); - if (ctx->dl) - ctx->dl->Release(); + ff_decklink_cleanup(avctx); if (ctx->output_callback) delete ctx->output_callback; @@ -400,10 +397,7 @@ av_cold int ff_decklink_write_header(AVFormatContext *avctx) return 0; error: - - ctx->dlo->Release(); - ctx->dl->Release(); - + ff_decklink_cleanup(avctx); return AVERROR(EIO); } |