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
uint8_t p_palette_highlight[4][4];
} decoder_sys_t;
/*****************************************************************************
* DecoderOpen: open/initialize the cvdsub decoder.
*****************************************************************************/
static int DecoderOpen( vlc_object_t *p_this )
static int OpenCommon( vlc_object_t *p_this, bool b_packetizer )
{
decoder_t *p_dec = (decoder_t*)p_this;
decoder_sys_t *p_sys;
......@@ -117,34 +114,38 @@ static int DecoderOpen( vlc_object_t *p_this )
if( !p_sys )
return VLC_ENOMEM;
p_sys->b_packetizer = false;
p_sys->b_packetizer = b_packetizer;
p_sys->i_state = SUBTITLE_BLOCK_EMPTY;
p_sys->p_spu = NULL;
p_dec->pf_decode = Decode;
p_dec->pf_packetize = Packetize;
p_dec->fmt_out.i_codec = VLC_CODEC_YUVP;
if( b_packetizer )
{
p_dec->pf_packetize = Packetize;
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;
}
/*****************************************************************************
* 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.
*****************************************************************************/
static int PacketizerOpen( vlc_object_t *p_this )
{
decoder_t *p_dec = (decoder_t*)p_this;
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;
return OpenCommon( p_this, true );
}
/*****************************************************************************
......
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