X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fcodec%2Fzvbi.c;h=958954f598723bb9b2076f5ec25a83889d336d47;hb=f5f7c36c4351a71129e4d2f6e6a1d03823387713;hp=03f85340186db2c58de7de0c7d584ddc54958c33;hpb=1371457214b9473357de5e8e066d552f168e3e8b;p=vlc diff --git a/modules/codec/zvbi.c b/modules/codec/zvbi.c index 03f8534018..958954f598 100644 --- a/modules/codec/zvbi.c +++ b/modules/codec/zvbi.c @@ -42,6 +42,7 @@ #endif #include +#include #include #include #include @@ -93,6 +94,8 @@ static subpicture_t *Decode( decoder_t *, block_t ** ); #define TELX_LONGTEXT N_( "Output teletext subtitles as text " \ "instead of as RGBA" ) +// #define ZVBI_DEBUG + static int pi_pos_values[] = { 0, 1, 2, 4, 8, 5, 6, 9, 10 }; static const char *ppsz_pos_descriptions[] = { N_("Center"), N_("Left"), N_("Right"), N_("Top"), N_("Bottom"), @@ -107,13 +110,13 @@ vlc_module_begin(); set_callbacks( Open, Close ); add_integer( "vbi-page", 100, NULL, - PAGE_TEXT, PAGE_LONGTEXT, VLC_FALSE ); - add_bool( "vbi-opaque", VLC_TRUE, NULL, - OPAQUE_TEXT, OPAQUE_LONGTEXT, VLC_FALSE ); - add_integer( "vbi-position", 4, NULL, POS_TEXT, POS_LONGTEXT, VLC_FALSE ); + PAGE_TEXT, PAGE_LONGTEXT, false ); + add_bool( "vbi-opaque", true, NULL, + OPAQUE_TEXT, OPAQUE_LONGTEXT, false ); + add_integer( "vbi-position", 4, NULL, POS_TEXT, POS_LONGTEXT, false ); change_integer_list( pi_pos_values, ppsz_pos_descriptions, 0 ); - add_bool( "vbi-text", VLC_FALSE, NULL, - TELX_TEXT, TELX_LONGTEXT, VLC_FALSE ); + add_bool( "vbi-text", false, NULL, + TELX_TEXT, TELX_LONGTEXT, false ); vlc_module_end(); /**************************************************************************** @@ -122,22 +125,22 @@ vlc_module_end(); struct decoder_sys_t { - vbi_decoder * p_vbi_dec; - vbi_dvb_demux * p_dvb_demux; - unsigned int i_wanted_page; - unsigned int i_last_page; - vlc_bool_t b_update; - vlc_bool_t b_opaque; + vbi_decoder * p_vbi_dec; + vbi_dvb_demux * p_dvb_demux; + unsigned int i_wanted_page; + unsigned int i_last_page; + bool b_update; + bool b_opaque; /* Subtitles as text */ - vlc_bool_t b_text; + bool b_text; /* Positioning of Teletext images */ - int i_align; + int i_align; /* Misc */ #if defined(HAVE_FFMPEG_SWSCALE_H) || defined(HAVE_LIBSWSCALE_SWSCALE_H) || defined(HAVE_LIBSWSCALE_TREE) - image_handler_t *p_image; + image_handler_t *p_image; #endif }; @@ -168,17 +171,12 @@ static int Open( vlc_object_t *p_this ) decoder_sys_t *p_sys = NULL; if( p_dec->fmt_in.i_codec != VLC_FOURCC('t','e','l','x') ) - { return VLC_EGENERIC; - } p_dec->pf_decode_sub = Decode; p_sys = p_dec->p_sys = malloc( sizeof(decoder_sys_t) ); if( p_sys == NULL ) - { - msg_Err( p_dec, "out of memory" ); return VLC_ENOMEM; - } memset( p_sys, 0, sizeof(decoder_sys_t) ); #if defined(HAVE_FFMPEG_SWSCALE_H) || defined(HAVE_LIBSWSCALE_SWSCALE_H) || defined(HAVE_LIBSWSCALE_TREE) @@ -186,12 +184,11 @@ static int Open( vlc_object_t *p_this ) if( !p_sys->p_image ) { free( p_sys ); - msg_Err( p_dec, "out of memory" ); return VLC_ENOMEM; } #endif - p_sys->b_update = VLC_FALSE; + p_sys->b_update = false; p_sys->p_vbi_dec = vbi_decoder_new(); p_sys->p_dvb_demux = vbi_dvb_pes_demux_new( NULL, NULL ); @@ -265,7 +262,7 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block ) block_t *p_block; subpicture_t *p_spu = NULL; video_format_t fmt; - vlc_bool_t b_cached = VLC_FALSE; + bool b_cached = false; vbi_page p_page; const uint8_t *p_pos; unsigned int i_left; @@ -302,12 +299,12 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block ) goto error; if( ( p_sys->i_wanted_page == p_sys->i_last_page ) && - ( p_sys->b_update != VLC_TRUE ) ) + ( p_sys->b_update != true ) ) goto error; - p_sys->b_update = VLC_FALSE; + p_sys->b_update = false; p_sys->i_last_page = p_sys->i_wanted_page; -#if 0 +#ifdef ZVBI_DEBUG msg_Dbg( p_dec, "we now have page: %d ready for display", p_sys->i_wanted_page ); #endif @@ -351,9 +348,9 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block ) p_spu->i_start = (mtime_t) p_block->i_dts; p_spu->i_stop = (mtime_t) 0; - p_spu->b_ephemer = VLC_TRUE; - p_spu->b_absolute = VLC_FALSE; - p_spu->b_pausable = VLC_TRUE; + p_spu->b_ephemer = true; + p_spu->b_absolute = false; + p_spu->b_pausable = true; p_spu->i_width = fmt.i_width; p_spu->i_height = fmt.i_height; p_spu->i_original_picture_width = p_page.columns * 12; @@ -379,7 +376,9 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block ) p_spu->p_region->psz_text = strdup( &p_text[8] ); p_spu->p_region->fmt.i_height = p_spu->p_region->fmt.i_visible_height = p_page.rows + 1; +#ifdef ZVBI_DEBUG msg_Info( p_dec, "page %x-%x(%d)\n%s", p_page.pgno, p_page.subno, i_total, p_text ); +#endif } else { @@ -389,10 +388,7 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block ) p_pic = ( picture_t * ) malloc( sizeof( picture_t ) ); if( !p_pic ) - { - msg_Err( p_dec, "out of memory" ); goto error; - } memset( &fmt_in, 0, sizeof( video_format_t ) ); memset( p_pic, 0, sizeof( picture_t ) ); @@ -415,7 +411,7 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block ) p_pic->p->i_lines = p_page.rows * 10; p_pic->p->i_pitch = p_page.columns * 12 * 4; -#if 0 +#ifdef ZVBI_DEBUG msg_Dbg( p_dec, "page %x-%x(%d,%d)", p_page.pgno, p_page.subno, p_page.rows, p_page.columns ); @@ -452,7 +448,7 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block ) #endif } -#undef PIXFMT_RGBA32 +#undef ZVBI_PIXFMT_RGBA32 vbi_unref_page( &p_page ); block_Release( p_block ); @@ -477,18 +473,20 @@ static void event_handler( vbi_event *ev, void *user_data ) if( ev->type == VBI_EVENT_TTX_PAGE ) { - /* msg_Info( p_dec, "Page %03x.%02x ", +#ifdef ZVBI_DEBUG + msg_Info( p_dec, "Page %03x.%02x ", ev->ev.ttx_page.pgno, ev->ev.ttx_page.subno & 0xFF); - */ +#endif if( p_sys->i_last_page == vbi_bcd2dec( ev->ev.ttx_page.pgno ) ) - p_sys->b_update = VLC_TRUE; + p_sys->b_update = true; if( ev->ev.ttx_page.clock_update ) msg_Dbg( p_dec, "clock" ); -/* if( ev->ev.ttx_page.header_update ) +#ifdef ZVBI_DEBUG + if( ev->ev.ttx_page.header_update ) msg_Dbg( p_dec, "header" ); -*/ +#endif } else if( ev->type == VBI_EVENT_CAPTION ) msg_Dbg( p_dec, "Caption line: %x", ev->ev.caption.pgno ); @@ -552,7 +550,7 @@ static int Opaque_32bpp( decoder_t *p_dec, vbi_page p_page, *p_begin = 0; break; /* To make the boxed text "closed captioning" transparent - * change VLC_TRUE to VLC_FALSE. + * change true to false. */ case VBI_OPAQUE: if( p_sys->b_opaque ) @@ -611,7 +609,7 @@ static int Opaque_8bpp( decoder_t *p_dec, vbi_page p_page, *p_begin = 0; break; /* To make the boxed text "closed captioning" transparent - * change VLC_TRUE to VLC_FALSE. + * change true to false. */ case VBI_OPAQUE: if( p_sys->b_opaque ) @@ -641,6 +639,7 @@ static int RequestPage( vlc_object_t *p_this, char const *psz_cmd, vlc_value_t oldval, vlc_value_t newval, void *p_data ) { decoder_sys_t *p_sys = p_data; + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); if( (newval.i_int > 0) && (newval.i_int < 999) ) p_sys->i_wanted_page = newval.i_int; @@ -652,6 +651,7 @@ static int Opaque( vlc_object_t *p_this, char const *psz_cmd, vlc_value_t oldval, vlc_value_t newval, void *p_data ) { decoder_sys_t *p_sys = p_data; + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); if( p_sys ) p_sys->b_opaque = newval.b_bool; @@ -662,6 +662,7 @@ static int Position( vlc_object_t *p_this, char const *psz_cmd, vlc_value_t oldval, vlc_value_t newval, void *p_data ) { decoder_sys_t *p_sys = p_data; + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); if( p_sys ) p_sys->i_align = newval.i_int;