[vlc-commits] core: make the decoder owners use the decoder_Destroy()
Steve Lhomme
git at videolan.org
Mon Feb 18 16:11:22 CET 2019
vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Mon Feb 18 14:50:49 2019 +0100| [61999254af66d795376953d73326e3bb0c8cacca] | committer: Steve Lhomme
core: make the decoder owners use the decoder_Destroy()
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=61999254af66d795376953d73326e3bb0c8cacca
---
src/input/decoder.c | 8 ++------
src/misc/image.c | 25 ++++---------------------
test/src/input/decoder.c | 10 +++-------
3 files changed, 9 insertions(+), 34 deletions(-)
diff --git a/src/input/decoder.c b/src/input/decoder.c
index 0a957317c7..05ba7f6abb 100644
--- a/src/input/decoder.c
+++ b/src/input/decoder.c
@@ -2032,11 +2032,7 @@ static void DeleteDecoder( decoder_t * p_dec )
if( p_owner->p_description )
vlc_meta_Delete( p_owner->p_description );
- if( p_owner->p_packetizer )
- {
- UnloadDecoder( p_owner->p_packetizer );
- vlc_object_release( p_owner->p_packetizer );
- }
+ decoder_Destroy( &p_owner->p_packetizer );
vlc_cond_destroy( &p_owner->wait_timed );
vlc_cond_destroy( &p_owner->wait_fifo );
@@ -2045,7 +2041,7 @@ static void DeleteDecoder( decoder_t * p_dec )
vlc_mutex_destroy( &p_owner->lock );
vlc_mutex_destroy( &p_owner->mouse_lock );
- vlc_object_release( p_dec );
+ decoder_Destroy( &p_dec );
}
/* */
diff --git a/src/misc/image.c b/src/misc/image.c
index 7fb0c6baa5..81ab7dc97c 100644
--- a/src/misc/image.c
+++ b/src/misc/image.c
@@ -73,7 +73,6 @@ static picture_t *ImageConvert( image_handler_t *, picture_t *,
const video_format_t *, video_format_t * );
static decoder_t *CreateDecoder( image_handler_t *, const es_format_t * );
-static void DeleteDecoder( decoder_t * );
static encoder_t *CreateEncoder( vlc_object_t *, const video_format_t *,
const video_format_t * );
static void DeleteEncoder( encoder_t * );
@@ -117,7 +116,7 @@ void image_HandlerDelete( image_handler_t *p_image )
{
if( !p_image ) return;
- if( p_image->p_dec ) DeleteDecoder( p_image->p_dec );
+ decoder_Destroy( &p_image->p_dec );
if( p_image->p_enc ) DeleteEncoder( p_image->p_enc );
if( p_image->p_converter ) DeleteConverter( p_image->p_converter );
@@ -154,8 +153,7 @@ static picture_t *ImageRead( image_handler_t *p_image, block_t *p_block,
if( p_image->p_dec &&
p_image->p_dec->fmt_in.i_codec != p_es_in->video.i_chroma )
{
- DeleteDecoder( p_image->p_dec );
- p_image->p_dec = 0;
+ decoder_Destroy( &p_image->p_dec );
}
/* Start a decoder */
@@ -169,8 +167,7 @@ static picture_t *ImageRead( image_handler_t *p_image, block_t *p_block,
}
if( p_image->p_dec->fmt_out.i_cat != VIDEO_ES )
{
- DeleteDecoder( p_image->p_dec );
- p_image->p_dec = NULL;
+ decoder_Destroy( &p_image->p_dec );
block_Release(p_block);
return NULL;
}
@@ -693,26 +690,12 @@ static decoder_t *CreateDecoder( image_handler_t *p_image, const es_format_t *fm
"VLC probably does not support this image format.",
(char*)&p_dec->fmt_in.i_codec );
- DeleteDecoder( p_dec );
- p_dec = NULL;
+ decoder_Destroy( &p_dec );
}
return p_dec;
}
-static void DeleteDecoder( decoder_t * p_dec )
-{
- if( p_dec->p_module ) module_unneed( p_dec, p_dec->p_module );
-
- es_format_Clean( &p_dec->fmt_in );
- es_format_Clean( &p_dec->fmt_out );
-
- if( p_dec->p_description )
- vlc_meta_Delete( p_dec->p_description );
-
- vlc_object_release( p_dec );
- p_dec = NULL;
-}
static encoder_t *CreateEncoder( vlc_object_t *p_this, const video_format_t *fmt_in,
const video_format_t *fmt_out )
diff --git a/test/src/input/decoder.c b/test/src/input/decoder.c
index 7fe2a1bf43..6ecc584120 100644
--- a/test/src/input/decoder.c
+++ b/test/src/input/decoder.c
@@ -131,12 +131,9 @@ static void decoder_unload(decoder_t *decoder)
void test_decoder_destroy(decoder_t *decoder)
{
struct decoder_owner *owner = dec_get_owner(decoder);
- decoder_t *packetizer = owner->packetizer;
- decoder_unload(packetizer);
- decoder_unload(decoder);
- vlc_object_release(packetizer);
- vlc_object_release(decoder);
+ decoder_Destroy(&owner->packetizer);
+ decoder_Destroy(&decoder);
}
decoder_t *test_decoder_create(vlc_object_t *parent, const es_format_t *fmt)
@@ -205,8 +202,7 @@ decoder_t *test_decoder_create(vlc_object_t *parent, const es_format_t *fmt)
if (decoder_load(decoder, false, &packetizer->fmt_out) != VLC_SUCCESS)
{
- decoder_unload(packetizer);
- vlc_object_release(packetizer);
+ decoder_Destroy(&packetizer);
vlc_object_release(decoder);
return NULL;
}
More information about the vlc-commits
mailing list