[vlc-commits] [Git][videolan/vlc][master] 2 commits: mux: ts: avoid casting callbacks

Steve Lhomme (@robUx4) gitlab at videolan.org
Thu Jan 30 07:30:47 UTC 2025



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
73f3e7c5 by Steve Lhomme at 2025-01-30T07:17:39+00:00
mux: ts: avoid casting callbacks

- - - - -
bbc22577 by Steve Lhomme at 2025-01-30T07:17:39+00:00
access: dvb: avoid casting callbacks

- - - - -


2 changed files:

- modules/access/dvb/scan.c
- modules/mux/mpeg/ts.c


Changes:

=====================================
modules/access/dvb/scan.c
=====================================
@@ -991,8 +991,9 @@ static void ParsePAT( vlc_object_t *p_obj, scan_t *p_scan,
 }
 
 /* FIXME handle properly string (convert to utf8) */
-static void PATCallBack( scan_session_t *p_session, dvbpsi_pat_t *p_pat )
+static void PATCallBack( void *opaque, dvbpsi_pat_t *p_pat )
 {
+    scan_session_t *p_session = opaque;
     vlc_object_t *p_obj = p_session->p_obj;
 
     /* */
@@ -1082,8 +1083,9 @@ static void ParseSDT( vlc_object_t *p_obj, scan_t *p_scan, const dvbpsi_sdt_t *p
     }
 }
 
-static void SDTCallBack( scan_session_t *p_session, dvbpsi_sdt_t *p_sdt )
+static void SDTCallBack( void *opaque, dvbpsi_sdt_t *p_sdt )
 {
+    scan_session_t *p_session = opaque;
     vlc_object_t *p_obj = p_session->p_obj;
     dvbpsi_sdt_t **pp_stored_sdt = NULL;
     if( p_sdt->i_table_id == SDT_OTHER_TS_TABLE_ID )
@@ -1435,8 +1437,9 @@ static void ParseNIT( vlc_object_t *p_obj, scan_t *p_scan,
     }
 }
 
-static void NITCallBack( scan_session_t *p_session, dvbpsi_nit_t *p_nit )
+static void NITCallBack( void * opaque, dvbpsi_nit_t *p_nit )
 {
+    scan_session_t *p_session = opaque;
     vlc_object_t *p_obj = p_session->p_obj;
     dvbpsi_nit_t **pp_stored_nit = NULL;
 
@@ -1520,12 +1523,12 @@ static void PSINewTableCallBack( dvbpsi_t *h, uint8_t i_table_id, uint16_t i_ext
 
     if( i_table_id == SDT_CURRENT_TS_TABLE_ID || i_table_id == SDT_OTHER_TS_TABLE_ID )
     {
-        if( !dvbpsi_sdt_attach( h, i_table_id, i_extension, (dvbpsi_sdt_callback)SDTCallBack, p_session ) )
+        if( !dvbpsi_sdt_attach( h, i_table_id, i_extension, SDTCallBack, p_session ) )
             msg_Err( p_session->p_obj, "PSINewTableCallback: failed attaching SDTCallback" );
     }
     else if( i_table_id == NIT_CURRENT_NETWORK_TABLE_ID || i_table_id == NIT_OTHER_NETWORK_TABLE_ID )
     {
-        if( !dvbpsi_nit_attach( h, i_table_id, i_extension, (dvbpsi_nit_callback)NITCallBack, p_session ) )
+        if( !dvbpsi_nit_attach( h, i_table_id, i_extension, NITCallBack, p_session ) )
             msg_Err( p_session->p_obj, "PSINewTableCallback: failed attaching NITCallback" );
     }
 }
@@ -1805,7 +1808,7 @@ static bool scan_session_Push( scan_session_t *p_scan, const uint8_t *p_packet )
                 return false;
 
             p_scan->p_pathandle->p_sys = (void *) p_scan->p_obj;
-            if( !dvbpsi_pat_attach( p_scan->p_pathandle, (dvbpsi_pat_callback)PATCallBack, p_scan ) )
+            if( !dvbpsi_pat_attach( p_scan->p_pathandle, PATCallBack, p_scan ) )
             {
                 dvbpsi_delete( p_scan->p_pathandle );
                 p_scan->p_pathandle = NULL;


=====================================
modules/mux/mpeg/ts.c
=====================================
@@ -276,6 +276,12 @@ static inline void BufferChainAppend( sout_buffer_chain_t *c, block_t *b )
     block_ChainLastAppend( &c->pp_last, b );
 }
 
+static void BufferChainAppendCallback( void *opaque, block_t *b )
+{
+    sout_buffer_chain_t *c = opaque;
+    BufferChainAppend(c, b);
+}
+
 static inline block_t *BufferChainGet( sout_buffer_chain_t *c )
 {
     block_t *b = c->p_first;
@@ -1885,7 +1891,7 @@ void GetPAT( sout_mux_t *p_mux, sout_buffer_chain_t *c )
     sout_mux_sys_t       *p_sys = p_mux->p_sys;
 
     BuildPAT( p_sys->p_dvbpsi,
-              c, (PEStoTSCallback)BufferChainAppend,
+              c, BufferChainAppendCallback,
               p_sys->i_tsid, p_sys->i_pat_version_number,
               &p_sys->pat,
               p_sys->i_num_pmt, p_sys->pmt, p_sys->i_pmt_program_number );
@@ -1913,7 +1919,7 @@ static void GetPMT( sout_mux_t *p_mux, sout_buffer_chain_t *c )
     }
 
     BuildPMT( p_sys->p_dvbpsi, VLC_OBJECT(p_mux), p_sys->standard,
-              c, (PEStoTSCallback)BufferChainAppend,
+              c, BufferChainAppendCallback,
               p_sys->i_tsid, p_sys->i_pmt_version_number,
               ((sout_input_sys_t *)p_sys->p_pcr_input->p_sys)->ts.i_pid,
               &p_sys->sdt,



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/a7f9268551dcd6d5b0433863a380ad3272264eae...bbc22577a41cf41cab1f1654cd4bdf4f68c5d827

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/a7f9268551dcd6d5b0433863a380ad3272264eae...bbc22577a41cf41cab1f1654cd4bdf4f68c5d827
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list