[vlc-commits] demux: es: add support for RE4 CCTV recordings

Francois Cartegnie git at videolan.org
Wed Aug 8 13:49:17 CEST 2018


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Wed Aug  8 12:26:04 2018 +0200| [5263fc9d720681ea361a313f0ef31017a5b9f183] | committer: Francois Cartegnie

demux: es: add support for RE4 CCTV recordings

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5263fc9d720681ea361a313f0ef31017a5b9f183
---

 modules/demux/mpeg/es.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/modules/demux/mpeg/es.c b/modules/demux/mpeg/es.c
index c1355aaa51..90980d9226 100644
--- a/modules/demux/mpeg/es.c
+++ b/modules/demux/mpeg/es.c
@@ -289,22 +289,25 @@ static int OpenVideo( vlc_object_t *p_this )
 
     /* Only m4v is supported for the moment */
     bool b_m4v_ext    = demux_IsPathExtension( p_demux, ".m4v" );
+    bool b_re4_ext    = !b_m4v_ext && demux_IsPathExtension( p_demux, ".re4" );
     bool b_m4v_forced = demux_IsForced( p_demux, "m4v" ) ||
                         demux_IsForced( p_demux, "mp4v" );
-    if( !b_m4v_ext && !b_m4v_forced )
+
+    if( !b_m4v_ext && !b_m4v_forced && !b_re4_ext )
         return VLC_EGENERIC;
 
+    ssize_t i_off = b_re4_ext ? 220 : 0;
     const uint8_t *p_peek;
-    if( vlc_stream_Peek( p_demux->s, &p_peek, 4 ) < 4 )
+    if( vlc_stream_Peek( p_demux->s, &p_peek, i_off + 4 ) < i_off + 4 )
         return VLC_EGENERIC;
-    if( p_peek[0] != 0x00 || p_peek[1] != 0x00 || p_peek[2] != 0x01 )
+    if( p_peek[i_off + 0] != 0x00 || p_peek[i_off + 1] != 0x00 || p_peek[i_off + 2] != 0x01 )
     {
         if( !b_m4v_forced)
             return VLC_EGENERIC;
         msg_Warn( p_demux,
                   "this doesn't look like an MPEG ES stream, continuing anyway" );
     }
-    return OpenCommon( p_demux, VIDEO_ES, &codec_m4v, 0 );
+    return OpenCommon( p_demux, VIDEO_ES, &codec_m4v, i_off );
 }
 /*****************************************************************************
  * Demux: reads and demuxes data packets



More information about the vlc-commits mailing list