X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=modules%2Faccess%2Fdvdread.c;h=25638523b8e8421e251274520df7fa02c46bd1a8;hb=10fcb9f9c3c73d13340c0bd4153fc4c9c87b7186;hp=cbc28544ec24f4d666938e145ca4f85f6a9bacfa;hpb=bae7c730d18969a1872770fc9d1a6f587dae66c5;p=vlc diff --git a/modules/access/dvdread.c b/modules/access/dvdread.c index cbc28544ec..25638523b8 100644 --- a/modules/access/dvdread.c +++ b/modules/access/dvdread.c @@ -26,13 +26,19 @@ * Preamble *****************************************************************************/ -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include #include #include +#include #include -#include "iso_lang.h" +#include #include "../demux/ps.h" @@ -44,11 +50,21 @@ #include #include -#include -#include -#include -#include -#include +#ifdef HAVE_DVDREAD_DVD_READER_H + #include + #include + #include + #include + #include +#else + #include + #include + #include + #include + #include +#endif + +#include /***************************************************************************** * Module descriptor @@ -79,23 +95,23 @@ "libcss.\n" \ "The default method is: key.") -static const char *psz_css_list[] = { "title", "disc", "key" }; -static const char *psz_css_list_text[] = { N_("title"), N_("Disc"), N_("Key") }; +static const char *const psz_css_list[] = { "title", "disc", "key" }; +static const char *const psz_css_list_text[] = { N_("title"), N_("Disc"), N_("Key") }; static int Open ( vlc_object_t * ); static void Close( vlc_object_t * ); vlc_module_begin(); - set_shortname( _("DVD without menus") ); - set_description( _("DVDRead Input (DVD without menu support)") ); + set_shortname( N_("DVD without menus") ); + set_description( N_("DVDRead Input (DVD without menu support)") ); set_category( CAT_INPUT ); set_subcategory( SUBCAT_INPUT_ACCESS ); add_integer( "dvdread-angle", 1, NULL, ANGLE_TEXT, - ANGLE_LONGTEXT, VLC_FALSE ); + ANGLE_LONGTEXT, false ); add_integer( "dvdread-caching", DEFAULT_PTS_DELAY / 1000, NULL, - CACHING_TEXT, CACHING_LONGTEXT, VLC_TRUE ); + CACHING_TEXT, CACHING_LONGTEXT, true ); add_string( "dvdread-css-method", NULL, NULL, CSSMETHOD_TEXT, - CSSMETHOD_LONGTEXT, VLC_TRUE ); + CSSMETHOD_LONGTEXT, true ); change_string_list( psz_css_list, psz_css_list_text, 0 ); set_capability( "access_demux", 0 ); add_shortcut( "dvd" ); @@ -199,39 +215,24 @@ static int Open( vlc_object_t *p_this ) } } else - psz_name = strdup( p_demux->psz_path ); + psz_name = ToLocaleDup( p_demux->psz_path ); #ifdef WIN32 if( psz_name[0] && psz_name[1] == ':' && psz_name[2] == '\\' && psz_name[3] == '\0' ) psz_name[2] = '\0'; #endif - /* Override environment variable DVDCSS_METHOD with config option - * (FIXME: this creates a small memory leak) */ + /* Override environment variable DVDCSS_METHOD with config option */ psz_dvdcss_env = config_GetPsz( p_demux, "dvdread-css-method" ); if( psz_dvdcss_env && *psz_dvdcss_env ) - { - char *psz_env; - - psz_env = malloc( strlen("DVDCSS_METHOD=") + - strlen( psz_dvdcss_env ) + 1 ); - if( !psz_env ) - { - free( psz_dvdcss_env ); - return VLC_ENOMEM; - } - - sprintf( psz_env, "%s%s", "DVDCSS_METHOD=", psz_dvdcss_env ); - - putenv( psz_env ); - } - if( psz_dvdcss_env ) free( psz_dvdcss_env ); + setenv( "DVDCSS_METHOD", psz_dvdcss_env, 1 ); + free( psz_dvdcss_env ); /* Open dvdread */ if( !(p_dvdread = DVDOpen( psz_name )) ) { msg_Err( p_demux, "DVDRead cannot open source: %s", psz_name ); - intf_UserFatal( p_demux, VLC_FALSE, _("Playback failure"), + intf_UserFatal( p_demux, false, _("Playback failure"), _("DVDRead could not open the disk \"%s\"."), psz_name ); free( psz_name ); return VLC_EGENERIC; @@ -356,7 +357,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) { demux_sys_t *p_sys = p_demux->p_sys; double f, *pf; - vlc_bool_t *pb; + bool *pb; int64_t *pi64; input_title_t ***ppp_title; int *pi_int; @@ -409,8 +410,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) case DEMUX_CAN_SEEK: case DEMUX_CAN_CONTROL_PACE: /* TODO */ - pb = (vlc_bool_t*)va_arg( args, vlc_bool_t * ); - *pb = VLC_TRUE; + pb = (bool*)va_arg( args, bool * ); + *pb = true; return VLC_SUCCESS; case DEMUX_SET_PAUSE_STATE: @@ -553,7 +554,7 @@ static int Demux( demux_t *p_demux ) { msg_Err( p_demux, "read failed for %d/%d blocks at 0x%02x", i_read, i_blocks_once, p_sys->i_cur_block ); - intf_UserFatal( p_demux, VLC_FALSE, _("Playback failure"), + intf_UserFatal( p_demux, false, _("Playback failure"), _("DVDRead could not read %d/%d blocks at 0x%02x."), i_read, i_blocks_once, p_sys->i_cur_block ); return -1; @@ -732,7 +733,7 @@ static void ESNew( demux_t *p_demux, int i_id, int i_lang ) } tk->es = es_out_Add( p_demux->out, &tk->fmt ); - tk->b_seen = VLC_TRUE; + tk->b_seen = true; } /***************************************************************************** @@ -863,7 +864,7 @@ static int DvdReadSetArea( demux_t *p_demux, int i_title, int i_chapter, es_format_Clean( &tk->fmt ); if( tk->es ) es_out_Del( p_demux->out, tk->es ); } - tk->b_seen = VLC_FALSE; + tk->b_seen = false; } if( p_demux->info.i_title != i_title )