<HTML>
<HEAD>
<TITLE>Re: Private substream for closed captioning data  from video capture cards</TITLE>
</HEAD>
<BODY>
<FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'>Unfortunately, the video content is proprietary, so I can’t send it out.  I do have some debugging output from an application we use to pull out and index the CC data.  I can send enough of that so you can see the pattern of timestamps in the Packet Headers between the video and CC data.<BR>
<BR>
Would that be useful?<BR>
<BR>
<BR>
-- <BR>
Chris Rath<BR>
AT&T Labs Research<BR>
973-360-8361<BR>
car@research.att.com<BR>
<BR>
"This email and any files transmitted with it are AT&T property, are confidential, and are intended solely for the use of the individual or entity to whom this email is addressed. If you are not one of the named recipient(s) or otherwise have reason to believe that you have received this message in error, please notify the sender and delete this message immediately from your computer. Any other use, retention, dissemination, forwarding, printing, or copying of this email is strictly prohibited."<BR>
 <BR>
<BR>
<BR>
<BR>
<BR>
On 9/11/09 4:08 AM, "vlc-devel-request@videolan.org" <vlc-devel-request@videolan.org> wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'>Send vlc-devel mailing list submissions to<BR>
        vlc-devel@videolan.org<BR>
<BR>
To subscribe or unsubscribe via the World Wide Web, visit<BR>
        <a href="http://mailman.videolan.org/listinfo/vlc-devel">http://mailman.videolan.org/listinfo/vlc-devel</a><BR>
or, via email, send a message with subject or body 'help' to<BR>
        vlc-devel-request@videolan.org<BR>
<BR>
You can reach the person managing the list at<BR>
        vlc-devel-owner@videolan.org<BR>
<BR>
When replying, please edit your Subject line so it is more specific<BR>
than "Re: Contents of vlc-devel digest..."<BR>
<BR>
<BR>
Today's Topics:<BR>
<BR>
   1. commit:   Set EPG default charset to ISO6937 as required by<BR>
      ETSI EN 300 468 Annex A   ( Marian ?urkovi? ) (git version control)<BR>
   2. commit: Be more strict in provider name matching ( Marian<BR>
      ?urkovi? ) (git version control)<BR>
   3. commit: EPG news ( Marian ?urkovi? ) (git version control)<BR>
   4. win32 mozilla plug-in crash in every 1.1 build from<BR>
      nightly.videolan.org (Michael A. Puls II)<BR>
   5. Re: muxers and streaming (S?bastien Escudier)<BR>
   6. Re: Private substream for closed captioning data  from    video<BR>
      capture cards (Laurent Aimar)<BR>
   7. Re: [PATCH] Playlist thread : don't check for input       eof     or<BR>
      error. (Laurent Aimar)<BR>
   8. Re: [PATCH] Sqlite Module for VLC, GSoC 09 (Laurent Aimar)<BR>
<BR>
<BR>
----------------------------------------------------------------------<BR>
<BR>
Message: 1<BR>
Date: Fri, 11 Sep 2009 08:41:15 +0200 (CEST)<BR>
From: git@videolan.org (git version control)<BR>
Subject: [vlc-devel] commit:   Set EPG default charset to ISO6937 as<BR>
        required by ETSI EN 300 468 Annex A   ( Marian ?urkovi? )<BR>
To: vlc-devel@videolan.org<BR>
Message-ID: <20090911064115.4005D39E892@skanda.videolan.org><BR>
Content-Type: text/plain; charset=UTF-8<BR>
<BR>
vlc | branch: 1.0-bugfix | Marian ?urkovi? <md@bts.sk> | Thu Sep 10 08:54:33 2009 +0200| [b84c95305e0254d462c40e819492104865ebe5b9] | committer: Marian ?urkovi?<BR>
<BR>
Set EPG default charset to ISO6937 as required by ETSI EN 300 468 Annex A<BR>
Also provide workarounds for some broadcasters which ignore this standard.<BR>
(cherry picked from commit 6217711a41045bbe5a38c6ef1481f806f60bc274)<BR>
<BR>
> <a href="http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b84c95305e0254d462c40e819492104865ebe5b9">http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b84c95305e0254d462c40e819492104865ebe5b9</a><BR>
---<BR>
<BR>
 modules/demux/ts.c |   29 ++++++++++++++++++++++++++---<BR>
 1 files changed, 26 insertions(+), 3 deletions(-)<BR>
<BR>
diff --git a/modules/demux/ts.c b/modules/demux/ts.c<BR>
index 24be427..f2e76eb 100644<BR>
--- a/modules/demux/ts.c<BR>
+++ b/modules/demux/ts.c<BR>
@@ -374,6 +374,8 @@ struct demux_sys_t<BR>
     bool        b_start_record;<BR>
 };<BR>
<BR>
+static int i_broken_epg;<BR>
+<BR>
 static int Demux    ( demux_t *p_demux );<BR>
 static int DemuxFile( demux_t *p_demux );<BR>
 static int Control( demux_t *p_demux, int i_query, va_list args );<BR>
@@ -2587,9 +2589,17 @@ static char *EITConvertToUTF8( const unsigned char *psz_instring,<BR>
     if( i_length < 1 ) return NULL;<BR>
     if( psz_instring[0] >= 0x20 )<BR>
     {<BR>
-        psz_encoding = "ISO_8859-1";<BR>
-        /* According to the specification, this should be ISO6937,<BR>
-         * but it seems Latin-1 is used instead. */<BR>
+        /* According to ETSI EN 300 468 Annex A, this should be ISO6937,<BR>
+         * but some broadcasters use different charset... */<BR>
+        if ( i_broken_epg == 1 )<BR>
+        {<BR>
+           psz_encoding = "ISO_8859-1";<BR>
+        }<BR>
+        else<BR>
+        {<BR>
+           psz_encoding = "ISO_6937";<BR>
+        }<BR>
+<BR>
         offset = 0;<BR>
     }<BR>
     else switch( psz_instring[0] )<BR>
@@ -2723,6 +2733,8 @@ static void SDTCallBack( demux_t *p_demux, dvbpsi_sdt_t *p_sdt )<BR>
              p_sdt->i_ts_id, p_sdt->i_version, p_sdt->b_current_next,<BR>
              p_sdt->i_network_id );<BR>
<BR>
+    i_broken_epg = 0;<BR>
+<BR>
     for( p_srv = p_sdt->p_first_service; p_srv; p_srv = p_srv->p_next )<BR>
     {<BR>
         vlc_meta_t          *p_meta;<BR>
@@ -2768,6 +2780,17 @@ static void SDTCallBack( demux_t *p_demux, dvbpsi_sdt_t *p_sdt )<BR>
                 char *str1 = NULL;<BR>
                 char *str2 = NULL;<BR>
<BR>
+                /* Workarounds for broadcasters with broken EPG */<BR>
+<BR>
+                if ( p_sdt->i_network_id == 133 )<BR>
+                   i_broken_epg = 1;  /* SKY DE & BetaDigital use ISO8859-1 */<BR>
+<BR>
+                if ( !strncmp(pD->i_service_provider_name, "CSAT",<BR>
+                              pD->i_service_provider_name_length) )<BR>
+                   i_broken_epg = 1;  /* CanalSat FR uses ISO8859-1 */<BR>
+<BR>
+                /* FIXME: Digital+ ES also uses ISO8859-1 */<BR>
+<BR>
                 str1 = EITConvertToUTF8(pD->i_service_provider_name,<BR>
                                         pD->i_service_provider_name_length);<BR>
                 str2 = EITConvertToUTF8(pD->i_service_name,<BR>
<BR>
<BR>
<BR>
------------------------------<BR>
<BR>
Message: 2<BR>
Date: Fri, 11 Sep 2009 08:41:15 +0200 (CEST)<BR>
From: git@videolan.org (git version control)<BR>
Subject: [vlc-devel] commit: Be more strict in provider name matching<BR>
        ( Marian ?urkovi? )<BR>
To: vlc-devel@videolan.org<BR>
Message-ID: <20090911064115.A955C39E88D@skanda.videolan.org><BR>
Content-Type: text/plain; charset=UTF-8<BR>
<BR>
vlc | branch: 1.0-bugfix | Marian ?urkovi? <md@bts.sk> | Fri Sep 11 08:27:36 2009 +0200| [f5e32002ff406f2798ae33d9db6df3df41b62b11] | committer: Marian ?urkovi?<BR>
<BR>
Be more strict in provider name matching<BR>
(cherry picked from commit bbea92e7e5ebb63681092bb5ebb191234fcecc07)<BR>
<BR>
> <a href="http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f5e32002ff406f2798ae33d9db6df3df41b62b11">http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f5e32002ff406f2798ae33d9db6df3df41b62b11</a><BR>
---<BR>
<BR>
 modules/demux/ts.c |    4 ++--<BR>
 1 files changed, 2 insertions(+), 2 deletions(-)<BR>
<BR>
diff --git a/modules/demux/ts.c b/modules/demux/ts.c<BR>
index f2e76eb..1564c2b 100644<BR>
--- a/modules/demux/ts.c<BR>
+++ b/modules/demux/ts.c<BR>
@@ -2785,8 +2785,8 @@ static void SDTCallBack( demux_t *p_demux, dvbpsi_sdt_t *p_sdt )<BR>
                 if ( p_sdt->i_network_id == 133 )<BR>
                    i_broken_epg = 1;  /* SKY DE & BetaDigital use ISO8859-1 */<BR>
<BR>
-                if ( !strncmp(pD->i_service_provider_name, "CSAT",<BR>
-                              pD->i_service_provider_name_length) )<BR>
+                if ( (pD->i_service_provider_name_length == 4) &&<BR>
+                     !strncmp(pD->i_service_provider_name, "CSAT", 4) )<BR>
                    i_broken_epg = 1;  /* CanalSat FR uses ISO8859-1 */<BR>
<BR>
                 /* FIXME: Digital+ ES also uses ISO8859-1 */<BR>
<BR>
<BR>
<BR>
------------------------------<BR>
<BR>
Message: 3<BR>
Date: Fri, 11 Sep 2009 08:41:15 +0200 (CEST)<BR>
From: git@videolan.org (git version control)<BR>
Subject: [vlc-devel] commit: EPG news ( Marian ?urkovi? )<BR>
To: vlc-devel@videolan.org<BR>
Message-ID: <20090911064115.B6BE039E88F@skanda.videolan.org><BR>
Content-Type: text/plain; charset=UTF-8<BR>
<BR>
vlc | branch: 1.0-bugfix | Marian ?urkovi? <md@bts.sk> | Fri Sep 11 08:40:44 2009 +0200| [eaf62b54a003203549bd3d17106af1381f9b0e46] | committer: Marian ?urkovi?<BR>
<BR>
EPG news<BR>
<BR>
> <a href="http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=eaf62b54a003203549bd3d17106af1381f9b0e46">http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=eaf62b54a003203549bd3d17106af1381f9b0e46</a><BR>
---<BR>
<BR>
 NEWS |    3 +++<BR>
 1 files changed, 3 insertions(+), 0 deletions(-)<BR>
<BR>
diff --git a/NEWS b/NEWS<BR>
index e1ec28e..307dc24 100644<BR>
--- a/NEWS<BR>
+++ b/NEWS<BR>
@@ -5,6 +5,9 @@ Decoders:<BR>
  * Native support for WMA Professional, without the use of the Win32 dlls<BR>
  * Fix issues in subtitles, especially SSA ones<BR>
  * Various fixes on theora and ogg<BR>
+<BR>
+Demuxers:<BR>
+ * Various fixes for EPG support in MPEG-TS demuxer<BR>
<BR>
 Qt Interface:<BR>
  * Fix some playlist sorting issues<BR>
<BR>
<BR>
<BR>
------------------------------<BR>
<BR>
Message: 4<BR>
Date: Fri, 11 Sep 2009 03:08:52 -0400<BR>
From: "Michael A. Puls II" <shadow2531@gmail.com><BR>
Subject: [vlc-devel] win32 mozilla plug-in crash in every 1.1 build<BR>
        from nightly.videolan.org<BR>
To: vlc-devel@videolan.org<BR>
Message-ID: <op.uz2zg1ss1ejg13@sandra-svwliu01><BR>
Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes<BR>
<BR>
I mentioned on IRC a while ago that the mozilla plug-in in the VLC 1.1 git <BR>
win32 binaries from <a href="http://nightly.videolan.org/">http://nightly.videolan.org/</a> crashes on WinXP (PIII) <BR>
with:<BR>
<BR>
Microsoft VisualC++ Runtime Library<BR>
<BR>
The application has requested the Runtime to terminate it in an unusual <BR>
way. Please contact the application's support team for more information.<BR>
<BR>
I tried with windbg to see what the problem is, but didn't figure out <BR>
anything. All I could tell is that the crash happens right after the <BR>
plug-in loads all the modules.<BR>
<BR>
Well, I've been checking the builds all the time and the problem is still <BR>
there in each build. <BR>
<a href="http://nightly.videolan.org/build/win32/trunk-20090910-2205/vlc-1.1.0-git-20090910-2205-win32.exe"><http://nightly.videolan.org/build/win32/trunk-20090910-2205/vlc-1.1.0-git-20090910-2205-win32.exe></a> <BR>
for example.<BR>
<BR>
I did find one extra thing just now. <embed <BR>
type="application/x-vlc-plugin" src="" width="400" height="400"> will <BR>
cause the crash, but removing src="" stops it from crashing.<BR>
<BR>
Another way to make it crash is to just load a media file in the address <BR>
field that invokes the plug-in.<BR>
<BR>
It crashes in Firefox, Safari and Opera. The 1.0.x builds work fine though.<BR>
<BR>
Are the 1.1 binaries built for a certain processor or something or do they <BR>
require some runtime libs that I don't have?<BR>
<BR>
--<BR>
Michael<BR>
<BR>
<BR>
------------------------------<BR>
<BR>
Message: 5<BR>
Date: Fri, 11 Sep 2009 09:43:45 +0200<BR>
From: S?bastien Escudier <sebastien-devel@celeos.eu><BR>
Subject: Re: [vlc-devel] muxers and streaming<BR>
To: Mailing list for VLC media player developers<BR>
        <vlc-devel@videolan.org><BR>
Message-ID: <1252655025.4aa9ffb1ad5ff@imp.celeos.eu><BR>
Content-Type: text/plain; charset=ISO-8859-1<BR>
<BR>
Quoting R?mi Denis-Courmont <remi@remlab.net>:<BR>
<BR>
> But otherwise, yes, we should not allow muxers that are not supported over<BR>
> RTP.<BR>
<BR>
Thanks for the answer.<BR>
Actually I misunderstood the "rtpmap" field. I thought it was the muxer.<BR>
The vod module is using the same muxers as RTP stream out module.<BR>
<BR>
<BR>
<BR>
------------------------------<BR>
<BR>
Message: 6<BR>
Date: Fri, 11 Sep 2009 10:01:11 +0200<BR>
From: Laurent Aimar <fenrir@via.ecp.fr><BR>
Subject: Re: [vlc-devel] Private substream for closed captioning data<BR>
        from    video capture cards<BR>
To: Mailing list for VLC media player developers<BR>
        <vlc-devel@videolan.org><BR>
Message-ID: <20090911080111.GA30529@via.ecp.fr><BR>
Content-Type: text/plain; charset=iso-8859-1<BR>
<BR>
Hi,<BR>
<BR>
On Thu, Sep 10, 2009, RATH, CHRISTOPHER A (CHRISTOPHER A) wrote:<BR>
> A few days ago I posted a message concerning a problem we were having<BR>
> playing video generated by a video capture card with closed caption<BR>
> extraction enabled.  I think I have found evidence that suggests VLC may<BR>
> need to detect this stream and ignore the timestamp found in the PES header<BR>
> for these packets.<BR>
><BR>
> The MPEG generated by the video capture card using ivtv contains a Private<BR>
> Stream 1 substream ID: 0x69 for the closed captioning data.  The PES header<BR>
> for the packets in this stream have a timestamp that is not relative to the<BR>
> beginning of the program.  The VLC ps.c demuxer, however, is using this<BR>
> timestamp to update the clock and thus we get frequent clock gap errors and<BR>
> the video is never able to be played.<BR>
><BR>
> I found a description of this problem at<BR>
> <a href="http://videoman.giraffe-data.com/~branh/d/note/closedcap">http://videoman.giraffe-data.com/~branh/d/note/closedcap</a> and it seems to<BR>
> match with the behavior I see in the mpeg generated by our capture cards.<BR>
><BR>
> There is already a special case in the ps demuxer for handling VCD and SVCD<BR>
> data tracks that causes VLC to ignore the timestamp in the PES header for<BR>
> that packet.  I believe we need to add another case to detect the closed<BR>
> captioning data in substream 0x69.  I have already tested a fix in my local<BR>
> branch of 1.0-bugfixes to do this and now the video is playable.  The fix<BR>
> would have no other affect as VLC does not have a way to process the 0x69<BR>
> substream and thus ignores the data in those packets anyway.<BR>
 Can you put a sample somewhere? I will have a look at it.<BR>
<BR>
Regards,<BR>
<BR>
--<BR>
fenrir<BR>
<BR>
<BR>
------------------------------<BR>
<BR>
Message: 7<BR>
Date: Fri, 11 Sep 2009 10:02:24 +0200<BR>
From: Laurent Aimar <fenrir@via.ecp.fr><BR>
Subject: Re: [vlc-devel] [PATCH] Playlist thread : don't check for<BR>
        input   eof     or error.<BR>
To: Mailing list for VLC media player developers<BR>
        <vlc-devel@videolan.org><BR>
Message-ID: <20090911080224.GB30529@via.ecp.fr><BR>
Content-Type: text/plain; charset=iso-8859-1<BR>
<BR>
Hi,<BR>
<BR>
On Thu, Sep 10, 2009, S?bastien Escudier wrote:<BR>
> Could someone confirm (or not) that we don't need to check b_error and b_eof<BR>
> flag in the playlist thread (see patch attached).<BR>
> I tested, and the loop is always ending with p_input->b_dead.<BR>
 Yes, the input now always die by itself on eof or error.<BR>
<BR>
--<BR>
fenrir<BR>
<BR>
<BR>
------------------------------<BR>
<BR>
Message: 8<BR>
Date: Fri, 11 Sep 2009 10:08:29 +0200<BR>
From: Laurent Aimar <fenrir@via.ecp.fr><BR>
Subject: Re: [vlc-devel] [PATCH] Sqlite Module for VLC, GSoC 09<BR>
To: Mailing list for VLC media player developers<BR>
        <vlc-devel@videolan.org><BR>
Message-ID: <20090911080829.GC30529@via.ecp.fr><BR>
Content-Type: text/plain; charset=iso-8859-1<BR>
<BR>
Hi,<BR>
<BR>
On Tue, Sep 08, 2009, Srikanth Raju wrote:<BR>
> +/*****************************************************************************<BR>
> + * General structure: SQL object.<BR>
> + *****************************************************************************/<BR>
> +<BR>
> +typedef struct sql_t sql_t;<BR>
> +typedef struct sql_sys_t sql_sys_t;<BR>
> +<BR>
> +struct sql_t<BR>
> +{<BR>
> +    VLC_COMMON_MEMBERS<BR>
> +<BR>
> +    /** Module properties */<BR>
> +    module_t  *p_module;<BR>
> +<BR>
> +    /** Internal data */<BR>
> +    sql_sys_t *p_sys;<BR>
> +<BR>
> +    /** Perform a query with a row-by-row callback function */<BR>
> +    int (*pf_query_callback) ( sql_t *, const char *,<BR>
> +            int (*callback) ( void*, int, char**, char** ), void * );<BR>
> +<BR>
> +    /** Perform a query and return result directly */<BR>
> +    int (*pf_query) ( sql_t *, const char *, char ***, int *, int * );<BR>
> +<BR>
> +    /** Get database tables */<BR>
> +    int (*pf_get_tables) ( sql_t *, char *** );<BR>
> +<BR>
> +    /** Free result of a call to sql_Query or sql_GetTables */<BR>
> +    void (*pf_free) ( sql_t *, char ** );<BR>
> +<BR>
> +    /** vmprintf replacement for SQL */<BR>
> +    char* (*pf_vmprintf) ( const char*, va_list args );<BR>
> +<BR>
<BR>
> +    /** Begin transaction */<BR>
> +    int (*pf_begintransaction) ( sql_t* );<BR>
> +<BR>
> +    /** Commit transaction */<BR>
> +    void (*pf_committransaction) ( sql_t* );<BR>
> +<BR>
> +    /** Rollback transaction */<BR>
> +    void (*pf_rollbacktransaction) ( sql_t* );<BR>
 I am not sure the 'transaction' part need to be in the function name. But if<BR>
you prefer to have it then I think it would be better to use _ to be consistent<BR>
with pf_query_callback and other vlc functions.<BR>
<BR>
> +    /* Open Database */<BR>
> +    p_sql->p_sys->psz_host = var_CreateGetString( p_this, "database-path" );<BR>
 I think it is better to move the needed parameters to open the base into sql_t.<BR>
It will also allow to removes some unacceptable thinks later like:<BR>
<BR>
> +sql_t *__sql_Create( vlc_object_t *p_this, char *psz_name, char* psz_host,<BR>
> +       int i_port, char* psz_user, char* psz_pass )<BR>
> +{<BR>
> +    sql_t *p_sql;<BR>
> +<BR>
> +    p_sql = ( sql_t * ) vlc_custom_create( p_this, sizeof( sql_t ),<BR>
> +                                           VLC_OBJECT_GENERIC, "sql" );<BR>
> +    if( !p_sql )<BR>
> +    {<BR>
> +        msg_Err( p_this, "unable to create sql object" );<BR>
> +        return NULL;<BR>
> +    }<BR>
> +    vlc_object_attach( p_sql, p_this );<BR>
> +<BR>
> +    config_PutPsz( p_sql, "database-path", psz_host );<BR>
> +    config_PutPsz( p_sql, "database-user", psz_user );<BR>
> +    config_PutPsz( p_sql, "database-pass", psz_pass );<BR>
> +    config_PutInt( p_sql, "database-port", i_port );<BR>
 Not acceptable, it need to be moved into sql_t.<BR>
<BR>
Regards,<BR>
<BR>
--<BR>
fenrir<BR>
<BR>
<BR>
<BR>
------------------------------<BR>
<BR>
_______________________________________________<BR>
vlc-devel mailing list<BR>
vlc-devel@videolan.org<BR>
<a href="http://mailman.videolan.org/listinfo/vlc-devel">http://mailman.videolan.org/listinfo/vlc-devel</a><BR>
<BR>
<BR>
End of vlc-devel Digest, Vol 28, Issue 89<BR>
*****************************************<BR>
<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'><BR>
</SPAN></FONT>
</BODY>
</HTML>