[vlc-devel] [V2 03/14] codec: svcdsub: prepare to put pf_packetize and pf_decode into a union

Zhao Zhili quinkblack at foxmail.com
Fri Jun 8 11:47:09 CEST 2018


---
 modules/codec/svcdsub.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/modules/codec/svcdsub.c b/modules/codec/svcdsub.c
index f947ffe..7ecfdee 100644
--- a/modules/codec/svcdsub.c
+++ b/modules/codec/svcdsub.c
@@ -108,10 +108,7 @@ typedef struct
   uint8_t p_palette[4][4];       /* Palette of colors used in subtitle */
 } decoder_sys_t;
 
-/*****************************************************************************
- * DecoderOpen: open/initialize the svcdsub 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;
@@ -131,20 +128,28 @@ static int DecoderOpen( vlc_object_t *p_this )
 
     p_dec->fmt_out.i_codec = VLC_CODEC_OGT;
 
-    p_dec->pf_decode    = Decode;
-    p_dec->pf_packetize = Packetize;
+    if( b_packetizer )
+        p_dec->pf_packetize = Packetize;
+    else
+        p_dec->pf_decode    = Decode;
 
     return VLC_SUCCESS;
 }
 
 /*****************************************************************************
+ * DecoderOpen: open/initialize the svcdsub decoder.
+ *****************************************************************************/
+static int DecoderOpen( vlc_object_t *p_this )
+{
+    return OpenCommon( p_this, false );
+}
+
+/*****************************************************************************
  * PacketizerOpen: open/initialize the svcdsub packetizer.
  *****************************************************************************/
 static int PacketizerOpen( vlc_object_t *p_this )
 {
-    if( DecoderOpen( p_this ) != VLC_SUCCESS ) return VLC_EGENERIC;
-
-    return VLC_SUCCESS;
+    return OpenCommon( p_this, true );
 }
 
 /*****************************************************************************
-- 
2.9.5





More information about the vlc-devel mailing list