X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fdemux%2Fcdg.c;h=ebb18eef47685324b21bdaaea5986e10d3a6a265;hb=2c1ec2e206cea95a137708e76ec4bff6c99dd279;hp=4b6e59d4400afa1613f1174ad79c8270eae4a832;hpb=ad77d955a5dc051976d94d6e08ee0f717ec3a938;p=vlc diff --git a/modules/demux/cdg.c b/modules/demux/cdg.c index 4b6e59d440..ebb18eef47 100644 --- a/modules/demux/cdg.c +++ b/modules/demux/cdg.c @@ -6,19 +6,19 @@ * * Authors: Laurent Aimar * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ /***************************************************************************** @@ -33,8 +33,6 @@ #include #include -#include - /***************************************************************************** * Module descriptor *****************************************************************************/ @@ -47,8 +45,7 @@ vlc_module_begin () set_subcategory( SUBCAT_INPUT_DEMUX ) set_capability( "demux", 3 ) set_callbacks( Open, Close ) - add_shortcut( "cdg" ) - add_shortcut( "subtitle" ) + add_shortcut( "cdg", "subtitle" ) vlc_module_end () /***************************************************************************** @@ -89,9 +86,13 @@ static int Open( vlc_object_t * p_this ) // return VLC_EGENERIC; // } + p_sys = malloc( sizeof( demux_sys_t ) ); + if( unlikely(p_sys == NULL) ) + return VLC_ENOMEM; + p_demux->pf_demux = Demux; p_demux->pf_control = Control; - p_demux->p_sys = p_sys = malloc( sizeof( demux_sys_t ) ); + p_demux->p_sys = p_sys; /* */ es_format_Init( &p_sys->fmt, VIDEO_ES, VLC_CODEC_CDG ); @@ -102,7 +103,7 @@ static int Open( vlc_object_t * p_this ) /* There is CDG_FRAME_RATE frames per second */ date_Init( &p_sys->pts, CDG_FRAME_RATE, 1 ); - date_Set( &p_sys->pts, 1 ); + date_Set( &p_sys->pts, 0 ); return VLC_SUCCESS; } @@ -125,11 +126,14 @@ static int Demux( demux_t *p_demux ) } p_block->i_dts = - p_block->i_pts = date_Increment( &p_sys->pts, 1 ); + p_block->i_pts = VLC_TS_0 + date_Get( &p_sys->pts ); es_out_Control( p_demux->out, ES_OUT_SET_PCR, p_block->i_pts ); es_out_Send( p_demux->out, p_sys->p_es, p_block ); + + date_Increment( &p_sys->pts, 1 ); + return 1; }