Commit f0db636b authored by Zhao Zhili's avatar Zhao Zhili Committed by Thomas Guillem

codec: cvdsub: prepare to put pf_packetize and pf_decode into a union

Signed-off-by: Thomas Guillem's avatarThomas Guillem <thomas@gllm.fr>
parent 6a20d09c
...@@ -102,10 +102,7 @@ typedef struct ...@@ -102,10 +102,7 @@ typedef struct
uint8_t p_palette_highlight[4][4]; uint8_t p_palette_highlight[4][4];
} decoder_sys_t; } decoder_sys_t;
/***************************************************************************** static int OpenCommon( vlc_object_t *p_this, bool b_packetizer )
* DecoderOpen: open/initialize the cvdsub decoder.
*****************************************************************************/
static int DecoderOpen( vlc_object_t *p_this )
{ {
decoder_t *p_dec = (decoder_t*)p_this; decoder_t *p_dec = (decoder_t*)p_this;
decoder_sys_t *p_sys; decoder_sys_t *p_sys;
...@@ -117,34 +114,38 @@ static int DecoderOpen( vlc_object_t *p_this ) ...@@ -117,34 +114,38 @@ static int DecoderOpen( vlc_object_t *p_this )
if( !p_sys ) if( !p_sys )
return VLC_ENOMEM; return VLC_ENOMEM;
p_sys->b_packetizer = false; p_sys->b_packetizer = b_packetizer;
p_sys->i_state = SUBTITLE_BLOCK_EMPTY; p_sys->i_state = SUBTITLE_BLOCK_EMPTY;
p_sys->p_spu = NULL; p_sys->p_spu = NULL;
p_dec->pf_decode = Decode; if( b_packetizer )
p_dec->pf_packetize = Packetize; {
p_dec->pf_packetize = Packetize;
p_dec->fmt_out.i_codec = VLC_CODEC_YUVP; p_dec->fmt_out.i_codec = VLC_CODEC_CVD;
}
else
{
p_dec->pf_decode = Decode;
p_dec->fmt_out.i_codec = VLC_CODEC_YUVP;
}
return VLC_SUCCESS; return VLC_SUCCESS;
} }
/*****************************************************************************
* DecoderOpen: open/initialize the cvdsub decoder.
*****************************************************************************/
static int DecoderOpen( vlc_object_t *p_this )
{
return OpenCommon( p_this, false );
}
/***************************************************************************** /*****************************************************************************
* PacketizerOpen: open/initialize the cvdsub packetizer. * PacketizerOpen: open/initialize the cvdsub packetizer.
*****************************************************************************/ *****************************************************************************/
static int PacketizerOpen( vlc_object_t *p_this ) static int PacketizerOpen( vlc_object_t *p_this )
{ {
decoder_t *p_dec = (decoder_t*)p_this; return OpenCommon( p_this, true );
if( DecoderOpen( p_this ) != VLC_SUCCESS ) return VLC_EGENERIC;
decoder_sys_t *p_sys = p_dec->p_sys;
p_dec->fmt_out.i_codec = VLC_CODEC_CVD;
p_sys->b_packetizer = true;
return VLC_SUCCESS;
} }
/***************************************************************************** /*****************************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment