From fenrir at elivagar.org Thu Jul 1 00:28:38 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 1 Jul 2010 00:28:38 +0200 Subject: [vlc-devel] [PATCH] support for stream size in imem access module In-Reply-To: <6626613A-67F1-47F2-A0D0-17BB4763BBE6@team-solutions.pl> References: <6626613A-67F1-47F2-A0D0-17BB4763BBE6@team-solutions.pl> Message-ID: <20100630222838.GA3398@elivagar.org> Hi, > @@ -170,6 +174,10 @@ vlc_module_begin() > change_private() > change_safe() > > + add_string ("imem-size", "0", NULL, SIZE_TEXT, SIZE_LONGTEXT, true) > + change_private() > + change_safe() > + > @@ -316,6 +324,11 @@ static int OpenAccess(vlc_object_t *object) > access->pf_seek = NULL; > access->p_sys = (access_sys_t*)sys; > > + // we've got size as string, becouse we have no (u)int64_t var functions > + char * tmpsize = var_InheritString(object, "imem-size"); > + access->info.i_size = strtoull(tmpsize, 0, 10); > + free(tmpsize); Your patch in itself is fine, but I wonder if we shouldn't add (u)int64 config support first. var_* does support int64_t using var_*Time, the only bit missing seems to be config_* part. Anyone against config_ int64_t type support ? (If none, I will try to add it). Regards, -- fenrir From frank.enderle at anamica.de Thu Jul 1 01:12:07 2010 From: frank.enderle at anamica.de (Frank Enderle) Date: Thu, 1 Jul 2010 01:12:07 +0200 Subject: [vlc-devel] [PATCH] 1-of-3: vlc-1.1.0 network poll timeout In-Reply-To: <201006261758.43637.rem@videolan.org> References: <4C228CEE.3080607@anamica.de> <201006260550.56391.rem@videolan.org> <4C25A510.2070602@anamica.de> <201006261758.43637.rem@videolan.org> Message-ID: i just want a possibility to detect a timeout without having to change the system defaults. how this is implemented is not my priority. i just need a solution.. and i'd like to use one whcich is built in vlc so i don't have to patch the source for this purpose.. however changing the system defaults might have an impact on other running applications which also use keepalive sockets. is that that uncommon? cheers, frank On Jun 26, 2010, at 16:58, "R?mi Denis-Courmont" wrote: > On Saturday 26 June 2010 09:58:24 Frank Enderle, you wrote: >> well - maybe i'm wrong.. but if i use SO_KEEPALIVE i'd have to configure >> the system using procfs/sysctl for the timeout. in my case this is not >> really a problem, so i guess i could use the SO_KEEPALIVE feature, but >> as a user of libvlc i would like to be able to configure the timeout on >> a per application base and without root permission. > > It smells like you have a solution looking for a problem rather than a problem > looking for a solution. TCP keep-alives do a completely different thing than > receive timers. > > -- > R?mi Denis-Courmont From rem at videolan.org Thu Jul 1 09:54:41 2010 From: rem at videolan.org (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Thu, 01 Jul 2010 09:54:41 +0200 Subject: [vlc-devel] [PATCH] 1-of-3: vlc-1.1.0 network poll timeout In-Reply-To: References: <4C228CEE.3080607@anamica.de> <201006260550.56391.rem@videolan.org> <4C25A510.2070602@anamica.de> <201006261758.43637.rem@videolan.org> Message-ID: <4090ac21e0268d8bad1a7bacaad05c43@chewa.net> On Thu, 1 Jul 2010 01:12:07 +0200, Frank Enderle wrote: > i just want a possibility to detect a timeout without having to change the > system defaults. how this is implemented is not my priority. i just need a > solution.. and i'd like to use one whcich is built in vlc so i don't have > to patch the source for this purpose.. however changing the system defaults > might have an impact on other running applications which also use keepalive > sockets. is that that uncommon? On the receiving side, you'd have to have a definition of the "timeout". There is no such thing in HTTP (at least in general), where it is perfectly valid, and in some case, even legitimate, to not receive any data for a long period of time. You cannot detect something that does not exist, so that's all. On the sending side, timeouts are built-in by TCP. If you want to detect dead peers even when not sending, then you have two solutions: - application-layer ping/noops (depends on the protocol, not possible for HTTP), - TCP keep-alives (SO_KEEPALIVE at the API level). -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Thu Jul 1 09:57:31 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Thu, 01 Jul 2010 09:57:31 +0200 Subject: [vlc-devel] =?utf-8?q?=5BPATCH=5D_support_for_stream_size_in_imem?= =?utf-8?q?_access=09module?= In-Reply-To: <20100630222838.GA3398@elivagar.org> References: <6626613A-67F1-47F2-A0D0-17BB4763BBE6@team-solutions.pl> <20100630222838.GA3398@elivagar.org> Message-ID: On Thu, 1 Jul 2010 00:28:38 +0200, Laurent Aimar wrote: > Your patch in itself is fine, but I wonder if we shouldn't add (u)int64 > config support first. var_* does support int64_t using var_*Time, the only > bit missing seems to be config_* part. > > Anyone against config_ int64_t type support ? (If none, I will try to add > it). IMHO we should merge int and int64 since configuration and variable values are stored in a union anyway. And yes, I imply that var_*Time() should be gotten rid of. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From fenrir at elivagar.org Thu Jul 1 10:28:03 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 1 Jul 2010 10:28:03 +0200 Subject: [vlc-devel] [PATCH] support for stream size in imem access?module In-Reply-To: References: <6626613A-67F1-47F2-A0D0-17BB4763BBE6@team-solutions.pl> <20100630222838.GA3398@elivagar.org> Message-ID: <20100701082803.GA569@elivagar.org> On Thu, Jul 01, 2010 at 09:57:31AM +0200, R?mi Denis-Courmont wrote: > > On Thu, 1 Jul 2010 00:28:38 +0200, Laurent Aimar > wrote: > > Your patch in itself is fine, but I wonder if we shouldn't add (u)int64 > > config support first. var_* does support int64_t using var_*Time, the > only > > bit missing seems to be config_* part. > > > > Anyone against config_ int64_t type support ? (If none, I will try to > add > > it). > > IMHO we should merge int and int64 since configuration and variable values > are stored in a union anyway. And yes, I imply that var_*Time() should be > gotten rid of. Unless I misunderstood, a union of int and int64 won't behave nicely on big endian CPU ie reading using the int doesn't give you the same value as reading using the int64 even when the value can be stored without loss by both. -- fenrir From logiconcepts819 at gmail.com Thu Jul 1 10:32:59 2010 From: logiconcepts819 at gmail.com (Ronald Wright) Date: Thu, 1 Jul 2010 03:32:59 -0500 Subject: [vlc-devel] [PATCH 1/4] Adds the compressor module to be linked against the math library Message-ID: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> --- configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/configure.ac b/configure.ac index 1a428e7..55e9d8a 100644 --- a/configure.ac +++ b/configure.ac @@ -665,7 +665,7 @@ AC_CHECK_LIB(m,pow,[ VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc ffmpegaltivec i420_rgb faad twolame equalizer spatializer param_eq libvlccore freetype mod mpc dmo quicktime realvideo qt4],[-lm]) ]) AC_CHECK_LIB(m,sqrt,[ - VLC_ADD_LIBS([headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball],[-lm]) + VLC_ADD_LIBS([compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball],[-lm]) ]) AC_CHECK_LIB(m,ceil,[ VLC_ADD_LIBS([access_imem hotkeys mosaic swscale_omap],[-lm]) -- 1.7.0.4 From logiconcepts819 at gmail.com Thu Jul 1 10:33:00 2010 From: logiconcepts819 at gmail.com (Ronald Wright) Date: Thu, 1 Jul 2010 03:33:00 -0500 Subject: [vlc-devel] [PATCH 2/4] Adds the compressor module to VLC In-Reply-To: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> References: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> Message-ID: <1277973182-26616-2-git-send-email-logiconcepts819@gmail.com> --- modules/LIST | 1 + modules/audio_filter/Modules.am | 2 + modules/audio_filter/compressor.c | 975 +++++++++++++++++++++++++++++++++++++ 3 files changed, 978 insertions(+), 0 deletions(-) create mode 100644 modules/audio_filter/compressor.c diff --git a/modules/LIST b/modules/LIST index 820da0a..8f77c57 100644 --- a/modules/LIST +++ b/modules/LIST @@ -72,6 +72,7 @@ $Id$ * chorus_flanger: variable delay audio filter * clone: Clone video filter * colorthres: Theshold color based on similarity to reference color Video filter + * compressor: Dynamic range compressor * converter_fixed: Fixed-point audio format conversions * crop: Crop video filter * croppadd: Crop/Padd image filter diff --git a/modules/audio_filter/Modules.am b/modules/audio_filter/Modules.am index eae73fc..7767cbe 100644 --- a/modules/audio_filter/Modules.am +++ b/modules/audio_filter/Modules.am @@ -1,5 +1,6 @@ SUBDIRS = channel_mixer converter resampler spatializer SOURCES_equalizer = equalizer.c equalizer_presets.h +SOURCES_compressor = compressor.c SOURCES_normvol = normvol.c SOURCES_audiobargraph_a = audiobargraph_a.c SOURCES_param_eq = param_eq.c @@ -9,6 +10,7 @@ SOURCES_chorus_flanger = chorus_flanger.c libvlc_LTLIBRARIES += \ libaudiobargraph_a_plugin.la \ libchorus_flanger_plugin.la \ + libcompressor_plugin.la \ libequalizer_plugin.la \ libnormvol_plugin.la \ libparam_eq_plugin.la \ diff --git a/modules/audio_filter/compressor.c b/modules/audio_filter/compressor.c new file mode 100644 index 0000000..0c60745 --- /dev/null +++ b/modules/audio_filter/compressor.c @@ -0,0 +1,975 @@ +/***************************************************************************** + * compressor.c: dynamic range compressor, ported from plugins from LADSPA SWH + ***************************************************************************** + * Copyright (C) 2010 Ronald Wright + * $Id$ + * + * Author: Ronald Wright + * Original author: Steve Harris + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +/***************************************************************************** + * Preamble + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include + +#include +#include + +#include +#include + +/***************************************************************************** +* Local prototypes. +*****************************************************************************/ + +#define A_TBL (256) + +#define DB_TABLE_SIZE (1024) +#define DB_MIN (-60.0f) +#define DB_MAX (24.0f) +#define LIN_TABLE_SIZE (1024) +#define LIN_MIN (0.0000000002f) +#define LIN_MAX (9.0f) +#define DB_DEFAULT_CUBE +#define RMS_BUF_SIZE (960) +#define LOOKAHEAD_SIZE ((RMS_BUF_SIZE)<<1) + +#define LN_2_2 (0.34657359f) /* ln(2)/2 */ +#define PEAK_BW (0.3f) /* Peak EQ bandwidth (octaves) */ +#define SHELF_SLOPE (1.5f) /* Shelf EQ slope (arb. units) */ + +#define LIN_INTERP(f,a,b) ((a) + (f) * ( (b) - (a) )) +#define LIMIT(v,l,u) (v < l ? l : ( v > u ? u : v )) + +typedef struct +{ + float pf_buf[RMS_BUF_SIZE]; + unsigned int i_pos; + unsigned int i_count; + float f_sum; + +} rms_env; + +typedef struct +{ + struct + { + float pf_vals[AOUT_CHAN_MAX]; + float f_lev_in; + + } p_buf[LOOKAHEAD_SIZE]; + unsigned int i_pos; + unsigned int i_count; + +} lookahead; + +typedef struct +{ + float f_a1; + float f_a2; + float f_b0; + float f_b1; + float f_b2; + float f_x1; + float f_x2; + float f_y1; + float f_y2; + +} biquad; + +struct filter_sys_t +{ + float f_amp; + float pf_as[A_TBL]; + unsigned int i_count; + float f_env; + float f_env_peak; + float f_env_rms; + float f_gain; + float f_gain_out; + rms_env rms; + float f_sum; + lookahead la; + + float pf_db_data[DB_TABLE_SIZE]; + float pf_lin_data[LIN_TABLE_SIZE]; + + biquad p_filters[3 * AOUT_CHAN_MAX]; + + vlc_mutex_t lock; + + float f_lo_pregain; + float f_mid_pregain; + float f_hi_pregain; + float f_rms_peak; + float f_attack; + float f_release; + float f_threshold; + float f_ratio; + float f_knee; + float f_makeup_gain; +}; + +typedef union +{ + float f; + int32_t i; + +} ls_pcast32; + +static int Open ( vlc_object_t * ); +static void Close ( vlc_object_t * ); +static block_t *DoWork ( filter_t *, block_t * ); + +static void DbInit ( filter_sys_t * ); +static float Db2Lin ( float, filter_sys_t * ); +static float Lin2Db ( float, filter_sys_t * ); +#ifdef DB_DEFAULT_CUBE +static float CubeInterp ( const float, const float, const float, + const float, const float ); +#endif +static float FlushToZero ( float ); +static void RoundToZero ( float * ); +static float Max ( float, float ); +static float Clamp ( float, float, float ); +static int Round ( float ); +static float RmsEnvProcess ( rms_env *, const float ); +static void BufferProcess ( float *, int, float, float, lookahead * ); +static void EqSetParams ( biquad *, float, float, float, float ); +static void HsSetParams ( biquad *, float, float, float, float ); +static float BiquadRun ( biquad *, const float ); + +static int LoPregainCallback ( vlc_object_t *, char const *, vlc_value_t, + vlc_value_t, void * ); +static int MidPregainCallback ( vlc_object_t *, char const *, vlc_value_t, + vlc_value_t, void * ); +static int HiPregainCallback ( vlc_object_t *, char const *, vlc_value_t, + vlc_value_t, void * ); +static int RMSPeakCallback ( vlc_object_t *, char const *, vlc_value_t, + vlc_value_t, void * ); +static int AttackCallback ( vlc_object_t *, char const *, vlc_value_t, + vlc_value_t, void * ); +static int ReleaseCallback ( vlc_object_t *, char const *, vlc_value_t, + vlc_value_t, void * ); +static int ThresholdCallback ( vlc_object_t *, char const *, vlc_value_t, + vlc_value_t, void * ); +static int RatioCallback ( vlc_object_t *, char const *, vlc_value_t, + vlc_value_t, void * ); +static int KneeCallback ( vlc_object_t *, char const *, vlc_value_t, + vlc_value_t, void * ); +static int MakeupGainCallback ( vlc_object_t *, char const *, vlc_value_t, + vlc_value_t, void * ); + +/***************************************************************************** + * Module descriptor + *****************************************************************************/ + +#define LO_TEXT N_( "Lo pre-gain" ) +#define LO_LONGTEXT N_( "Set the low pre-gain in dB (-70 ... 6)." ) + +#define MID_TEXT N_( "Mid pre-gain" ) +#define MID_LONGTEXT N_( "Set the mid pre-gain in dB (-70 ... 6)." ) + +#define HI_TEXT N_( "Hi pre-gain" ) +#define HI_LONGTEXT N_( "Set the high pre-gain in dB (-70 ... 6)." ) + +#define RMS_PEAK_TEXT N_( "RMS/peak" ) +#define RMS_PEAK_LONGTEXT N_( "Set the RMS/peak (0 ... 1)." ) + +#define ATTACK_TEXT N_( "Attack time" ) +#define ATTACK_LONGTEXT N_( \ + "Set the attack time in milliseconds (1.5 ... 400)." ) + +#define RELEASE_TEXT N_( "Release time" ) +#define RELEASE_LONGTEXT N_( \ + "Set the release time in milliseconds (2 ... 800)." ) + +#define THRESHOLD_TEXT N_( "Threshold level" ) +#define THRESHOLD_LONGTEXT N_( "Set the threshold level in dB (-30 ... 0)." ) + +#define RATIO_TEXT N_( "Ratio" ) +#define RATIO_LONGTEXT N_( "Set the ratio (n:1) (1 ... 20)." ) + +#define KNEE_TEXT N_( "Knee radius" ) +#define KNEE_LONGTEXT N_( "Set the knee radius in dB (1 ... 10)." ) + +#define MAKEUP_GAIN_TEXT N_( "Makeup gain" ) +#define MAKEUP_GAIN_LONGTEXT N_( "Set the makeup gain in dB (0 ... 24)." ) + +vlc_module_begin() + set_shortname( _("Compressor") ) + set_description( _("Dynamic range compressor") ) + set_capability( "audio filter", 1 ) + set_category( CAT_AUDIO ) + set_subcategory( SUBCAT_AUDIO_AFILTER ) + + add_float( "compressor-lo-pregain", 0.0, NULL, LO_TEXT, + LO_LONGTEXT, false ) + add_float( "compressor-mid-pregain", 0.0, NULL, MID_TEXT, + MID_LONGTEXT, false ) + add_float( "compressor-hi-pregain", 0.0, NULL, HI_TEXT, + HI_LONGTEXT, false ) + add_float( "compressor-rms-peak", 0.0, NULL, RMS_PEAK_TEXT, + RMS_PEAK_LONGTEXT, false ) + add_float( "compressor-attack", 25.0, NULL, ATTACK_TEXT, + ATTACK_LONGTEXT, false ) + add_float( "compressor-release", 100.0, NULL, RELEASE_TEXT, + RELEASE_LONGTEXT, false ) + add_float( "compressor-threshold", -11.0, NULL, THRESHOLD_TEXT, + THRESHOLD_LONGTEXT, false ) + add_float( "compressor-ratio", 8.0, NULL, RATIO_TEXT, + RATIO_LONGTEXT, false ) + add_float( "compressor-knee", 2.5, NULL, KNEE_TEXT, + KNEE_LONGTEXT, false ) + add_float( "compressor-makeup-gain", 7.0, NULL, MAKEUP_GAIN_TEXT, + MAKEUP_GAIN_LONGTEXT, false ) + set_callbacks( Open, Close ) + add_shortcut( "compressor" ) +vlc_module_end () + +/***************************************************************************** + * Open: initialize interface + *****************************************************************************/ + +static int Open( vlc_object_t *p_this ) +{ + filter_t *p_filter = (filter_t*)p_this; + vlc_object_t *p_aout = p_filter->p_parent; + float f_sample_rate = p_filter->fmt_in.audio.i_rate; + struct filter_sys_t *p_sys; + float f_num; + + if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 || + p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 ) + { + p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32; + p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32; + msg_Warn( p_filter, "bad input or output format" ); + return VLC_EGENERIC; + } + if( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, + &p_filter->fmt_out.audio ) ) + { + p_filter->fmt_out.audio = p_filter->fmt_in.audio; + msg_Warn( p_filter, "input and output formats are not similar" ); + return VLC_EGENERIC; + } + + /* Initialize the filter parameter structure */ + p_sys = p_filter->p_sys = calloc( 1, sizeof(*p_sys) ); + if( !p_sys ) + { + return VLC_ENOMEM; + } + + /* Initialize the attack lookup table */ + p_sys->pf_as[0] = 1.0f; + for( int i = 1; i < A_TBL; i++ ) + { + p_sys->pf_as[i] = expf( -1.0f / ( f_sample_rate * i / A_TBL ) ); + } + + /* Calculate the RMS and lookahead sizes from the sample rate */ + f_num = 0.01f * f_sample_rate; + p_sys->rms.i_count = Round( Clamp( 0.5f * f_num, 1.0f, RMS_BUF_SIZE ) ); + p_sys->la.i_count = Round( Clamp( f_num, 1.0f, LOOKAHEAD_SIZE ) ); + + /* Initialize decibel lookup tables */ + DbInit( p_sys ); + + /* Restore the last saved settings */ + p_sys->f_lo_pregain = + var_CreateGetFloat( p_aout, "compressor-lo-pregain" ); + p_sys->f_mid_pregain = + var_CreateGetFloat( p_aout, "compressor-mid-pregain" ); + p_sys->f_hi_pregain = + var_CreateGetFloat( p_aout, "compressor-hi-pregain" ); + p_sys->f_rms_peak = var_CreateGetFloat( p_aout, "compressor-rms-peak" ); + p_sys->f_attack = var_CreateGetFloat( p_aout, "compressor-attack" ); + p_sys->f_release = var_CreateGetFloat( p_aout, "compressor-release" ); + p_sys->f_threshold = var_CreateGetFloat( p_aout, "compressor-threshold" ); + p_sys->f_ratio = var_CreateGetFloat( p_aout, "compressor-ratio" ); + p_sys->f_knee = var_CreateGetFloat( p_aout, "compressor-knee" ); + p_sys->f_makeup_gain = + var_CreateGetFloat( p_aout, "compressor-makeup-gain" ); + + /* Initialize the mutex */ + vlc_mutex_init( &p_sys->lock ); + + /* Add our own callbacks */ + var_AddCallback( p_aout, "compressor-lo-pregain", LoPregainCallback, + p_sys ); + var_AddCallback( p_aout, "compressor-mid-pregain", MidPregainCallback, + p_sys ); + var_AddCallback( p_aout, "compressor-hi-pregain", HiPregainCallback, + p_sys ); + var_AddCallback( p_aout, "compressor-rms-peak", RMSPeakCallback, p_sys ); + var_AddCallback( p_aout, "compressor-attack", AttackCallback, p_sys ); + var_AddCallback( p_aout, "compressor-release", ReleaseCallback, p_sys ); + var_AddCallback( p_aout, "compressor-threshold", ThresholdCallback, p_sys ); + var_AddCallback( p_aout, "compressor-ratio", RatioCallback, p_sys ); + var_AddCallback( p_aout, "compressor-knee", KneeCallback, p_sys ); + var_AddCallback( p_aout, "compressor-makeup-gain", MakeupGainCallback, + p_sys ); + + /* Set the filter function */ + p_filter->pf_audio_filter = DoWork; + + /* At this stage, we are ready! */ + msg_Dbg( p_filter, "compressor successfully initialized" ); + return VLC_SUCCESS; +} + +/***************************************************************************** + * Close: destroy interface + *****************************************************************************/ + +static void Close( vlc_object_t *p_this ) +{ + filter_t *p_filter = (filter_t*)p_this; + vlc_object_t *p_aout = p_filter->p_parent; + struct filter_sys_t *p_sys = p_filter->p_sys; + + /* Remove our callbacks */ + var_DelCallback( p_aout, "compressor-rms-peak", RMSPeakCallback, p_sys ); + var_DelCallback( p_aout, "compressor-attack", AttackCallback, p_sys ); + var_DelCallback( p_aout, "compressor-release", ReleaseCallback, p_sys ); + var_DelCallback( p_aout, "compressor-threshold", ThresholdCallback, p_sys ); + var_DelCallback( p_aout, "compressor-ratio", RatioCallback, p_sys ); + var_DelCallback( p_aout, "compressor-knee", KneeCallback, p_sys ); + var_DelCallback( p_aout, "compressor-makeup-gain", MakeupGainCallback, + p_sys ); + + /* Destroy the mutex */ + vlc_mutex_destroy( &p_sys->lock ); + + /* Destroy the filter parameter structure */ + free( p_sys ); +} + +/***************************************************************************** + * DoWork: process samples buffer + *****************************************************************************/ + +static block_t * DoWork( filter_t * p_filter, block_t * p_in_buf ) +{ + int i_samples = p_in_buf->i_nb_samples; + int i_channels = aout_FormatNbChannels( &p_filter->fmt_in.audio ); + float *pf_buf = (float*)p_in_buf->p_buffer; + float f_sample_rate = p_filter->fmt_in.audio.i_rate; + + float f_lo_pregain; + float f_mid_pregain; + float f_hi_pregain; + float f_rms_peak; + float f_attack; + float f_release; + float f_threshold; + float f_ratio; + float f_knee; + float f_makeup_gain; + + float f_amp; + float *pf_as; + float f_env; + float f_env_peak; + float f_env_rms; + float f_gain; + float f_gain_out; + rms_env *p_rms; + float f_sum; + lookahead *p_la; + biquad *p_filters; + + float f_ga; + float f_gr; + float f_rs; + float f_mug; + float f_knee_min; + float f_knee_max; + float f_ef_a; + float f_ef_ai; + + /* Current parameters */ + struct filter_sys_t *p_sys = p_filter->p_sys; + + /* Fetch the configurable parameters */ + vlc_mutex_lock( &p_sys->lock ); + + f_lo_pregain = p_sys->f_lo_pregain; /* Lo pre-gain (dB) */ + f_mid_pregain = p_sys->f_mid_pregain; /* Mid pre-gain (dB) */ + f_hi_pregain = p_sys->f_hi_pregain; /* High pre-gain (dB) */ + f_rms_peak = p_sys->f_rms_peak; /* RMS/peak */ + f_attack = p_sys->f_attack; /* Attack time (ms) */ + f_release = p_sys->f_release; /* Release time (ms) */ + f_threshold = p_sys->f_threshold; /* Threshold level (dB) */ + f_ratio = p_sys->f_ratio; /* Ratio (n:1) */ + f_knee = p_sys->f_knee; /* Knee radius (dB) */ + f_makeup_gain = p_sys->f_makeup_gain; /* Makeup gain (dB) */ + + vlc_mutex_unlock( &p_sys->lock ); + + /* Fetch the internal parameters */ + f_amp = p_sys->f_amp; + pf_as = p_sys->pf_as; + f_env = p_sys->f_env; + f_env_peak = p_sys->f_env_peak; + f_env_rms = p_sys->f_env_rms; + f_gain = p_sys->f_gain; + f_gain_out = p_sys->f_gain_out; + p_rms = &p_sys->rms; + f_sum = p_sys->f_sum; + p_la = &p_sys->la; + p_filters = p_sys->p_filters; + + /* Prepare the equalizer filter info */ + for( int i_chan = 0; i_chan < i_channels; i_chan++ ) + { + EqSetParams( &p_filters[3 * i_chan + 0], 100.0f, f_lo_pregain, + PEAK_BW, f_sample_rate ); + EqSetParams( &p_filters[3 * i_chan + 1], 1000.0f, f_mid_pregain, + PEAK_BW, f_sample_rate ); + HsSetParams( &p_filters[3 * i_chan + 2], 10000.0f, f_hi_pregain, + SHELF_SLOPE, f_sample_rate ); + } + + /* Prepare other compressor parameters */ + f_ga = f_attack < 2.0f ? 0.0f : + pf_as[Round( f_attack * 0.001f * ( A_TBL - 1 ) )]; + f_gr = pf_as[Round( f_release * 0.001f * ( A_TBL - 1 ) )]; + f_rs = ( f_ratio - 1.0f ) / f_ratio; + f_mug = Db2Lin( f_makeup_gain, p_sys ); + f_knee_min = Db2Lin( f_threshold - f_knee, p_sys ); + f_knee_max = Db2Lin( f_threshold + f_knee, p_sys ); + f_ef_a = f_ga * 0.25f; + f_ef_ai = 1.0f - f_ef_a; + + /* Process the current buffer */ + for( int i = 0; i < i_samples; i++ ) + { + float f_lev_in_old, f_lev_in_new; + + /* First, pass the audio through the equalizer (ported from dj_eq_1901 + * plugin) */ + for( int i_chan = 0; i_chan < i_channels; i_chan++ ) + { + pf_buf[i_chan] = BiquadRun( &p_filters[3 * i_chan + 0], + pf_buf[i_chan] ); + pf_buf[i_chan] = BiquadRun( &p_filters[3 * i_chan + 1], + pf_buf[i_chan] ); + pf_buf[i_chan] = BiquadRun( &p_filters[3 * i_chan + 2], + pf_buf[i_chan] ); + } + + /* Now, compress the pre-equalized audio (ported from sc4_1882 + * plugin with a few modifications) */ + + /* Fetch the old delayed buffer value */ + f_lev_in_old = p_la->p_buf[p_la->i_pos].f_lev_in; + + /* Find the peak value of current sample. This becomes the new delayed + * buffer value that replaces the old one in the lookahead array */ + f_lev_in_new = fabs( pf_buf[0] ); + for( int i_chan = 1; i_chan < i_channels; i_chan++ ) + { + f_lev_in_new = Max( f_lev_in_new, fabs( pf_buf[i_chan] ) ); + } + p_la->p_buf[p_la->i_pos].f_lev_in = f_lev_in_new; + + /* Add the square of the peak value to a running sum */ + f_sum += f_lev_in_new * f_lev_in_new; + + /* Update the RMS envelope */ + if( f_amp > f_env_rms ) + { + f_env_rms = f_env_rms * f_ga + f_amp * ( 1.0f - f_ga ); + } + else + { + f_env_rms = f_env_rms * f_gr + f_amp * ( 1.0f - f_gr ); + } + RoundToZero( &f_env_rms ); + + /* Update the peak envelope */ + if( f_lev_in_old > f_env_peak ) + { + f_env_peak = f_env_peak * f_ga + f_lev_in_old * ( 1.0f - f_ga ); + } + else + { + f_env_peak = f_env_peak * f_gr + f_lev_in_old * ( 1.0f - f_gr ); + } + RoundToZero( &f_env_peak ); + + /* Process the RMS value and update the output gain every 4 samples */ + if( ( p_sys->i_count++ & 3 ) == 3 ) + { + /* Process the RMS value by placing in the mean square value, and + * reset the running sum */ + f_amp = RmsEnvProcess( p_rms, f_sum * 0.25f ); + f_sum = 0.0f; + if( isnan( f_env_rms ) ) + { + /* This can happen sometimes, but I don't know why. */ + f_env_rms = 0.0f; + } + + /* Find the superposition of the RMS and peak envelopes */ + f_env = LIN_INTERP( f_rms_peak, f_env_rms, f_env_peak ); + + /* Update the output gain */ + if( f_env <= f_knee_min ) + { + /* Gain below the knee (and below the threshold) */ + f_gain_out = 1.0f; + } + else if( f_env < f_knee_max ) + { + /* Gain within the knee */ + const float f_x = -( f_threshold + - f_knee - Lin2Db( f_env, p_sys ) ) / f_knee; + f_gain_out = Db2Lin( -f_knee * f_rs * f_x * f_x * 0.25f, + p_sys ); + } + else + { + /* Gain above the knee (and above the threshold) */ + f_gain_out = Db2Lin( ( f_threshold - Lin2Db( f_env, p_sys ) ) + * f_rs, p_sys ); + } + } + + /* Find the total gain */ + f_gain = f_gain * f_ef_a + f_gain_out * f_ef_ai; + + /* Write the resulting buffer to the output */ + BufferProcess( pf_buf, i_channels, f_gain, f_mug, p_la ); + pf_buf += i_channels; + } + + /* Update the internal parameters */ + p_sys->f_sum = f_sum; + p_sys->f_amp = f_amp; + p_sys->f_gain = f_gain; + p_sys->f_gain_out = f_gain_out; + p_sys->f_env = f_env; + p_sys->f_env_rms = f_env_rms; + p_sys->f_env_peak = f_env_peak; + + return p_in_buf; +} + +/***************************************************************************** + * Helper functions for compressor + *****************************************************************************/ + +static void DbInit( filter_sys_t * p_sys ) +{ + float *pf_lin_data = p_sys->pf_lin_data; + float *pf_db_data = p_sys->pf_db_data; + + /* Fill linear lookup table */ + for( int i = 0; i < LIN_TABLE_SIZE; i++ ) + { + pf_lin_data[i] = powf( 10.0f, ( ( DB_MAX - DB_MIN ) * + (float)i / LIN_TABLE_SIZE + DB_MIN ) / 20.0f ); + } + + /* Fill logarithmic lookup table */ + for( int i = 0; i < DB_TABLE_SIZE; i++ ) + { + pf_db_data[i] = 20.0f * log10f( ( LIN_MAX - LIN_MIN ) * + (float)i / DB_TABLE_SIZE + LIN_MIN ); + } +} + +static float Db2Lin( float f_db, filter_sys_t * p_sys ) +{ + float f_scale = ( f_db - DB_MIN ) * LIN_TABLE_SIZE / ( DB_MAX - DB_MIN ); + int i_base = Round( f_scale - 0.5f ); + float f_ofs = f_scale - i_base; + float *pf_lin_data = p_sys->pf_lin_data; + + if( i_base < 1 ) + { + return 0.0f; + } + else if( i_base > LIN_TABLE_SIZE - 3 ) + { + return pf_lin_data[LIN_TABLE_SIZE - 2]; + } + +#ifdef DB_DEFAULT_CUBE + return CubeInterp( f_ofs, pf_lin_data[i_base - 1], + pf_lin_data[i_base], + pf_lin_data[i_base + 1], + pf_lin_data[i_base + 2] ); +#else + return ( 1.0f - f_ofs ) * pf_lin_data[i_base] + + f_ofs * pf_lin_data[i_base + 1]; +#endif +} + +static float Lin2Db( float f_lin, filter_sys_t * p_sys ) +{ + float f_scale = ( f_lin - LIN_MIN ) * DB_TABLE_SIZE / ( LIN_MAX - LIN_MIN ); + int i_base = Round( f_scale - 0.5f ); + float f_ofs = f_scale - i_base; + float *pf_db_data = p_sys->pf_db_data; + + if( i_base < 2 ) + { + return pf_db_data[2] * f_scale * 0.5f - 23.0f * ( 2.0f - f_scale ); + } + else if( i_base > DB_TABLE_SIZE - 3 ) + { + return pf_db_data[DB_TABLE_SIZE - 2]; + } + +#ifdef DB_DEFAULT_CUBE + return CubeInterp( f_ofs, pf_db_data[i_base - 1], + pf_db_data[i_base], + pf_db_data[i_base + 1], + pf_db_data[i_base + 2] ); +#else + return ( 1.0f - f_ofs ) * pf_db_data[i_base] + + f_ofs * pf_db_data[i_base + 1]; +#endif +} + +#ifdef DB_DEFAULT_CUBE +/* Cubic interpolation function */ +static float CubeInterp( const float f_fr, const float f_inm1, + const float f_in, + const float f_inp1, + const float f_inp2 ) +{ + return f_in + 0.5f * f_fr * ( f_inp1 - f_inm1 + + f_fr * ( 4.0f * f_inp1 + 2.0f * f_inm1 - 5.0f * f_in - f_inp2 + + f_fr * ( 3.0f * ( f_in - f_inp1 ) - f_inm1 + f_inp2 ) ) ); +} +#endif + +static float FlushToZero( float f_x ) +{ + ls_pcast32 v; + + v.f = f_x; + + /* original: return ( v.i & 0x7f800000 ) == 0 ? 0.0f : f_x; + * version from Tim Blechmann */ + return ( v.i & 0x7f800000 ) < 0x08000000 ? 0.0f : f_x; +} + +/* Zero out denormals by adding and subtracting a small number, from Laurent + * de Soras */ +static void RoundToZero( float *pf_x ) +{ + static const float f_anti_denormal = 1e-18; + + *pf_x += f_anti_denormal; + *pf_x -= f_anti_denormal; +} + +/* A set of branchless clipping operations from Laurent de Soras */ + +static float Max( float f_x, float f_a ) +{ + f_x -= f_a; + f_x += fabs( f_x ); + f_x *= 0.5; + f_x += f_a; + + return f_x; +} + +static float Clamp( float f_x, float f_a, float f_b ) +{ + const float f_x1 = fabs( f_x - f_a ); + const float f_x2 = fabs( f_x - f_b ); + + f_x = f_x1 + f_a + f_b; + f_x -= f_x2; + f_x *= 0.5; + + return f_x; +} + +/* Round float to int using IEEE int* hack */ +static int Round( float f_x ) +{ + ls_pcast32 p; + + p.f = f_x; + p.f += ( 3 << 22 ); + + return p.i - 0x4b400000; +} + +/* Calculate current level from root-mean-squared of circular buffer ("RMS") */ +static float RmsEnvProcess( rms_env * p_r, const float f_x ) +{ + /* Remove the old term from the sum */ + p_r->f_sum -= p_r->pf_buf[p_r->i_pos]; + + /* Add the new term to the sum */ + p_r->f_sum += f_x; + + /* If the sum is small enough, make it zero */ + if( p_r->f_sum < 1.0e-6 ) + { + p_r->f_sum = 0.0f; + } + + /* Replace the old term in the array with the new one */ + p_r->pf_buf[p_r->i_pos] = f_x; + + /* Go to the next position for the next RMS calculation */ + p_r->i_pos = ( p_r->i_pos + 1 ) % ( p_r->i_count ); + + /* Return the RMS value */ + return sqrt( p_r->f_sum / p_r->i_count ); +} + +/* Output the compressed delayed buffer and store the current buffer. Uses a + * circular array, just like the one used in calculating the RMS of the buffer + */ +static void BufferProcess( float * pf_buf, int i_channels, float f_gain, + float f_mug, lookahead * p_la ) +{ + /* Loop through every channel */ + for( int i_chan = 0; i_chan < i_channels; i_chan++ ) + { + float f_x = pf_buf[i_chan]; /* Current buffer value */ + + /* Output the compressed delayed buffer value */ + pf_buf[i_chan] = p_la->p_buf[p_la->i_pos].pf_vals[i_chan] + * f_gain * f_mug; + + /* Update the delayed buffer value */ + p_la->p_buf[p_la->i_pos].pf_vals[i_chan] = f_x; + } + + /* Go to the next delayed buffer value for the next run */ + p_la->i_pos = ( p_la->i_pos + 1 ) % ( p_la->i_count ); +} + +static void EqSetParams( biquad *p_f, float f_fc, float f_gain, float f_bw, + float f_sr ) +{ + float f_w = 2.0f * M_PI * LIMIT( f_fc, 1.0f, f_sr / 2.0f ) / f_sr; + float f_cw = cosf( f_w ); + float f_sw = sinf( f_w ); + float f_J = pow( 10.0f, f_gain * 0.025f ); + float f_g = f_sw * sinhf( LN_2_2 * LIMIT( f_bw, 0.0001f, 4.0f ) + * f_w / f_sw ); + float f_a0r = 1.0f / ( 1.0f + ( f_g / f_J ) ); + + p_f->f_b0 = ( 1.0f + ( f_g * f_J ) ) * f_a0r; + p_f->f_b1 = ( -2.0f * f_cw ) * f_a0r; + p_f->f_b2 = ( 1.0f - ( f_g * f_J ) ) * f_a0r; + p_f->f_a1 = -( p_f->f_b1 ); + p_f->f_a2 = ( ( f_g / f_J ) - 1.0f ) * f_a0r; +} + +static void HsSetParams( biquad *p_f, float f_fc, float f_gain, float f_slope, + float f_sr ) +{ + float f_w = 2.0f * M_PI * LIMIT( f_fc, 1.0f, f_sr / 2.0f ) / f_sr; + float f_cw = cosf( f_w ); + float f_sw = sinf( f_w ); + float f_A = powf( 10.0f, f_gain * 0.025f ); + float f_b = sqrt( ( ( 1.0f + f_A * f_A ) / LIMIT( f_slope, 0.0001f, 1.0f ) ) + - ( ( f_A - 1.0f ) * ( f_A - 1.0f ) ) ); + + float f_apc = f_cw * ( f_A + 1.0f ); + float f_amc = f_cw * ( f_A - 1.0f ); + float f_bs = f_b * f_sw; + float f_a0r = 1.0f / ( f_A + 1.0f - f_amc + f_bs ); + + p_f->f_b0 = f_a0r * f_A * ( f_A + 1.0f + f_amc + f_bs ); + p_f->f_b1 = f_a0r * -2.0f * f_A * ( f_A - 1.0f + f_apc ); + p_f->f_b2 = f_a0r * f_A * ( f_A + 1.0f + f_amc - f_bs ); + p_f->f_a1 = f_a0r * -2.0f * ( f_A - 1.0f - f_apc ); + p_f->f_a2 = f_a0r * ( -f_A - 1.0f + f_amc + f_bs ); +} + +static float BiquadRun( biquad *p_f, const float f_x ) +{ + float f_y; + + f_y = p_f->f_b0 * f_x + p_f->f_b1 * p_f->f_x1 + p_f->f_b2 * p_f->f_x2 + + p_f->f_a1 * p_f->f_y1 + p_f->f_a2 * p_f->f_y2; + f_y = FlushToZero( f_y ); + p_f->f_x2 = p_f->f_x1; + p_f->f_x1 = f_x; + p_f->f_y2 = p_f->f_y1; + p_f->f_y1 = f_y; + + return f_y; +} + +/***************************************************************************** + * Callback functions + *****************************************************************************/ + +static int LoPregainCallback( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, + void * p_data ) +{ + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); + filter_sys_t *p_sys = p_data; + + vlc_mutex_lock( &p_sys->lock ); + p_sys->f_lo_pregain = Clamp( newval.f_float, -70.0f, 6.0f ); + vlc_mutex_unlock( &p_sys->lock ); + + return VLC_SUCCESS; +} + +static int MidPregainCallback( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, + void * p_data ) +{ + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); + filter_sys_t *p_sys = p_data; + + vlc_mutex_lock( &p_sys->lock ); + p_sys->f_mid_pregain = Clamp( newval.f_float, -70.0f, 6.0f ); + vlc_mutex_unlock( &p_sys->lock ); + + return VLC_SUCCESS; +} + +static int HiPregainCallback( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, + void * p_data ) +{ + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); + filter_sys_t *p_sys = p_data; + + vlc_mutex_lock( &p_sys->lock ); + p_sys->f_hi_pregain = Clamp( newval.f_float, -70.0f, 6.0f ); + vlc_mutex_unlock( &p_sys->lock ); + + return VLC_SUCCESS; +} + +static int RMSPeakCallback( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, + void * p_data ) +{ + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); + filter_sys_t *p_sys = p_data; + + vlc_mutex_lock( &p_sys->lock ); + p_sys->f_rms_peak = Clamp( newval.f_float, 0.0f, 1.0f ); + vlc_mutex_unlock( &p_sys->lock ); + + return VLC_SUCCESS; +} + +static int AttackCallback( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, + void * p_data ) +{ + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); + filter_sys_t *p_sys = p_data; + + vlc_mutex_lock( &p_sys->lock ); + p_sys->f_attack = Clamp( newval.f_float, 1.5f, 400.0f ); + vlc_mutex_unlock( &p_sys->lock ); + + return VLC_SUCCESS; +} + +static int ReleaseCallback( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, + void * p_data ) +{ + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); + filter_sys_t *p_sys = p_data; + + vlc_mutex_lock( &p_sys->lock ); + p_sys->f_release = Clamp( newval.f_float, 2.0f, 800.0f ); + vlc_mutex_unlock( &p_sys->lock ); + + return VLC_SUCCESS; +} + +static int ThresholdCallback( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, + void * p_data ) +{ + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); + filter_sys_t *p_sys = p_data; + + vlc_mutex_lock( &p_sys->lock ); + p_sys->f_threshold = Clamp( newval.f_float, -30.0f, 0.0f ); + vlc_mutex_unlock( &p_sys->lock ); + + return VLC_SUCCESS; +} + +static int RatioCallback( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, + void * p_data ) +{ + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); + filter_sys_t *p_sys = p_data; + + vlc_mutex_lock( &p_sys->lock ); + p_sys->f_ratio = Clamp( newval.f_float, 1.0f, 20.0f ); + vlc_mutex_unlock( &p_sys->lock ); + + return VLC_SUCCESS; +} + +static int KneeCallback( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, + void * p_data ) +{ + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); + filter_sys_t *p_sys = p_data; + + vlc_mutex_lock( &p_sys->lock ); + p_sys->f_knee = Clamp( newval.f_float, 1.0f, 10.0f ); + vlc_mutex_unlock( &p_sys->lock ); + + return VLC_SUCCESS; +} + +static int MakeupGainCallback( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, + void * p_data ) +{ + VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); + filter_sys_t *p_sys = p_data; + + vlc_mutex_lock( &p_sys->lock ); + p_sys->f_makeup_gain = Clamp( newval.f_float, 0.0f, 24.0f ); + vlc_mutex_unlock( &p_sys->lock ); + + return VLC_SUCCESS; +} -- 1.7.0.4 From logiconcepts819 at gmail.com Thu Jul 1 10:33:01 2010 From: logiconcepts819 at gmail.com (Ronald Wright) Date: Thu, 1 Jul 2010 03:33:01 -0500 Subject: [vlc-devel] [PATCH 3/4] Adjusts the scores of other audio filter modules to suit the compressor module In-Reply-To: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> References: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> Message-ID: <1277973182-26616-3-git-send-email-logiconcepts819@gmail.com> --- modules/audio_filter/channel_mixer/mono.c | 2 +- modules/audio_filter/channel_mixer/trivial.c | 2 +- modules/audio_filter/converter/format.c | 2 +- modules/audio_filter/resampler/ugly.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/audio_filter/channel_mixer/mono.c b/modules/audio_filter/channel_mixer/mono.c index 19b3969..31d78e5 100644 --- a/modules/audio_filter/channel_mixer/mono.c +++ b/modules/audio_filter/channel_mixer/mono.c @@ -106,7 +106,7 @@ static const uint32_t pi_channels_out[] = *****************************************************************************/ vlc_module_begin () set_description( N_("Audio filter for stereo to mono conversion") ) - set_capability( "audio filter", 2 ) + set_capability( "audio filter", 3 ) set_category( CAT_AUDIO ) set_subcategory( SUBCAT_AUDIO_AFILTER ) set_callbacks( OpenFilter, CloseFilter ) diff --git a/modules/audio_filter/channel_mixer/trivial.c b/modules/audio_filter/channel_mixer/trivial.c index b76aa90..9e4df9f 100644 --- a/modules/audio_filter/channel_mixer/trivial.c +++ b/modules/audio_filter/channel_mixer/trivial.c @@ -46,7 +46,7 @@ static block_t *DoWork( filter_t *, block_t * ); *****************************************************************************/ vlc_module_begin () set_description( N_("Audio filter for trivial channel mixing") ) - set_capability( "audio filter", 1 ) + set_capability( "audio filter", 2 ) set_category( CAT_AUDIO ) set_subcategory( SUBCAT_AUDIO_MISC ) set_callbacks( Create, NULL ) diff --git a/modules/audio_filter/converter/format.c b/modules/audio_filter/converter/format.c index bef50b2..1e354a1 100644 --- a/modules/audio_filter/converter/format.c +++ b/modules/audio_filter/converter/format.c @@ -49,7 +49,7 @@ vlc_module_begin() set_description(N_("Audio filter for PCM format conversion")) set_category(CAT_AUDIO) set_subcategory(SUBCAT_AUDIO_MISC) - set_capability("audio filter", 1) + set_capability("audio filter", 2) set_callbacks(Open, Close) vlc_module_end() diff --git a/modules/audio_filter/resampler/ugly.c b/modules/audio_filter/resampler/ugly.c index a1a46cf..6d719e5 100644 --- a/modules/audio_filter/resampler/ugly.c +++ b/modules/audio_filter/resampler/ugly.c @@ -46,7 +46,7 @@ static block_t *DoWork( filter_t *, block_t * ); *****************************************************************************/ vlc_module_begin () set_description( N_("Audio filter for ugly resampling") ) - set_capability( "audio filter", 2 ) + set_capability( "audio filter", 3 ) set_category( CAT_AUDIO ) set_subcategory( SUBCAT_AUDIO_MISC ) set_callbacks( Create, NULL ) -- 1.7.0.4 From logiconcepts819 at gmail.com Thu Jul 1 10:33:02 2010 From: logiconcepts819 at gmail.com (Ronald Wright) Date: Thu, 1 Jul 2010 03:33:02 -0500 Subject: [vlc-devel] [PATCH 4/4] Adds the user interface to the compressor module In-Reply-To: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> References: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> Message-ID: <1277973182-26616-4-git-send-email-logiconcepts819@gmail.com> --- modules/gui/qt4/components/extended_panels.cpp | 174 ++++++++++++++++++++++++ modules/gui/qt4/components/extended_panels.hpp | 27 ++++ modules/gui/qt4/dialogs/extended.cpp | 3 + 3 files changed, 204 insertions(+), 0 deletions(-) diff --git a/modules/gui/qt4/components/extended_panels.cpp b/modules/gui/qt4/components/extended_panels.cpp index 874277a..bc3d661 100644 --- a/modules/gui/qt4/components/extended_panels.cpp +++ b/modules/gui/qt4/components/extended_panels.cpp @@ -1117,6 +1117,180 @@ void Equalizer::addCallbacks( aout_instance_t *p_aout ) **********************************************************************/ /********************************************************************** + * Dynamic range compressor + **********************************************************************/ +static const char *psz_comp_control_names[] = +{ + "compressor-lo-pregain", "compressor-mid-pregain", "compressor-hi-pregain", + "compressor-rms-peak", "compressor-attack", "compressor-release", + "compressor-threshold", "compressor-ratio", "compressor-knee", + "compressor-makeup-gain" +}; + +static const char *psz_comp_control_descs[] = +{ + "Lo\npre-gain", "Mid\npre-gain", "Hi\npre-gain", "RMS/peak", "Attack", + "Release", "Threshold", "Ratio", "Knee\nradius", "Makeup\ngain" +}; + +static const char *psz_comp_control_units[] = +{ + " dB", " dB", " dB", "", " ms", " ms", " dB", ":1", " dB", " dB" +}; + +static const float f_comp_min_max_val_res_data[] = +{ + // min max value resolution + //---- ------ ------ ---------- + -70.0f, 6.0f, 0.00f, 0.010f, // Lo pre-gain + -70.0f, 6.0f, 0.00f, 0.010f, // Mid pre-gain + -70.0f, 6.0f, 0.00f, 0.010f, // Hi pre-gain + 0.0f, 1.0f, 0.00f, 0.001f, // RMS/peak + 1.5f, 400.0f, 25.00f, 0.100f, // Attack + 2.0f, 800.0f, 100.00f, 0.100f, // Release + -30.0f, 0.0f, -11.00f, 0.010f, // Threshold + 1.0f, 20.0f, 8.00f, 0.010f, // Ratio + 1.0f, 10.0f, 2.50f, 0.010f, // Knee radius + 0.0f, 24.0f, 7.00f, 0.010f // Makeup gain +}; + +Compressor::Compressor( intf_thread_t *_p_intf, QWidget *_parent ) : + QWidget( _parent ) , p_intf( _p_intf ) +{ + QFont smallFont = QApplication::font( static_cast( 0 ) ); + smallFont.setPointSize( smallFont.pointSize() - 3 ); + + QGridLayout *layout = new QGridLayout( this ); + layout->setMargin( 0 ); + + enableCheck = new QCheckBox( qtr( "Enable dynamic range compressor" ) ); + layout->addWidget( enableCheck, 0, 0, 1, NUM_CP_CTRL ); + + for( int i = 0 ; i < NUM_CP_CTRL ; i++ ) + { + compCtrl[i] = new QSlider( Qt::Vertical ); + + const int i_min = (int)( f_comp_min_max_val_res_data[4 * i + 0] + / f_comp_min_max_val_res_data[4 * i + 3] ); + const int i_max = (int)( f_comp_min_max_val_res_data[4 * i + 1] + / f_comp_min_max_val_res_data[4 * i + 3] ); + const int i_val = (int)( f_comp_min_max_val_res_data[4 * i + 2] + / f_comp_min_max_val_res_data[4 * i + 3] ); + + compCtrl[i]->setMinimum( i_min ); + compCtrl[i]->setMaximum( i_max ); + compCtrl[i]->setValue( i_val ); + oldControlVars[i] = f_comp_min_max_val_res_data[4 * i + 2]; + CONNECT( compCtrl[i], valueChanged( int ), this, setInitValues() ); + ctrl_texts[i] = new QLabel( qtr( psz_comp_control_descs[i] ) + + qtr( "\n" ) ); + ctrl_texts[i]->setFont( smallFont ); + ctrl_texts[i]->setAlignment( Qt::AlignHCenter ); + ctrl_readout[i] = new QLabel( qtr( "" ) ); + ctrl_readout[i]->setFont( smallFont ); + ctrl_readout[i]->setAlignment( Qt::AlignHCenter ); + layout->addWidget( compCtrl[i], 1, i, Qt::AlignHCenter ); + layout->addWidget( ctrl_readout[i], 2, i, Qt::AlignHCenter ); + layout->addWidget( ctrl_texts[i], 3, i, Qt::AlignHCenter ); + } + + BUTTONACT( enableCheck, enable() ); + + /* Write down initial values */ + aout_instance_t *p_aout = THEMIM->getAout(); + char *psz_af; + + if( p_aout ) + { + psz_af = var_GetNonEmptyString( p_aout, "audio-filter" ); + for( int i = 0; i < NUM_CP_CTRL; i++ ) + { + controlVars[i] = var_GetFloat( p_aout, + psz_comp_control_names[i] ); + } + vlc_object_release( p_aout ); + } + else + { + psz_af = config_GetPsz( p_intf, "audio-filter" ); + for( int i = 0; i < NUM_CP_CTRL; i++ ) + { + controlVars[i] = config_GetFloat( p_intf, + psz_comp_control_names[i] ); + } + } + if( psz_af && strstr( psz_af, "compressor" ) != NULL ) + { + enableCheck->setChecked( true ); + } + free( psz_af ); + enable( enableCheck->isChecked() ); + updateSliders( controlVars ); + setValues( controlVars ); +} + +void Compressor::enable() +{ + bool en = enableCheck->isChecked(); + aout_EnableFilter( THEPL, "compressor", en ); + enable( en ); +} + +void Compressor::enable( bool en ) +{ + for( int i = 0 ; i < NUM_CP_CTRL ; i++ ) + { + compCtrl[i]->setEnabled( en ); + ctrl_texts[i]->setEnabled( en ); + ctrl_readout[i]->setEnabled( en ); + } +} + +void Compressor::updateSliders( float * controlVars ) +{ + for( int i = 0 ; i < NUM_CP_CTRL ; i++ ) + { + if( oldControlVars[i] != controlVars[i] ) + { + const int i_val = (int)( controlVars[i] + / f_comp_min_max_val_res_data[4 * i + 3] ); + compCtrl[i]->setValue( i_val ); + } + } +} + +void Compressor::setInitValues() +{ + setValues( controlVars ); +} + +void Compressor::setValues( float * controlVars ) +{ + aout_instance_t *p_aout = THEMIM->getAout(); + + for( int i = 0 ; i < NUM_CP_CTRL ; i++ ) + { + float f = (float)( compCtrl[i]->value() ) + * ( f_comp_min_max_val_res_data[4 * i + 3] ); + ctrl_readout[i]->setText( QString::number( f, 'f', 1 ) + + qtr( psz_comp_control_units[i] ) ); + if( oldControlVars[i] != f ) + { + if( p_aout ) + { + var_SetFloat( p_aout, psz_comp_control_names[i], f ); + } + config_PutFloat( p_intf, psz_comp_control_names[i], f ); + oldControlVars[i] = f; + } + } + if( p_aout ) + { + vlc_object_release( p_aout ); + } +} + +/********************************************************************** * Spatializer **********************************************************************/ static const char *psz_control_names[] = diff --git a/modules/gui/qt4/components/extended_panels.hpp b/modules/gui/qt4/components/extended_panels.hpp index a4bbb4f..bd17ed7 100644 --- a/modules/gui/qt4/components/extended_panels.hpp +++ b/modules/gui/qt4/components/extended_panels.hpp @@ -38,6 +38,7 @@ #include #define BANDS 10 +#define NUM_CP_CTRL 10 #define NUM_SP_CTRL 5 class QSignalMapper; @@ -115,6 +116,32 @@ private slots: void setCorePreset(int); }; +class Compressor: public QWidget +{ + Q_OBJECT +public: + Compressor( intf_thread_t *, QWidget * ); + +private: + QSlider *compCtrl[NUM_CP_CTRL]; + QLabel *ctrl_texts[NUM_CP_CTRL]; + QLabel *ctrl_readout[NUM_CP_CTRL]; + float controlVars[NUM_CP_CTRL]; + float oldControlVars[NUM_CP_CTRL]; + + QCheckBox *enableCheck; + + void delCallbacks( aout_instance_t * ); + void addCallbacks( aout_instance_t * ); + intf_thread_t *p_intf; +private slots: + void enable(bool); + void enable(); + void updateSliders(float *); + void setValues(float *); + void setInitValues(); +}; + class Spatializer: public QWidget { Q_OBJECT diff --git a/modules/gui/qt4/dialogs/extended.cpp b/modules/gui/qt4/dialogs/extended.cpp index 8fa1653..53bc667 100644 --- a/modules/gui/qt4/dialogs/extended.cpp +++ b/modules/gui/qt4/dialogs/extended.cpp @@ -54,6 +54,9 @@ ExtendedDialog::ExtendedDialog( intf_thread_t *_p_intf ): QVLCFrame( _p_intf ) equal = new Equalizer( p_intf, audioTab ); audioTab->addTab( equal, qtr( "Graphic Equalizer" ) ); + Compressor *compres = new Compressor( p_intf, audioTab ); + audioTab->addTab( compres, qtr( "Compressor" ) ); + Spatializer *spatial = new Spatializer( p_intf, audioTab ); audioTab->addTab( spatial, qtr( "Spatializer" ) ); audioLayout->addWidget( audioTab ); -- 1.7.0.4 From remi at remlab.net Thu Jul 1 11:54:37 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Thu, 01 Jul 2010 11:54:37 +0200 Subject: [vlc-devel] =?utf-8?q?=5BPATCH=5D_support_for_stream_size_in_imem?= =?utf-8?q?=09access=3Fmodule?= In-Reply-To: <20100701082803.GA569@elivagar.org> References: <6626613A-67F1-47F2-A0D0-17BB4763BBE6@team-solutions.pl> <20100630222838.GA3398@elivagar.org> <20100701082803.GA569@elivagar.org> Message-ID: On Thu, 1 Jul 2010 10:28:03 +0200, Laurent Aimar wrote: > On Thu, Jul 01, 2010 at 09:57:31AM +0200, R?mi Denis-Courmont wrote: >> >> On Thu, 1 Jul 2010 00:28:38 +0200, Laurent Aimar >> wrote: >> > Your patch in itself is fine, but I wonder if we shouldn't add > (u)int64 >> > config support first. var_* does support int64_t using var_*Time, the >> only >> > bit missing seems to be config_* part. >> > >> > Anyone against config_ int64_t type support ? (If none, I will try to >> add >> > it). >> >> IMHO we should merge int and int64 since configuration and variable > values >> are stored in a union anyway. And yes, I imply that var_*Time() should > be >> gotten rid of. > Unless I misunderstood, a union of int and int64 won't behave nicely on > big endian CPU ie reading using the int doesn't give you the same value > as reading using the int64 even when the value can be stored without loss > by both. Oh yeah. I just meant that since the union contains a 64-bits integer, we might as well store all integer values as 64-bits. That seems simpler and cleaner than marking all 64-bits values as "time". Casting will take care of the rest transparently. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Thu Jul 1 11:58:28 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Thu, 01 Jul 2010 11:58:28 +0200 Subject: [vlc-devel] [PATCH 4/4] Adds the user interface to the compressor module In-Reply-To: <1277973182-26616-4-git-send-email-logiconcepts819@gmail.com> References: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> <1277973182-26616-4-git-send-email-logiconcepts819@gmail.com> Message-ID: <5c49b23f5c066ff03db056241f19963f@chewa.net> On Thu, 1 Jul 2010 03:33:02 -0500, Ronald Wright wrote: > --- > modules/gui/qt4/components/extended_panels.cpp | 174 > ++++++++++++++++++++++++ > modules/gui/qt4/components/extended_panels.hpp | 27 ++++ > modules/gui/qt4/dialogs/extended.cpp | 3 + > 3 files changed, 204 insertions(+), 0 deletions(-) > > diff --git a/modules/gui/qt4/components/extended_panels.cpp > b/modules/gui/qt4/components/extended_panels.cpp > index 874277a..bc3d661 100644 > --- a/modules/gui/qt4/components/extended_panels.cpp > +++ b/modules/gui/qt4/components/extended_panels.cpp > @@ -1117,6 +1117,180 @@ void Equalizer::addCallbacks( aout_instance_t > *p_aout ) > **********************************************************************/ > > /********************************************************************** > + * Dynamic range compressor > + **********************************************************************/ > +static const char *psz_comp_control_names[] = > +{ > + "compressor-lo-pregain", "compressor-mid-pregain", > "compressor-hi-pregain", > + "compressor-rms-peak", "compressor-attack", "compressor-release", > + "compressor-threshold", "compressor-ratio", "compressor-knee", > + "compressor-makeup-gain" > +}; This lacks one level of const-ness. But I would rather have a arrays of fixed-size arrays here - they're faster (at run-time) and smaller (on disk) than arrays of pointers. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From kaarlo.raiha at gmail.com Thu Jul 1 14:31:45 2010 From: kaarlo.raiha at gmail.com (=?ISO-8859-1?B?S2FhcmxvIFLkaWjk?=) Date: Thu, 1 Jul 2010 15:31:45 +0300 Subject: [vlc-devel] [PATCH] QT: remove unneeded whitespace Message-ID: GUI preferences should look little nicer after this. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-destroy-whitespace.patch Type: application/octet-stream Size: 845 bytes Desc: not available URL: From ileoo at videolan.org Thu Jul 1 14:38:14 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Thu, 1 Jul 2010 15:38:14 +0300 Subject: [vlc-devel] [PATCH] QT: remove unneeded whitespace In-Reply-To: References: Message-ID: <20100701123813.GF6356@linux-3azp> On Thu, Jul 01, 2010 at 03:31:45PM +0300, Kaarlo R?ih? wrote: > GUI preferences should look little nicer after this. Thanks, applied -- Ilkka Ollakka "If you've done six impossible things before breakfast, why not round it off with dinner at Milliway's, the restaurant at the end of the universe?" -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From johann.ransay at planar.com Thu Jul 1 14:48:55 2010 From: johann.ransay at planar.com (Johann Ransay) Date: Thu, 1 Jul 2010 14:48:55 +0200 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee In-Reply-To: <1277821772-24822-1-git-send-email-johann.ransay@planar.com> References: <1277726959-20481-1-git-send-email-johann.ransay@planar.com> <1277821772-24822-1-git-send-email-johann.ransay@planar.com> Message-ID: <201007011448.55648.johann.ransay@planar.com> Did that go below the radar of the dev team ? Regards, Johann On Tuesday 29 June 2010, Johann Ransay wrote: > Re-sending this patch with a better description. > Turn a '\\' 'n' sequence into '\n' in on-the-fly marquee to enable > multi-line text. To be tried with --intf oldrc --sub-filter marq at title > then from the command line interface: > @title marq-marquee multi\nline\ntest > > --- > modules/control/rc.c | 33 +++++++++++++++++++++++++++++++++ > 1 files changed, 33 insertions(+), 0 deletions(-) > > diff --git a/modules/control/rc.c b/modules/control/rc.c > index 2fbc628..021a38d 100644 > --- a/modules/control/rc.c > +++ b/modules/control/rc.c > @@ -587,6 +587,8 @@ static void Run( intf_thread_t *p_intf ) > char *psz_alias = psz_cmd + 1; > char *psz_mycmd = strdup( psz_arg ); > char *psz_myarg = strchr( psz_mycmd, ' ' ); > + char *psz_subst = 0; > + char *psz_start = 0; > char *psz_msg; > > if( !psz_myarg ) > @@ -598,6 +600,37 @@ static void Run( intf_thread_t *p_intf ) > *psz_myarg = '\0'; > psz_myarg ++; > > + psz_start = psz_myarg; > + /* perform special character substitutions */ > + while( *psz_start ) > + { > + psz_subst = psz_start; > + if( *psz_subst == '\\' ) > + { > + switch( *(psz_subst+1) ) > + { > + case 'n': > + /* replace '\\' 'n' with '\n' */ > + *psz_subst = '\n'; > + break; > + > + default: > + /* not a special character, remove backslash */ > + *psz_subst = *(psz_subst+1); > + break; > + } > + *psz_subst++; > + /* move remaining characters one index backward */ > + while( *(psz_subst+1) ) > + { > + *psz_subst = *(psz_subst+1); > + *psz_subst++; > + } > + *psz_subst = 0; > + } > + psz_start++; > + } > + > var_Command( p_intf, psz_alias, psz_mycmd, psz_myarg, > &psz_msg ); ____________________________________________________________________ This e-mail, and any attachments, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information belonging to Planar Systems, Inc. If you are not the intended recipient of this e-mail, you are hereby notified that any dissemination, distribution or copying of this e-mail, any attachments thereto, and use of the information contained, is strictly prohibited. If you have received this e-mail in error, please notify the sender and permanently delete the original and any copy thereof. ______________________________________________________________________ From thresh at altlinux.ru Thu Jul 1 15:25:36 2010 From: thresh at altlinux.ru (Konstantin Pavlov) Date: Thu, 1 Jul 2010 17:25:36 +0400 Subject: [vlc-devel] [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. In-Reply-To: References: <201006291641.18397.rem@videolan.org> <20100629193523.GW30509@chewa.net> Message-ID: <20100701132536.GG15359@snowwhite.immo> On Wed, Jun 30, 2010 at 04:49:15AM +0300, Daniel Tisza wrote: > Hi, > > Thanks for the comments. > I made the suggested changes (details below). > Attached the new independent patch. > Can be tested with the playlist from previous message. I've tried testing this patch and couldnt find the proper way to view RTMP stream that is properly saved by rtmpdump. Here's rtmpdump launch line: rtmpdump -r rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_ --swfUrl http://play.freecaster.com/player/FCPlayer.swf --tcUrl 'rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_' --pageUrl 'http://freecaster.tv/mx/1012443/mx3-wc-2010-round-of-greece' --playpath 'mp4:fms/replays/MX3_WC_Greece_2010.mov?doppl=30dd662a7cf1e8f3&dopsig=11b41a5faefae397169fbc0e3a649028' -o mx3-wc-2010-greece.flv Here's VLC launch line, ./vlc -vvv 'rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_' --rtmp-swfurl 'http://play.freecaster.com/player/FCPlayer.swf' --rtmp-tcurl 'rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_' --rtmp-pageurl 'http://freecaster.tv/mx/1012443/mx3-wc-2010-round-of-greece' --rtmp-playpath 'mp4:fms/replays/MX3_WC_Greece_2010.mov?doppl=30dd662a7cf1f5c5&dopsig=44d10fd101e5bdc28861f664a57f42e0' --rtmp-flashver 'LNX 10,1,53,64' --rtmp-app 'a2f2q9i4/_definst_' --rtmp-hostname 'fms031.lo1.hwcdn.net' VLC fails to establish connection. As a side note, when compiled with debug, VLC aborts on: c: misc/variables.c:787: var_GetChecked: Assertion `expected_type == 0 || (p_var->i_type & 0x00f0) == expected_type' failed. Backtrace shows: #3 0xb768c65f in var_GetChecked (p_this=0x8280504, psz_name=0xb369d3f8 "start-time", expected_type=48, p_val=0xb360deb4) at misc/variables.c:786 -- The trouble with a lot of self-made men is that they worship their creator. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From jb at videolan.org Thu Jul 1 15:33:54 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 1 Jul 2010 15:33:54 +0200 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee In-Reply-To: <201007011448.55648.johann.ransay@planar.com> References: <1277726959-20481-1-git-send-email-johann.ransay@planar.com> <1277821772-24822-1-git-send-email-johann.ransay@planar.com> <201007011448.55648.johann.ransay@planar.com> Message-ID: <20100701133354.GA13024@videolan.org> On Thu, Jul 01, 2010 at 02:48:55PM +0200, Johann Ransay wrote : > Did that go below the radar of the dev team ? As far as I am concerned, I haven't seen it in my mailbox Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 1 15:34:21 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 1 Jul 2010 15:34:21 +0200 Subject: [vlc-devel] [PATCH] AVCodec : Add the MPEG1 codec ID to the map table. In-Reply-To: <1277924033-7658-1-git-send-email-jmenon86@gmail.com> References: <1277924033-7658-1-git-send-email-jmenon86@gmail.com> Message-ID: <20100701133421.GA13496@videolan.org> On Thu, Jul 01, 2010 at 12:23:53AM +0530, Jai Menon wrote : > modules/codec/avcodec/fourcc.c | 1 + Thanks. Applied. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 1 15:34:53 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 1 Jul 2010 15:34:53 +0200 Subject: [vlc-devel] PATCH: OS X remove the use of setjmp()/longjmp() In-Reply-To: References: <9C352D22-3401-488A-AE71-40FE155B2F6F@gmail.com> <7f4149bb0912260634q7d20300bn3f2f5a24afa360fe@mail.gmail.com> <537B05C9-3F70-4F7B-971A-04ED11990D56@gmail.com> <7f4149bb0912260752m21347f31r66927616fb104e64@mail.gmail.com> Message-ID: <20100701133453.GB13496@videolan.org> On Wed, Jun 30, 2010 at 01:33:57PM +0200, Dilaroga dev wrote : > In attachment i provided a patch that overrides the terminate: method to > call a stop:. Applied and BP'ed Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 1 15:37:10 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 1 Jul 2010 15:37:10 +0200 Subject: [vlc-devel] [PATCH] gnutls: search CA in every known locations. In-Reply-To: <1277814683-32725-1-git-send-email-fcvlcdev@free.fr> References: <1277814683-32725-1-git-send-email-fcvlcdev@free.fr> Message-ID: <20100701133710.GC13496@videolan.org> On Tue, Jun 29, 2010 at 02:31:23PM +0200, Francois Cartegnie wrote : > +#ifdef WIN32 > + /** FIXME: Use crytoapi to fetch system's CA certificates **/ > +#else Can cryptoapi output something useful for gnutls? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 1 15:43:23 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 1 Jul 2010 15:43:23 +0200 Subject: [vlc-devel] [PATCH] MacOS: fixes an issue with the recents item that doesn't list the opened media... In-Reply-To: References: Message-ID: <20100701134323.GA15851@videolan.org> On Mon, Jun 28, 2010 at 08:08:32PM +0200, Sebastien Zwickert wrote : > In attachment a patch for 1.1.1 branch that fixes an issue (recents item menu is not filled). > Applied. Thanks. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From johann.ransay at planar.com Thu Jul 1 15:50:44 2010 From: johann.ransay at planar.com (Johann Ransay) Date: Thu, 1 Jul 2010 15:50:44 +0200 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee In-Reply-To: <20100701133354.GA13024@videolan.org> References: <1277726959-20481-1-git-send-email-johann.ransay@planar.com> <201007011448.55648.johann.ransay@planar.com> <20100701133354.GA13024@videolan.org> Message-ID: <201007011550.44358.johann.ransay@planar.com> I must have messed up with the git send-mail command. Sorry about that. Anyway, Here it is again (hopefully) cleanly formatted. Regards, Johann Turn a '\\' 'n' sequence into '\n' in on-the-fly marquee to enable multi-line text. To be tried with --intf oldrc --sub-filter marq at title then from the command line interface: @title marq-marquee multi\nline\ntest --- modules/control/rc.c | 33 +++++++++++++++++++++++++++++++++ 1 files changed, 33 insertions(+), 0 deletions(-) diff --git a/modules/control/rc.c b/modules/control/rc.c index 2fbc628..021a38d 100644 --- a/modules/control/rc.c +++ b/modules/control/rc.c @@ -587,6 +587,8 @@ static void Run( intf_thread_t *p_intf ) char *psz_alias = psz_cmd + 1; char *psz_mycmd = strdup( psz_arg ); char *psz_myarg = strchr( psz_mycmd, ' ' ); + char *psz_subst = 0; + char *psz_start = 0; char *psz_msg; if( !psz_myarg ) @@ -598,6 +600,37 @@ static void Run( intf_thread_t *p_intf ) *psz_myarg = '\0'; psz_myarg ++; + psz_start = psz_myarg; + /* perform special character substitutions */ + while( *psz_start ) + { + psz_subst = psz_start; + if( *psz_subst == '\\' ) + { + switch( *(psz_subst+1) ) + { + case 'n': + /* replace '\\' 'n' with '\n' */ + *psz_subst = '\n'; + break; + + default: + /* not a special character, remove backslash */ + *psz_subst = *(psz_subst+1); + break; + } + *psz_subst++; + /* move remaining characters one index backward */ + while( *(psz_subst+1) ) + { + *psz_subst = *(psz_subst+1); + *psz_subst++; + } + *psz_subst = 0; + } + psz_start++; + } + var_Command( p_intf, psz_alias, psz_mycmd, psz_myarg, &psz_msg ); -- 1.6.2.5 On Thursday 01 July 2010, Jean-Baptiste Kempf wrote: > On Thu, Jul 01, 2010 at 02:48:55PM +0200, Johann Ransay wrote : > > Did that go below the radar of the dev team ? > > As far as I am concerned, I haven't seen it in my mailbox > > Best Regards, ____________________________________________________________________ This e-mail, and any attachments, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information belonging to Planar Systems, Inc. If you are not the intended recipient of this e-mail, you are hereby notified that any dissemination, distribution or copying of this e-mail, any attachments thereto, and use of the information contained, is strictly prohibited. If you have received this e-mail in error, please notify the sender and permanently delete the original and any copy thereof. ______________________________________________________________________ From fcvlcdev at free.fr Thu Jul 1 16:14:02 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Thu, 1 Jul 2010 16:14:02 +0200 Subject: [vlc-devel] [PATCH] gnutls: search CA in every known locations. In-Reply-To: <20100701133710.GC13496@videolan.org> References: <1277814683-32725-1-git-send-email-fcvlcdev@free.fr> <20100701133710.GC13496@videolan.org> Message-ID: <201007011614.03102.fcvlcdev@free.fr> Le jeudi 1 juillet 2010, vous avez ?crit : > > Can cryptoapi output something useful for gnutls? I guess you have as more clues as me about this :) It 's not in a file and Googling tells it can store and also have a cli tool for CA. Let's a win dev fix it or provide a system native alternative to gnutls. Francois From jmenon86 at gmail.com Thu Jul 1 16:21:40 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Thu, 1 Jul 2010 19:51:40 +0530 Subject: [vlc-devel] [PATCH] MKV : Export MPEG[12] sequence header present in CodecPrivate as extradata. Message-ID: <1277994100-26288-1-git-send-email-jmenon86@gmail.com> This fixes files where the muxer doesn't store sequence headers as part of the stream. --- modules/demux/mkv/matroska_segment.cpp | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp index 04e4a22..2b0b7d4 100644 --- a/modules/demux/mkv/matroska_segment.cpp +++ b/modules/demux/mkv/matroska_segment.cpp @@ -796,6 +796,8 @@ bool matroska_segment_c::Select( mtime_t i_start_time ) !strcmp( p_tk->psz_codec, "V_MPEG2" ) ) { p_tk->fmt.i_codec = VLC_CODEC_MPGV; + if( p_tk->i_extra_data ) + fill_extra_data( p_tk ); } else if( !strncmp( p_tk->psz_codec, "V_THEORA", 8 ) ) { -- 1.7.1 From frank.enderle at anamica.de Thu Jul 1 16:27:01 2010 From: frank.enderle at anamica.de (Frank Enderle) Date: Thu, 01 Jul 2010 16:27:01 +0200 Subject: [vlc-devel] ES_OUT_SET_(GROUP_)PCR is called too late Message-ID: <4C2CA5B5.1080704@anamica.de> Hi, I got a question regarding the message: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to %d ms) from es_out.c. I run an AAC encoded stream which is played back through VLC. After a while - which can be longer or shorter - VLC starts outputting this message and then plays silence for a few seconds (I guess it's rebuffering). Since the problem occurs on Linux (using libvlc 1.1.0) and Windows (using vlc 1.1.0) I suppose it's not implementation or platform related. My question: what does this message mean and wehre does the condition come from? Is the stream encoding bad? Thanks, Frank -- Dipl.-Ing. (FH) Frank Enderle anamica UG (haftungsbeschr?nkt) Beinsteinerstr. 6 71334 Waiblingen Telefon: +49 151 14981091 Telefax: +49 7151 1335770 E-Mail: frank.enderle at anamica.de Internet: www.anamica.de Handelsregister: AG Stuttgart HRB 732357 Gesch?ftsf?hrer: Yvonne Holzwarth, Frank Enderle From jmenon86 at gmail.com Thu Jul 1 17:13:43 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Thu, 1 Jul 2010 20:43:43 +0530 Subject: [vlc-devel] [PATCH] MKV : Always export CodecPrivate (as the ES' extradata) if it is present. Message-ID: <1277997223-27419-1-git-send-email-jmenon86@gmail.com> --- modules/demux/mkv/matroska_segment.cpp | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp index 04e4a22..aed2cfa 100644 --- a/modules/demux/mkv/matroska_segment.cpp +++ b/modules/demux/mkv/matroska_segment.cpp @@ -1164,6 +1164,10 @@ bool matroska_segment_c::Select( mtime_t i_start_time ) { p_tk->fmt.i_priority = 1000; } + // Export CodecPrivate if it is present and the ES format's + // extradata field hasn't been populated yet. + if( !p_tk->fmt.p_extra && p_tk->i_extra_data ) + fill_extra_data( p_tk ); p_tk->p_es = es_out_Add( sys.demuxer.out, &p_tk->fmt ); -- 1.7.1 From jmenon86 at gmail.com Thu Jul 1 17:15:48 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Thu, 1 Jul 2010 20:45:48 +0530 Subject: [vlc-devel] [PATCH] MKV : Export MPEG[12] sequence header present in CodecPrivate as extradata. In-Reply-To: <1277994100-26288-1-git-send-email-jmenon86@gmail.com> References: <1277994100-26288-1-git-send-email-jmenon86@gmail.com> Message-ID: On Thu, Jul 1, 2010 at 7:51 PM, Jai Menon wrote: > This fixes files where the muxer doesn't store sequence headers > as part of the stream. > --- > ?modules/demux/mkv/matroska_segment.cpp | ? ?2 ++ > ?1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp > index 04e4a22..2b0b7d4 100644 > --- a/modules/demux/mkv/matroska_segment.cpp > +++ b/modules/demux/mkv/matroska_segment.cpp > @@ -796,6 +796,8 @@ bool matroska_segment_c::Select( mtime_t i_start_time ) > ? ? ? ? ? ? ? ? ?!strcmp( p_tk->psz_codec, "V_MPEG2" ) ) > ? ? ? ? { > ? ? ? ? ? ? p_tk->fmt.i_codec = VLC_CODEC_MPGV; > + ? ? ? ? ? ?if( p_tk->i_extra_data ) > + ? ? ? ? ? ? ? ?fill_extra_data( p_tk ); > ? ? ? ? } > ? ? ? ? else if( !strncmp( p_tk->psz_codec, "V_THEORA", 8 ) ) > ? ? ? ? { > -- > 1.7.1 Another approach would be to always export CodecPrivate (patch for that in a separate thread). If that is preferred, then please disregard this. -- Jai Menon From rafael.carre at gmail.com Thu Jul 1 18:26:11 2010 From: rafael.carre at gmail.com (=?ISO-8859-1?B?UmFmYetsIENhcnLp?=) Date: Thu, 1 Jul 2010 18:26:11 +0200 Subject: [vlc-devel] [PATCH] MKV : Always export CodecPrivate (as the ES' extradata) if it is present. In-Reply-To: <1277997223-27419-1-git-send-email-jmenon86@gmail.com> References: <1277997223-27419-1-git-send-email-jmenon86@gmail.com> Message-ID: <20100701182611.756b657c@zod> On Thu, 1 Jul 2010 20:43:43 +0530 Jai Menon wrote: > + // Export CodecPrivate if it is present and the ES format's > + // extradata field hasn't been populated yet. Where else could have it been populated ? > + if( !p_tk->fmt.p_extra && p_tk->i_extra_data ) > + fill_extra_data( p_tk ); I didn't read the ~6k lines of C++ but from a quick look, there is no reason why the extradata is stored in ->(i/p)_extra_data instead of storing it directly in ->fmt.(i/p)_extra -- Rafa?l Carr? From jmenon86 at gmail.com Thu Jul 1 18:49:58 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Thu, 1 Jul 2010 22:19:58 +0530 Subject: [vlc-devel] [PATCH] MKV : Always export CodecPrivate (as the ES' extradata) if it is present. In-Reply-To: <20100701182611.756b657c@zod> References: <1277997223-27419-1-git-send-email-jmenon86@gmail.com> <20100701182611.756b657c@zod> Message-ID: On Thu, Jul 1, 2010 at 9:56 PM, Rafa?l Carr? wrote: > On Thu, ?1 Jul 2010 20:43:43 +0530 > Jai Menon wrote: > >> + ? ? ? ?// Export CodecPrivate if it is present and the ES format's >> + ? ? ? ?// extradata field hasn't been populated yet. > > Where else could have it been populated ? This is just the fallback case, so to say. If any specific parsing/manipulation on a per-codec basis needs to be done, then the if-else constructs just above should handle those. Or did I misunderstand your question? >> + ? ? ? ?if( !p_tk->fmt.p_extra && p_tk->i_extra_data ) >> + ? ? ? ? ? ?fill_extra_data( p_tk ); > > I didn't read the ~6k lines of C++ but from a quick look, there is no > reason why the extradata is stored in ->(i/p)_extra_data instead of > storing it directly in ->fmt.(i/p)_extra Of course, that could be done too. As a separate patch perhaps? Also, there's quite a lot of stuff to clean up in there :) -- Jai Menon From rafael.carre at gmail.com Thu Jul 1 19:14:26 2010 From: rafael.carre at gmail.com (=?ISO-8859-1?B?UmFmYetsIENhcnLp?=) Date: Thu, 1 Jul 2010 19:14:26 +0200 Subject: [vlc-devel] [PATCH] MKV : Always export CodecPrivate (as the ES' extradata) if it is present. In-Reply-To: References: <1277997223-27419-1-git-send-email-jmenon86@gmail.com> <20100701182611.756b657c@zod> Message-ID: <20100701191426.37fe6232@zod> On Thu, 1 Jul 2010 22:19:58 +0530 Jai Menon wrote: > On Thu, Jul 1, 2010 at 9:56 PM, Rafa?l Carr? > wrote: > > On Thu, ?1 Jul 2010 20:43:43 +0530 > > Jai Menon wrote: > > > >> + ? ? ? ?// Export CodecPrivate if it is present and the ES > >> format's > >> + ? ? ? ?// extradata field hasn't been populated yet. > > > > Where else could have it been populated ? > > This is just the fallback case, so to say. If any specific > parsing/manipulation on a per-codec basis needs to be done, then the > if-else constructs just above should handle those. Or did I > misunderstand your question? I think there is no need for a fallback, ideally we should populate the extra data once for all > >> + ? ? ? ?if( !p_tk->fmt.p_extra && p_tk->i_extra_data ) > >> + ? ? ? ? ? ?fill_extra_data( p_tk ); > > > > I didn't read the ~6k lines of C++ but from a quick look, there is > > no reason why the extradata is stored in ->(i/p)_extra_data instead > > of storing it directly in ->fmt.(i/p)_extra > > Of course, that could be done too. As a separate patch perhaps? Yes i think this should be better, so no need for a fallback case, just do the right thing from the start. -- Rafa?l Carr? From fenrir at elivagar.org Thu Jul 1 19:59:28 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 1 Jul 2010 19:59:28 +0200 Subject: [vlc-devel] [PATCH 3/4] Adjusts the scores of other audio filter modules to suit the compressor module In-Reply-To: <1277973182-26616-3-git-send-email-logiconcepts819@gmail.com> References: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> <1277973182-26616-3-git-send-email-logiconcepts819@gmail.com> Message-ID: <20100701175928.GA28887@elivagar.org> Hi, On Thu, Jul 01, 2010 at 03:33:01AM -0500, Ronald Wright wrote: > --- > modules/audio_filter/channel_mixer/mono.c | 2 +- > modules/audio_filter/channel_mixer/trivial.c | 2 +- > modules/audio_filter/converter/format.c | 2 +- > modules/audio_filter/resampler/ugly.c | 2 +- > 4 files changed, 4 insertions(+), 4 deletions(-) > > - set_capability( "audio filter", 2 ) > + set_capability( "audio filter", 3 ) I don't see why you need to change the priority of thoses modules. The priority of the compressor module (in another patch) should also be equal to 0. Otherwise it might end up being used without having been selected explicitly (normvol for example does use 0 as priority). Regards, -- fenrir From fenrir at elivagar.org Thu Jul 1 20:00:53 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 1 Jul 2010 20:00:53 +0200 Subject: [vlc-devel] [PATCH 1/4] Adds the compressor module to be linked against the math library In-Reply-To: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> References: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> Message-ID: <20100701180053.GB28887@elivagar.org> Hi, On Thu, Jul 01, 2010 at 03:32:59AM -0500, Ronald Wright wrote: > --- > configure.ac | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/configure.ac b/configure.ac > index 1a428e7..55e9d8a 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -665,7 +665,7 @@ AC_CHECK_LIB(m,pow,[ > VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc ffmpegaltivec i420_rgb faad twolame equalizer spatializer param_eq libvlccore freetype mod mpc dmo quicktime realvideo qt4],[-lm]) > ]) > AC_CHECK_LIB(m,sqrt,[ > - VLC_ADD_LIBS([headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball],[-lm]) > + VLC_ADD_LIBS([compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball],[-lm]) > ]) Seems fine to me but I think it would be better to merge it with the patch "Adds the compressor module to VLC". -- fenrir From fenrir at elivagar.org Thu Jul 1 20:10:26 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 1 Jul 2010 20:10:26 +0200 Subject: [vlc-devel] [PATCH 2/4] Adds the compressor module to VLC In-Reply-To: <1277973182-26616-2-git-send-email-logiconcepts819@gmail.com> References: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> <1277973182-26616-2-git-send-email-logiconcepts819@gmail.com> Message-ID: <20100701181026.GA29130@elivagar.org> Hi, On Thu, Jul 01, 2010 at 03:33:00AM -0500, Ronald Wright wrote: > +vlc_module_begin() > + set_shortname( _("Compressor") ) > + set_description( _("Dynamic range compressor") ) > + set_capability( "audio filter", 1 ) It must be 0 as explained in reply to another of your patches. > + add_float( "compressor-lo-pregain", 0.0, NULL, LO_TEXT, > + LO_LONGTEXT, false ) > + add_float( "compressor-mid-pregain", 0.0, NULL, MID_TEXT, > + MID_LONGTEXT, false ) > + add_float( "compressor-hi-pregain", 0.0, NULL, HI_TEXT, > + HI_LONGTEXT, false ) I don't see why you have to do the equalizer part inside your module. I think that normalizing the audio and applying equalization are two completly independant tasks, and as such should be done by two independant plugin. Furthermore, we already have 2 equalizers in VLC. > +static int Open( vlc_object_t *p_this ) > +{ > + filter_t *p_filter = (filter_t*)p_this; > + vlc_object_t *p_aout = p_filter->p_parent; > + float f_sample_rate = p_filter->fmt_in.audio.i_rate; > + struct filter_sys_t *p_sys; > + float f_num; > + > + if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 || > + p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 ) > + { > + p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32; > + p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32; > + msg_Warn( p_filter, "bad input or output format" ); > + return VLC_EGENERIC; > + } > + if( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, > + &p_filter->fmt_out.audio ) ) > + { > + p_filter->fmt_out.audio = p_filter->fmt_in.audio; > + msg_Warn( p_filter, "input and output formats are not similar" ); > + return VLC_EGENERIC; > + } > + > + /* Initialize the filter parameter structure */ > + p_sys = p_filter->p_sys = calloc( 1, sizeof(*p_sys) ); > + if( !p_sys ) > + { > + return VLC_ENOMEM; > + } > + > + /* Initialize the attack lookup table */ > + p_sys->pf_as[0] = 1.0f; > + for( int i = 1; i < A_TBL; i++ ) > + { > + p_sys->pf_as[i] = expf( -1.0f / ( f_sample_rate * i / A_TBL ) ); > + } > + > + /* Calculate the RMS and lookahead sizes from the sample rate */ > + f_num = 0.01f * f_sample_rate; > + p_sys->rms.i_count = Round( Clamp( 0.5f * f_num, 1.0f, RMS_BUF_SIZE ) ); > + p_sys->la.i_count = Round( Clamp( f_num, 1.0f, LOOKAHEAD_SIZE ) ); > + > + /* Initialize decibel lookup tables */ > + DbInit( p_sys ); > + > + /* Restore the last saved settings */ > + p_sys->f_lo_pregain = > + var_CreateGetFloat( p_aout, "compressor-lo-pregain" ); > + p_sys->f_mid_pregain = > + var_CreateGetFloat( p_aout, "compressor-mid-pregain" ); > + p_sys->f_hi_pregain = > + var_CreateGetFloat( p_aout, "compressor-hi-pregain" ); > + p_sys->f_rms_peak = var_CreateGetFloat( p_aout, "compressor-rms-peak" ); > + p_sys->f_attack = var_CreateGetFloat( p_aout, "compressor-attack" ); > + p_sys->f_release = var_CreateGetFloat( p_aout, "compressor-release" ); > + p_sys->f_threshold = var_CreateGetFloat( p_aout, "compressor-threshold" ); > + p_sys->f_ratio = var_CreateGetFloat( p_aout, "compressor-ratio" ); > + p_sys->f_knee = var_CreateGetFloat( p_aout, "compressor-knee" ); > + p_sys->f_makeup_gain = > + var_CreateGetFloat( p_aout, "compressor-makeup-gain" ); > + > + /* Initialize the mutex */ > + vlc_mutex_init( &p_sys->lock ); > + > + /* Add our own callbacks */ > + var_AddCallback( p_aout, "compressor-lo-pregain", LoPregainCallback, > + p_sys ); > + var_AddCallback( p_aout, "compressor-mid-pregain", MidPregainCallback, > + p_sys ); > + var_AddCallback( p_aout, "compressor-hi-pregain", HiPregainCallback, > + p_sys ); > + var_AddCallback( p_aout, "compressor-rms-peak", RMSPeakCallback, p_sys ); > + var_AddCallback( p_aout, "compressor-attack", AttackCallback, p_sys ); > + var_AddCallback( p_aout, "compressor-release", ReleaseCallback, p_sys ); > + var_AddCallback( p_aout, "compressor-threshold", ThresholdCallback, p_sys ); > + var_AddCallback( p_aout, "compressor-ratio", RatioCallback, p_sys ); > + var_AddCallback( p_aout, "compressor-knee", KneeCallback, p_sys ); > + var_AddCallback( p_aout, "compressor-makeup-gain", MakeupGainCallback, > + p_sys ); > + > + /* Set the filter function */ > + p_filter->pf_audio_filter = DoWork; > + > + /* At this stage, we are ready! */ > + msg_Dbg( p_filter, "compressor successfully initialized" ); > + return VLC_SUCCESS; > +} > + > +/***************************************************************************** > + * Close: destroy interface > + *****************************************************************************/ > + > +static void Close( vlc_object_t *p_this ) > +{ > + filter_t *p_filter = (filter_t*)p_this; > + vlc_object_t *p_aout = p_filter->p_parent; > + struct filter_sys_t *p_sys = p_filter->p_sys; > + > + /* Remove our callbacks */ > + var_DelCallback( p_aout, "compressor-rms-peak", RMSPeakCallback, p_sys ); > + var_DelCallback( p_aout, "compressor-attack", AttackCallback, p_sys ); > + var_DelCallback( p_aout, "compressor-release", ReleaseCallback, p_sys ); > + var_DelCallback( p_aout, "compressor-threshold", ThresholdCallback, p_sys ); > + var_DelCallback( p_aout, "compressor-ratio", RatioCallback, p_sys ); > + var_DelCallback( p_aout, "compressor-knee", KneeCallback, p_sys ); > + var_DelCallback( p_aout, "compressor-makeup-gain", MakeupGainCallback, > + p_sys ); I think you forgot some deletes. Maybe creating a table with the variables names and the associated callbacks would simplify it ? Otherwise, adding the missing one is enough. Regards, -- fenrir From fenrir at elivagar.org Thu Jul 1 20:13:51 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 1 Jul 2010 20:13:51 +0200 Subject: [vlc-devel] [PATCH] MKV : Always export CodecPrivate (as the ES' extradata) if it is present. In-Reply-To: <1277997223-27419-1-git-send-email-jmenon86@gmail.com> References: <1277997223-27419-1-git-send-email-jmenon86@gmail.com> Message-ID: <20100701181351.GB29130@elivagar.org> On Thu, Jul 01, 2010 at 08:43:43PM +0530, Jai Menon wrote: > --- > modules/demux/mkv/matroska_segment.cpp | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp > index 04e4a22..aed2cfa 100644 > --- a/modules/demux/mkv/matroska_segment.cpp > +++ b/modules/demux/mkv/matroska_segment.cpp > @@ -1164,6 +1164,10 @@ bool matroska_segment_c::Select( mtime_t i_start_time ) > { > p_tk->fmt.i_priority = 1000; > } > + // Export CodecPrivate if it is present and the ES format's > + // extradata field hasn't been populated yet. > + if( !p_tk->fmt.p_extra && p_tk->i_extra_data ) > + fill_extra_data( p_tk ); It is not always valid. For example, with V_MS/VFW/FOURCC, p_tk->i_extra_data will contain data but may leave p_tk->fmt.i_extra empty. In this case, filling it with p_tk->i_extra_data is wrong. I haven't checked every other cases, but it may not be limited to V_MS/VFW/FOURCC. -- fenrir From fenrir at elivagar.org Thu Jul 1 20:18:37 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 1 Jul 2010 20:18:37 +0200 Subject: [vlc-devel] [PATCH] support for stream size in imem?access?module In-Reply-To: References: <6626613A-67F1-47F2-A0D0-17BB4763BBE6@team-solutions.pl> <20100630222838.GA3398@elivagar.org> <20100701082803.GA569@elivagar.org> Message-ID: <20100701181837.GA30040@elivagar.org> On Thu, Jul 01, 2010 at 11:54:37AM +0200, R?mi Denis-Courmont wrote: > Oh yeah. I just meant that since the union contains a 64-bits integer, we > might as well store all integer values as 64-bits. That seems simpler and > cleaner than marking all 64-bits values as "time". Casting will take care > of the rest transparently. You mean to: - remove vlc_value_t::i_time - change vlc_value_t::i_int type to int64_t - change var_*Integer to use/return int64_t type - remove var_*Time ? If so, it is doable, but we will have a lot of code to review (especially all printf like functions using var_Get/InheritInteger or vlc_value_t::i_int as argument). -- fenrir From jmenon86 at gmail.com Thu Jul 1 20:16:02 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Thu, 1 Jul 2010 23:46:02 +0530 Subject: [vlc-devel] [PATCH] MKV : Always export CodecPrivate (as the ES' extradata) if it is present. In-Reply-To: <20100701181351.GB29130@elivagar.org> References: <1277997223-27419-1-git-send-email-jmenon86@gmail.com> <20100701181351.GB29130@elivagar.org> Message-ID: On Thu, Jul 1, 2010 at 11:43 PM, Laurent Aimar wrote: > On Thu, Jul 01, 2010 at 08:43:43PM +0530, Jai Menon wrote: >> --- >> ?modules/demux/mkv/matroska_segment.cpp | ? ?4 ++++ >> ?1 files changed, 4 insertions(+), 0 deletions(-) >> >> diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp >> index 04e4a22..aed2cfa 100644 >> --- a/modules/demux/mkv/matroska_segment.cpp >> +++ b/modules/demux/mkv/matroska_segment.cpp >> @@ -1164,6 +1164,10 @@ bool matroska_segment_c::Select( mtime_t i_start_time ) >> ? ? ? ? ?{ >> ? ? ? ? ? ? ?p_tk->fmt.i_priority = 1000; >> ? ? ? ? ?} >> + ? ? ? ?// Export CodecPrivate if it is present and the ES format's >> + ? ? ? ?// extradata field hasn't been populated yet. >> + ? ? ? ?if( !p_tk->fmt.p_extra && p_tk->i_extra_data ) >> + ? ? ? ? ? ?fill_extra_data( p_tk ); > ?It is not always valid. > > ?For example, with V_MS/VFW/FOURCC, p_tk->i_extra_data will contain > data but may leave p_tk->fmt.i_extra empty. In this case, filling > it with p_tk->i_extra_data is wrong. > ?I haven't checked every other cases, but it may not be limited to > V_MS/VFW/FOURCC. Fair enough, so atleast the patch for mpeg1/2 is okay right? -- Jai Menon From fenrir at elivagar.org Thu Jul 1 20:24:58 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 01 Jul 2010 20:24:58 +0200 Subject: [vlc-devel] [PATCH] MKV : Always export CodecPrivate (as the ES' extradata) if it is present. In-Reply-To: References: <1277997223-27419-1-git-send-email-jmenon86@gmail.com> <20100701181351.GB29130@elivagar.org> Message-ID: <1278008698.3893.0.camel@localhost> On Thu, 2010-07-01 at 23:46 +0530, Jai Menon wrote: > Fair enough, so atleast the patch for mpeg1/2 is okay right? Yes. -- fenrir From fenrir at elivagar.org Thu Jul 1 20:36:17 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 01 Jul 2010 20:36:17 +0200 Subject: [vlc-devel] [vlc-commits] commit: Safer vlc_atomic_set for win32. (Laurent Aimar ) In-Reply-To: <20100701183323.5D4A5FDBC6@albiero.videolan.org> References: <20100701183323.5D4A5FDBC6@albiero.videolan.org> Message-ID: <1278009377.3893.4.camel@localhost> On Thu, 2010-07-01 at 20:33 +0200, git at videolan.org wrote: > vlc | branch: master | Laurent Aimar | Thu Jul 1 20:32:44 2010 +0200| [6f9bf4ab7f99b89c6c2d6c977028b34f71095a18] | committer: Laurent Aimar > > Safer vlc_atomic_set for win32. The same should probably be done to vlc_atomic_get(). The only way I see using win32 API is to use InterlockedExchangeAdd(&, 0) (or the same idea using And/Xor/Or) but the const in the vlc_atomic_get() prototype prevent me to do so. -- fenrir From logiconcepts819 at gmail.com Thu Jul 1 21:49:56 2010 From: logiconcepts819 at gmail.com (Ron Wright) Date: Thu, 1 Jul 2010 14:49:56 -0500 Subject: [vlc-devel] [PATCH 2/4] Adds the compressor module to VLC In-Reply-To: <20100701181026.GA29130@elivagar.org> References: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> <1277973182-26616-2-git-send-email-logiconcepts819@gmail.com> <20100701181026.GA29130@elivagar.org> Message-ID: Hi, On Thu, Jul 1, 2010 at 1:10 PM, Laurent Aimar wrote: > Hi, > > On Thu, Jul 01, 2010 at 03:33:00AM -0500, Ronald Wright wrote: > > +vlc_module_begin() > > + set_shortname( _("Compressor") ) > > + set_description( _("Dynamic range compressor") ) > > + set_capability( "audio filter", 1 ) > It must be 0 as explained in reply to another of your patches. > See below for the explanation of the issue. > > + add_float( "compressor-lo-pregain", 0.0, NULL, LO_TEXT, > > + LO_LONGTEXT, false ) > > + add_float( "compressor-mid-pregain", 0.0, NULL, MID_TEXT, > > + MID_LONGTEXT, false ) > > + add_float( "compressor-hi-pregain", 0.0, NULL, HI_TEXT, > > + HI_LONGTEXT, false ) > > I don't see why you have to do the equalizer part inside your module. > I think that normalizing the audio and applying equalization are two > completly independant tasks, and as such should be done by two > independant plugin. Furthermore, we already have 2 equalizers in VLC. > But then, how can you tell if the equalizer will go before or after the compressor on instantiation? Priority is important when it comes to dynamic range compressors, as there is a significant difference between equalization before compression and compression before equalization. Read the blue box at http://www.soundonsound.com/sos/jan01/articles/advanced.asp. It's almost like asking yourself, given two distinct functions f(x) and g(x), is f(g(x)) really equal to g(f(x))? The answer is obvious: not always, since the composition of functions is not commutative. This means that the audio controls in a certain order will exhibit behavior that changes when the order is swapped. Here is an example. Assume the older patches are used to compile VLC. Also assume that the parametric equalizer, main equalizer, and compressor are enabled. Because the equalizers and compressor have score 0, there are six different ways for the audio to be processed, and four of these ways will have a major impact as to how the audio is output. If the ordering is not explicit, then the compressor is not suitable for use with either equalizer. Considering the information that I have just mentioned, if you can help me find a better way to implement the equalization part (without changing the scores in the other modules), let me know. My most reasonable guess is that my module belongs in a category other than audio filters. (Is it possible that I need to add a new module category known as "audio_processors"?) > > +static int Open( vlc_object_t *p_this ) > > +{ > > + filter_t *p_filter = (filter_t*)p_this; > > + vlc_object_t *p_aout = p_filter->p_parent; > > + float f_sample_rate = p_filter->fmt_in.audio.i_rate; > > + struct filter_sys_t *p_sys; > > + float f_num; > > + > > + if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 || > > + p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 ) > > + { > > + p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32; > > + p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32; > > + msg_Warn( p_filter, "bad input or output format" ); > > + return VLC_EGENERIC; > > + } > > + if( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, > > + &p_filter->fmt_out.audio ) ) > > + { > > + p_filter->fmt_out.audio = p_filter->fmt_in.audio; > > + msg_Warn( p_filter, "input and output formats are not similar" > ); > > + return VLC_EGENERIC; > > + } > > + > > + /* Initialize the filter parameter structure */ > > + p_sys = p_filter->p_sys = calloc( 1, sizeof(*p_sys) ); > > + if( !p_sys ) > > + { > > + return VLC_ENOMEM; > > + } > > + > > + /* Initialize the attack lookup table */ > > + p_sys->pf_as[0] = 1.0f; > > + for( int i = 1; i < A_TBL; i++ ) > > + { > > + p_sys->pf_as[i] = expf( -1.0f / ( f_sample_rate * i / A_TBL ) ); > > + } > > + > > + /* Calculate the RMS and lookahead sizes from the sample rate */ > > + f_num = 0.01f * f_sample_rate; > > + p_sys->rms.i_count = Round( Clamp( 0.5f * f_num, 1.0f, RMS_BUF_SIZE > ) ); > > + p_sys->la.i_count = Round( Clamp( f_num, 1.0f, LOOKAHEAD_SIZE ) ); > > + > > + /* Initialize decibel lookup tables */ > > + DbInit( p_sys ); > > + > > + /* Restore the last saved settings */ > > + p_sys->f_lo_pregain = > > + var_CreateGetFloat( p_aout, "compressor-lo-pregain" ); > > + p_sys->f_mid_pregain = > > + var_CreateGetFloat( p_aout, "compressor-mid-pregain" ); > > + p_sys->f_hi_pregain = > > + var_CreateGetFloat( p_aout, "compressor-hi-pregain" ); > > + p_sys->f_rms_peak = var_CreateGetFloat( p_aout, > "compressor-rms-peak" ); > > + p_sys->f_attack = var_CreateGetFloat( p_aout, > "compressor-attack" ); > > + p_sys->f_release = var_CreateGetFloat( p_aout, > "compressor-release" ); > > + p_sys->f_threshold = var_CreateGetFloat( p_aout, > "compressor-threshold" ); > > + p_sys->f_ratio = var_CreateGetFloat( p_aout, > "compressor-ratio" ); > > + p_sys->f_knee = var_CreateGetFloat( p_aout, "compressor-knee" > ); > > + p_sys->f_makeup_gain = > > + var_CreateGetFloat( p_aout, "compressor-makeup-gain" ); > > + > > + /* Initialize the mutex */ > > + vlc_mutex_init( &p_sys->lock ); > > + > > + /* Add our own callbacks */ > > + var_AddCallback( p_aout, "compressor-lo-pregain", LoPregainCallback, > > + p_sys ); > > + var_AddCallback( p_aout, "compressor-mid-pregain", > MidPregainCallback, > > + p_sys ); > > + var_AddCallback( p_aout, "compressor-hi-pregain", HiPregainCallback, > > + p_sys ); > > + var_AddCallback( p_aout, "compressor-rms-peak", RMSPeakCallback, > p_sys ); > > + var_AddCallback( p_aout, "compressor-attack", AttackCallback, p_sys > ); > > + var_AddCallback( p_aout, "compressor-release", ReleaseCallback, > p_sys ); > > + var_AddCallback( p_aout, "compressor-threshold", ThresholdCallback, > p_sys ); > > + var_AddCallback( p_aout, "compressor-ratio", RatioCallback, p_sys ); > > + var_AddCallback( p_aout, "compressor-knee", KneeCallback, p_sys ); > > + var_AddCallback( p_aout, "compressor-makeup-gain", > MakeupGainCallback, > > + p_sys ); > > + > > + /* Set the filter function */ > > + p_filter->pf_audio_filter = DoWork; > > + > > + /* At this stage, we are ready! */ > > + msg_Dbg( p_filter, "compressor successfully initialized" ); > > + return VLC_SUCCESS; > > +} > > + > > > +/***************************************************************************** > > + * Close: destroy interface > > + > *****************************************************************************/ > > + > > +static void Close( vlc_object_t *p_this ) > > +{ > > + filter_t *p_filter = (filter_t*)p_this; > > + vlc_object_t *p_aout = p_filter->p_parent; > > + struct filter_sys_t *p_sys = p_filter->p_sys; > > + > > + /* Remove our callbacks */ > > + var_DelCallback( p_aout, "compressor-rms-peak", RMSPeakCallback, > p_sys ); > > + var_DelCallback( p_aout, "compressor-attack", AttackCallback, p_sys > ); > > + var_DelCallback( p_aout, "compressor-release", ReleaseCallback, > p_sys ); > > + var_DelCallback( p_aout, "compressor-threshold", ThresholdCallback, > p_sys ); > > + var_DelCallback( p_aout, "compressor-ratio", RatioCallback, p_sys ); > > + var_DelCallback( p_aout, "compressor-knee", KneeCallback, p_sys ); > > + var_DelCallback( p_aout, "compressor-makeup-gain", > MakeupGainCallback, > > + p_sys ); > I think you forgot some deletes. > Maybe creating a table with the variables names and the associated > callbacks > would simplify it ? Otherwise, adding the missing one is enough. > Oops, I forgot to add those in. I have been too busy fixing other things in the code, and when I make many changes, it is hard to keep track of the remaining changes that I still have to take care of. > Regards, > > -- > fenrir > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > Regards, Ronald Wright -------------- next part -------------- An HTML attachment was scrubbed... URL: From fenrir at elivagar.org Thu Jul 1 22:06:20 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 01 Jul 2010 22:06:20 +0200 Subject: [vlc-devel] [PATCH 2/4] Adds the compressor module to VLC In-Reply-To: References: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> <1277973182-26616-2-git-send-email-logiconcepts819@gmail.com> <20100701181026.GA29130@elivagar.org> Message-ID: <1278014780.3893.12.camel@localhost> Hi, On Thu, 2010-07-01 at 14:49 -0500, Ron Wright wrote: > But then, how can you tell if the equalizer will go before or after > the compressor on instantiation? Priority is important when it comes > to dynamic range compressors, as there is a significant difference > between equalization before compression and compression before > equalization. Read the blue box at > http://www.soundonsound.com/sos/jan01/articles/advanced.asp. > > It's almost like asking yourself, given two distinct functions f(x) > and g(x), is f(g(x)) really equal to g(f(x))? The answer is obvious: > not always, since the composition of functions is not commutative. > This means that the audio controls in a certain order will exhibit > behavior that changes when the order is swapped. > > Here is an example. Assume the older patches are used to compile VLC. > Also assume that the parametric equalizer, main equalizer, and > compressor are enabled. Because the equalizers and compressor have > score 0, there are six different ways for the audio to be processed, > and four of these ways will have a major impact as to how the audio is > output. If the ordering is not explicit, then the compressor is not > suitable for use with either equalizer. > > Considering the information that I have just mentioned, if you can > help me find a better way to implement the equalization part (without > changing the scores in the other modules), let me know. My most > reasonable guess is that my module belongs in a category other than > audio filters. (Is it possible that I need to add a new module > category known as "audio_processors"?) The order in which the filter are inserted is defined by the value of the aout variable "audio-filter". For example "audio-filter" == "compressor:equalizer" will insert the compressor first and then the equalizer (whatever are the modules priority). This variable is updated when you call aout_EnableFilter() which then calls AoutChangeFilterString() defined in src/audio_output/aout_internal.h. If you want to impose an order, you can simply modify this function. > > I think you forgot some deletes. > Maybe creating a table with the variables names and the > associated callbacks > would simplify it ? Otherwise, adding the missing one is > enough. > > Oops, I forgot to add those in. No problem. -- fenrir From dadatis at gmail.com Fri Jul 2 00:23:31 2010 From: dadatis at gmail.com (Daniel Tisza) Date: Fri, 2 Jul 2010 01:23:31 +0300 Subject: [vlc-devel] [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. In-Reply-To: <20100701132536.GG15359@snowwhite.immo> References: <201006291641.18397.rem@videolan.org> <20100629193523.GW30509@chewa.net> <20100701132536.GG15359@snowwhite.immo> Message-ID: Hi, Thanks for testing. >> Can be tested with the playlist from previous message. Any luck with playing those two rtmp streams in the playlist? They seem to work for me 99% of the time... > Here's rtmpdump launch line: > > rtmpdump -r rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_ --swfUrl > http://play.freecaster.com/player/FCPlayer.swf --tcUrl > 'rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_' --pageUrl > 'http://freecaster.tv/mx/1012443/mx3-wc-2010-round-of-greece' --playpath > 'mp4:fms/replays/MX3_WC_Greece_2010.mov?doppl=30dd662a7cf1e8f3&dopsig=11b41a5faefae397169fbc0e3a649028' > -o mx3-wc-2010-greece.flv Which version of rtmpdump you have? I can watch the stream on the web site, but my output from rtmpdump is like this during the last few hours: (Maybe my rtmpdump is messed up?) $ rtmpdump -r rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_ --swfUrl http://play.freecaster.com/player/FCPlayer.swf --tcUrl 'rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_' --pageUrl 'http://freecaster.tv/mx/1012443/mx3-wc-2010-round-of-greece' --playpath 'mp4:fms/replays/MX3_WC_Greece_2010.mov?doppl=30dd662a7cf1e8f3&dopsig=11b41a5faefae397169fbc0e3a649028' -o mx3-wc-2010-greece.flv RTMPDump v2.3 (c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL Connecting ... INFO: Connected... ERROR: RTMP_ReadPacket, failed to read RTMP packet header $ > As a side note, when compiled with debug, VLC aborts on: > > c: misc/variables.c:787: var_GetChecked: Assertion `expected_type == 0 || > (p_var->i_type & 0x00f0) == expected_type' failed. > > > Backtrace shows: > #3 ?0xb768c65f in var_GetChecked (p_this=0x8280504, psz_name=0xb369d3f8 > "start-time", expected_type=48, p_val=0xb360deb4) at misc/variables.c:786 Fixed that, now ./configure --enable-rtmpdump --enable-debug and compilation goes through. Before I post the fixed patch I still try to fix that freecaster.tv streaming. From arvindg at andrew.cmu.edu Thu Jul 1 22:12:30 2010 From: arvindg at andrew.cmu.edu (Arvind Gopalakrishnan) Date: Thu, 1 Jul 2010 13:12:30 -0700 Subject: [vlc-devel] VLC in a windows 7 VM Message-ID: Hi Have any of you observed the behavior of the Player in a Virtual Machine? If I run a windows guest on a ubuntu host, I am observing 1) That buffer gets dropped because the audio drift is too much. Is this because the VLC player is polling/sampling at the clock which runs on the VCPU and the emulated device is polling the VLC (buffer) for more data in the hosts clock. ?? Thanks Arvind From remi at remlab.net Fri Jul 2 03:23:32 2010 From: remi at remlab.net (=?ISO-8859-1?Q?R=E9mi?= Denis-Courmont) Date: Fri, 02 Jul 2010 04:23:32 +0300 Subject: [vlc-devel] [vlc-commits] commit: Safer vlc_atomic_set for win32. (Laurent Aimar ) In-Reply-To: <1278009377.3893.4.camel@localhost> References: <20100701183323.5D4A5FDBC6@albiero.videolan.org> <1278009377.3893.4.camel@localhost> Message-ID: <1278033812.1465.8.camel@Nokia-N900-51-1> ----- Message d'origine ----- > On Thu, 2010-07-01 at 20:33 +0200, git at videolan.org wrote: > > vlc | branch: master | Laurent Aimar | Thu Jul? 1 > > 20:32:44 2010 +0200| [6f9bf4ab7f99b89c6c2d6c977028b34f71095a18] | committer: > > Laurent Aimar > > > > Safer vlc_atomic_set for win32. > > The same should probably be done to vlc_atomic_get(). > The only way I see using win32 API is to use InterlockedExchangeAdd(&, > 0) (or the same idea using And/Xor/Or) but the const in the > vlc_atomic_get() prototype prevent me to do so. What's wrong with __sync_synchronize (other than being overkill)? Also, there is probably a reason why the API to get and set do not exist. Most probably they deemed that normal assign/fetch works (which is true on x86 with volatile keyword). From srikiraju at gmail.com Fri Jul 2 05:14:19 2010 From: srikiraju at gmail.com (Srikanth Raju) Date: Fri, 2 Jul 2010 08:44:19 +0530 Subject: [vlc-devel] VLC in a windows 7 VM In-Reply-To: References: Message-ID: Hello, On Fri, Jul 2, 2010 at 1:42 AM, Arvind Gopalakrishnan < arvindg at andrew.cmu.edu> wrote: > Hi > > Have any of you observed the behavior of the Player in a Virtual Machine? > > If I run a windows guest on a ubuntu host, I am observing > > 1) That buffer gets dropped because the audio drift is too much. > > Does all the audio get dropped from all files? I have a similar problem on my machine, although not on a VM, See http://trac.videolan.org/vlc/ticket/3703 Is this because the VLC player is polling/sampling at the clock which > runs on the VCPU and the emulated device is polling the VLC (buffer) > for more data > in the hosts clock. ?? > > Thanks > Arvind > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -- Regards, Srikanth Raju -------------- next part -------------- An HTML attachment was scrubbed... URL: From thresh at altlinux.ru Fri Jul 2 07:57:59 2010 From: thresh at altlinux.ru (Konstantin Pavlov) Date: Fri, 2 Jul 2010 09:57:59 +0400 Subject: [vlc-devel] [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. In-Reply-To: References: <201006291641.18397.rem@videolan.org> <20100629193523.GW30509@chewa.net> <20100701132536.GG15359@snowwhite.immo> Message-ID: <20100702055759.GH15359@snowwhite.immo> On Fri, Jul 02, 2010 at 01:23:31AM +0300, Daniel Tisza wrote: > Hi, > > Thanks for testing. > > >> Can be tested with the playlist from previous message. > > Any luck with playing those two rtmp streams in the playlist? > They seem to work for me 99% of the time... They work fine here too. > > Here's rtmpdump launch line: > > > > rtmpdump -r rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_ --swfUrl > > http://play.freecaster.com/player/FCPlayer.swf --tcUrl > > 'rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_' --pageUrl > > 'http://freecaster.tv/mx/1012443/mx3-wc-2010-round-of-greece' --playpath > > 'mp4:fms/replays/MX3_WC_Greece_2010.mov?doppl=30dd662a7cf1e8f3&dopsig=11b41a5faefae397169fbc0e3a649028' > > -o mx3-wc-2010-greece.flv > > Which version of rtmpdump you have? I'm using 2.3. > I can watch the stream on the web site, but my output from rtmpdump is > like this during the last few hours: > (Maybe my rtmpdump is messed up?) > > $ rtmpdump -r rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_ --swfUrl > http://play.freecaster.com/player/FCPlayer.swf --tcUrl > 'rtmp://fms031.lo1.hwcdn.net/a2f2q9i4/_definst_' --pageUrl > 'http://freecaster.tv/mx/1012443/mx3-wc-2010-round-of-greece' > --playpath 'mp4:fms/replays/MX3_WC_Greece_2010.mov?doppl=30dd662a7cf1e8f3&dopsig=11b41a5faefae397169fbc0e3a649028' > -o mx3-wc-2010-greece.flv > RTMPDump v2.3 > (c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL > Connecting ... > INFO: Connected... > ERROR: RTMP_ReadPacket, failed to read RTMP packet header > $ Weird, maybe you need some new doppl=, dopsig? you can get those from xml file http://hwcdn.net/a2f2q9i4/fms/replays/MX3_WC_Greece_2010.mov.smil Worked here just now. also, see http://wiki.videolan.org/User:Thresh > > As a side note, when compiled with debug, VLC aborts on: > > > > c: misc/variables.c:787: var_GetChecked: Assertion `expected_type == 0 || > > (p_var->i_type & 0x00f0) == expected_type' failed. > > > > > > Backtrace shows: > > #3 ?0xb768c65f in var_GetChecked (p_this=0x8280504, psz_name=0xb369d3f8 > > "start-time", expected_type=48, p_val=0xb360deb4) at misc/variables.c:786 > > Fixed that, now ./configure --enable-rtmpdump --enable-debug and > compilation goes through. > Before I post the fixed patch I still try to fix that freecaster.tv streaming. Nice. -- ??????! ?????? ??????? ??????! ??? ??????? ?? ?????????. -- ??????? ?????? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: From mcarthybn at gmail.com Fri Jul 2 09:06:49 2010 From: mcarthybn at gmail.com (Mcarthy boon) Date: Fri, 2 Jul 2010 12:36:49 +0530 Subject: [vlc-devel] windows side compile Message-ID: Hi , I have downloaded the source code from video Lan site. I want to compile in windows and how to compile link also not opening . Can anyone please give me a pointer where i can get the documentation or link to compile the source code in windows. Thanks Mac -------------- next part -------------- An HTML attachment was scrubbed... URL: From kaarlo.raiha at gmail.com Fri Jul 2 09:08:04 2010 From: kaarlo.raiha at gmail.com (=?ISO-8859-1?B?S2FhcmxvIFLkaWjk?=) Date: Fri, 2 Jul 2010 10:08:04 +0300 Subject: [vlc-devel] windows side compile In-Reply-To: References: Message-ID: http://wiki.videolan.org/Win32CompileMSYSNew or http://wiki.videolan.org/Win32CompileCygwinNew 2010/7/2 Mcarthy boon > Hi , > I have downloaded the source code from video Lan site. I want to compile > in windows and how to compile link also not opening . > > Can anyone please give me a pointer where i can get the documentation or > link to compile the source code in windows. > > Thanks > Mac > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcarthybn at gmail.com Fri Jul 2 09:13:46 2010 From: mcarthybn at gmail.com (Mcarthy boon) Date: Fri, 2 Jul 2010 12:43:46 +0530 Subject: [vlc-devel] windows side compile In-Reply-To: References: Message-ID: Thanks for the reply .But both links are not openning. Can you please take a look and let me know on that. Thanks Mac On Fri, Jul 2, 2010 at 12:38 PM, Kaarlo R?ih? wrote: > http://wiki.videolan.org/Win32CompileMSYSNew > or > http://wiki.videolan.org/Win32CompileCygwinNew > > 2010/7/2 Mcarthy boon > >> Hi , >> I have downloaded the source code from video Lan site. I want to compile >> in windows and how to compile link also not opening . >> >> Can anyone please give me a pointer where i can get the documentation or >> link to compile the source code in windows. >> >> Thanks >> Mac >> >> _______________________________________________ >> vlc-devel mailing list >> To unsubscribe or modify your subscription options: >> http://mailman.videolan.org/listinfo/vlc-devel >> >> > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon0126 at gmail.com Fri Jul 2 09:37:45 2010 From: simon0126 at gmail.com (simon) Date: Fri, 2 Jul 2010 16:37:45 +0900 Subject: [vlc-devel] windows side compile In-Reply-To: References: Message-ID: I can open the link documents now. Check again your internet setting. Also I recommend you compile on Linux. I successfully compiled VLC on Linux with VMware. 2010/7/2 Mcarthy boon > Thanks for the reply .But both links are not openning. > > Can you please take a look and let me know on that. > > Thanks > Mac > > > > On Fri, Jul 2, 2010 at 12:38 PM, Kaarlo R?ih? wrote: > >> http://wiki.videolan.org/Win32CompileMSYSNew >> or >> http://wiki.videolan.org/Win32CompileCygwinNew >> >> 2010/7/2 Mcarthy boon >> >>> Hi , >>> I have downloaded the source code from video Lan site. I want to compile >>> in windows and how to compile link also not opening . >>> >>> Can anyone please give me a pointer where i can get the documentation or >>> link to compile the source code in windows. >>> >>> Thanks >>> Mac >>> >>> _______________________________________________ >>> vlc-devel mailing list >>> To unsubscribe or modify your subscription options: >>> http://mailman.videolan.org/listinfo/vlc-devel >>> >>> >> >> _______________________________________________ >> vlc-devel mailing list >> To unsubscribe or modify your subscription options: >> http://mailman.videolan.org/listinfo/vlc-devel >> >> > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From abhimail007 at gmail.com Fri Jul 2 06:20:34 2010 From: abhimail007 at gmail.com (Abhijit Sonavane) Date: Fri, 2 Jul 2010 09:50:34 +0530 Subject: [vlc-devel] Permission And Help For Translating or Localisation of Marathi Language Message-ID: *My Name is Abhijit Sonavane and I am a student studying computer science.* *as per above subject i saw a videolan.org website and found that there is no support for marathi language.* *I want to support VLC by creating a translation for VLC in Marathi. I have read the instruction on to creating translation.* *And also I have downloaded the Poedit Software. And next I need for a translation is a localiztion file so PLS provide me that. you can also contact me via email or mobile phone(if needed ask for mobile no. via Email). * *If possible PLS provide the technical help and assistance to translate.* ** *Thanking You!!! * Abhijit Sonavane Abhimail007 at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nousernameremain at gmail.com Fri Jul 2 16:43:45 2010 From: nousernameremain at gmail.com (Sergi) Date: Fri, 2 Jul 2010 16:43:45 +0200 Subject: [vlc-devel] Spanish PO file Message-ID: Hello. I would like to correct the Spanish language file (it's a MO), because it has a lot of linguistical errors... I need the PO file in order to do it. If you send me the PO file, I will send you the perfect Spanish language MO. Thank you. -------------- next part -------------- An HTML attachment was scrubbed... URL: From kaarlo.raiha at gmail.com Sat Jul 3 11:57:07 2010 From: kaarlo.raiha at gmail.com (=?ISO-8859-1?B?S2FhcmxvIFLkaWjk?=) Date: Sat, 3 Jul 2010 12:57:07 +0300 Subject: [vlc-devel] Spanish PO file In-Reply-To: References: Message-ID: I am not the guy who works with translations, so I might give little outdated info, but IIRC you should contact the current Spanish translator (David Gonz?lez) and submit corrections to him. Contact info and other needed tips should be in http://www.videolan.org/developers/i18n/ (in case I gave wrong info, please correct me immediately) 2010/7/2 Sergi > Hello. I would like to correct the Spanish language file (it's a MO), > because it has a lot of linguistical errors... I need the PO file in order > to do it. If you send me the PO file, I will send you the perfect Spanish > language MO. Thank you. > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From preyankjain at gmail.com Sat Jul 3 09:49:30 2010 From: preyankjain at gmail.com (preyank jain) Date: Sat, 3 Jul 2010 13:19:30 +0530 Subject: [vlc-devel] i want to contribute on translation of vlc to gujarati lang Message-ID: hello sir, i would like to contribute in the vlc project translating it to gujarati lang. can u help me out how to start and work with it. -- Thanks & Best Regards, www.professional-seo-service.com Preyank -------------- next part -------------- An HTML attachment was scrubbed... URL: From atburrow at gmail.com Sat Jul 3 22:35:54 2010 From: atburrow at gmail.com (Austin Burrow) Date: Sat, 3 Jul 2010 15:35:54 -0500 Subject: [vlc-devel] Services Discovery Item Management Message-ID: <007b01cb1aef$56ca8550$045f8ff0$@com> Hello, I have been working on a permanent fix for an item duplication bug that exists within the UPnP SD Client. I had submitted a patch earlier on, but it introduced a possible annoyance to the end-user. Allow me to explain what the current issues are. The current fix is essentially only a "small hack". Although it fixes the problem, it introduces cosmetic issues with the playlist. For example, when the UPnP Server rebroadcasts it's directory structure, the VLC Client discards the old directory tree, causing the user to go back to the root node of the directory. The directory listing is then rebuilt with the new information, but the user is forced to traverse through the directory to find the item they were looking for again. Some servers may not push the directory structure too often, but we cannot rely on the server, as I would be annoyed if it were to happen once every 10 minutes. I have thought up another fix, but this would require certain features to be present within the VLC services discovery functions. Currently, services_discovery_AddItem does not allow the programmer to nest items within one another. It only allows a "2 deep" scope. An example of the limitation is below: Root Directory + Item 1 + Item 2 services_discovery_AddItem will not let the programmer specify a child-node to insert items into, so we would not be able to do the following: Root Directory + Item 1 + Sub Item 1 under Item 1 + Item 2 + Sub Item 1 of Item 2 + Sub-Sub Item 1 of Sub Item 1 This creates a limitation on what we are able to do. If we were able to do the above, we could simply preserve the old directory listing, then compare what items do not exist in the new directory listing, then remove them from the listing that's being shown to the user using services_discovery_RemoveItem. If new files were introduced within an already existing container, we could simply insert them with an updated services_discovery_AddItem function. I hope I explained this clearly. Please let me know if I need to explain anything further. Thanks for reading, Austin Burrow -------------- next part -------------- An HTML attachment was scrubbed... URL: From 010of001 at gmail.com Sun Jul 4 14:06:25 2010 From: 010of001 at gmail.com (David Kaplan) Date: Sun, 4 Jul 2010 15:06:25 +0300 Subject: [vlc-devel] GSoC In-Reply-To: References: Message-ID: On 24 June 2010 15:50, Pankaj yadav wrote: > > As soon as this is done ......Having complete VLC on phone is just a > matter of CONTRIBS and Tweaking. > I just wanted to say that I got an S60 phone 2 weeks ago and am looking forward to trying this out! Let me know if you need a beta tester. Good work! -------------- next part -------------- An HTML attachment was scrubbed... URL: From dilaroga at gmail.com Sun Jul 4 14:17:01 2010 From: dilaroga at gmail.com (Sebastien Zwickert) Date: Sun, 4 Jul 2010 14:17:01 +0200 Subject: [vlc-devel] [PATCH 2/5] Fixes comment. Message-ID: <9F42850E-7AB2-4333-A38C-B5984F4F5192@gmail.com> Hi, In attachment a patch that fixes a mistake in the comments of AoutChangeFilterString function. -- Sebastien Zwickert -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Fixes-comment.patch Type: application/octet-stream Size: 998 bytes Desc: not available URL: -------------- next part -------------- From dilaroga at gmail.com Sun Jul 4 14:35:27 2010 From: dilaroga at gmail.com (Sebastien Zwickert) Date: Sun, 4 Jul 2010 14:35:27 +0200 Subject: [vlc-devel] [PATCH 3/5] Removes the remaining colon at the end of the string list. Message-ID: <384CF5A7-BE0F-452F-9792-484DD562EAB9@gmail.com> Hi, AoutChangeFilterString takes care of the next colon when it removes a module from the strings list but this function doesn't remove the remaining colon when the removed module is the last of the list. Is this the wished behaviour ? In attachment, a patch that removes the remaining colon if needed. -- Sebastien Zwickert -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Removes-colon-at-the-end-of-the-string-list.patch Type: application/octet-stream Size: 869 bytes Desc: not available URL: -------------- next part -------------- From dinesh.muvvala at gmail.com Sun Jul 4 13:54:30 2010 From: dinesh.muvvala at gmail.com (Dinesh Muvvala) Date: Sun, 4 Jul 2010 14:54:30 +0300 Subject: [vlc-devel] VLC Telugu language translation Message-ID: Hello, I'm Dinesh Muvvala, a software engineer working mainly on mobile software development based in Finland. I would like to get involved with VLC project. As a starting point I thought I will start with translation of VLC player. I have noticed that at the moment VLC doesn't have anyone for translating to Telugu language. I would like to contribute to Telugu language support and maintain the same. please guide me how to start with this task. I have Ubuntu OS for performing this task. looking forward to hearing from you, Best Regards, Dinesh Muvvala dinesh.muvvala at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From hyc at highlandsun.com Sun Jul 4 22:03:25 2010 From: hyc at highlandsun.com (Howard Chu) Date: Sun, 4 Jul 2010 20:03:25 +0000 (UTC) Subject: [vlc-devel] =?utf-8?q?=5BPATCH=5D_Integrate_the_RTMPdump_library_?= =?utf-8?q?to_play_rtmp_and=09rtmpe_streams=2E?= References: Message-ID: Daniel Tisza gmail.com> writes: > > Hi, > > A minimalistic access plugin wrapper for librtmp in vlc. > Requires librtmp. > Use ./configure --enable-rtmpdump to enable for compiling. > > Allows saving and loading stream options to playlist. > > I also attach a sample playlist for testing purposes. I strongly recommend that you use RTMP_SetupURL() instead of the APIs you've used here. The RTMP_SetupStream() API is deprecated and I'm planning to remove all of that from the library. See the ffmpeg source for a good example of the preferred way to do things: http://git.ffmpeg.org/?p=ffmpeg;a=blob;f=libavformat/librtmp.c;h=344f0f9088f84bab40b32d454497c0c01c298eae;hb=HEAD Using this approach, apps like ffmpeg, mplayer, XBMC, and curl/libcurl all have a uniform method of specifying RTMP streams and parameters and the calling apps don't need to be modified whenever new RTMP parameters are added. (And they are added very often.) Please don't propagate the old rtmpdump parameter style in VLC. The old style is going away. > Daniel Tisza > > > From 28edfed4d36facd59bb54d55dc923cb48e6120e8 Mon Sep 17 00:00:00 2001 > From: Daniel Tisza gmail.com> > Date: Tue, 29 Jun 2010 13:45:28 +0300 > Subject: [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. > > A minimalistic access plugin wrapper for librtmp in vlc. > Requires librtmp. > Use ./configure --enable-rtmpdump to enable for compiling. From hyc at highlandsun.com Sun Jul 4 22:17:27 2010 From: hyc at highlandsun.com (Howard Chu) Date: Sun, 4 Jul 2010 20:17:27 +0000 (UTC) Subject: [vlc-devel] =?utf-8?q?=5BPATCH=5D_Integrate_the_RTMPdump_library_?= =?utf-8?q?to_play_rtmp_and=09rtmpe_streams=2E?= References: Message-ID: Howard Chu highlandsun.com> writes: > I strongly recommend that you use RTMP_SetupURL() instead of the APIs you've > used here. The RTMP_SetupStream() API is deprecated and I'm planning to remove > all of that from the library. And just to note - the preferred APIs are already called out in the documentation. http://rtmpdump.mplayerhq.hu/librtmp.3.html There's no reason to be digging around in the old APIs like this. From rafael.carre at gmail.com Mon Jul 5 00:04:25 2010 From: rafael.carre at gmail.com (=?ISO-8859-1?B?UmFmYetsIENhcnLp?=) Date: Mon, 5 Jul 2010 00:04:25 +0200 Subject: [vlc-devel] Fw: subscribe vlc-commits@videolan.org Message-ID: <20100705000425.0af00d76@zod> I subscribed vlc-commits to gmane Begin forwarded message: Date: Sun, 04 Jul 2010 23:19:00 +0200 From: Lars Magne Ingebrigtsen To: rafael.carre at gmail.com Newsgroups: gmane.discuss.subscribe Subject: Re: subscribe vlc-commits at videolan.org The following message is a courtesy copy of an article that has been posted to gmane.discuss.subscribe as well. rafael.carre at gmail.com writes: > #gmane.comp.video.videolan.vlc.commits vlc-commits at videolan.org > Commits in VLC media player repository > mailman dummy read-only > spam=ignore > lang=eng > mail-archive=yes > url=http://www.videolan.org/vlc > > only commits, replies go to gmane.comp.video.videolan.vlc.devel Subscription messages for the requested mailing lists have been sent. The resulting groups will be created when the first message arrives from the mailing lists. -- (domestic pets only, the antidote for overdose, milk.) larsi at gnus.org * Lars Magne Ingebrigtsen -- Rafa?l Carr? From jb at videolan.org Mon Jul 5 00:48:32 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Mon, 5 Jul 2010 00:48:32 +0200 Subject: [vlc-devel] [PATCH 2/5] Fixes comment. In-Reply-To: <9F42850E-7AB2-4333-A38C-B5984F4F5192@gmail.com> References: <9F42850E-7AB2-4333-A38C-B5984F4F5192@gmail.com> Message-ID: <20100704224832.GA12104@videolan.org> On Sun, Jul 04, 2010 at 02:17:01PM +0200, Sebastien Zwickert wrote : > In attachment a patch that fixes a mistake in the comments of AoutChangeFilterString function. Applied. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From naresh at tlen.pl Mon Jul 5 09:39:23 2010 From: naresh at tlen.pl (Kamil Klimek) Date: Mon, 5 Jul 2010 09:39:23 +0200 Subject: [vlc-devel] [PATCH] support for stream size in imem module Message-ID: <2B8E2DDC-3AA6-45B7-97C9-F3475D68A57E@tlen.pl> A non-text attachment was scrubbed... Name: 0001-support-for-stream-size-in-imem-access-module.patch Type: application/octet-stream Size: 1397 bytes Desc: not available URL: From kamil.klimek at team-solutions.pl Mon Jul 5 10:33:05 2010 From: kamil.klimek at team-solutions.pl (Kamil Klimek) Date: Mon, 5 Jul 2010 10:33:05 +0200 Subject: [vlc-devel] [PATCH] support for stream size in imem module (FINAL) Message-ID: A non-text attachment was scrubbed... Name: 0001-support-for-stream-size-in-imem-access-module.patch Type: application/octet-stream Size: 1395 bytes Desc: not available URL: From mirsal.ennaime at gmail.com Mon Jul 5 09:05:34 2010 From: mirsal.ennaime at gmail.com (Mirsal Ennaime) Date: Mon, 5 Jul 2010 09:05:34 +0200 Subject: [vlc-devel] [PATCH] Reorganize the dbus control module code Message-ID: <1278313534-7841-1-git-send-email-mirsal.ennaime@gmail.com> * Split the module source code into several files Functionality is unchanged, but the result is more maintainable. --- configure.ac | 1 + modules/control/Modules.am | 3 +- modules/control/dbus.c | 1312 --------------------------------- modules/control/dbus/Modules.am | 11 + modules/control/dbus/dbus.c | 554 ++++++++++++++ modules/control/dbus/dbus.h | 32 + modules/control/dbus/dbus_common.h | 110 +++ modules/control/dbus/dbus_player.c | 482 ++++++++++++ modules/control/dbus/dbus_player.h | 62 ++ modules/control/dbus/dbus_root.c | 141 ++++ modules/control/dbus/dbus_root.h | 49 ++ modules/control/dbus/dbus_tracklist.c | 346 +++++++++ modules/control/dbus/dbus_tracklist.h | 48 ++ 13 files changed, 1837 insertions(+), 1314 deletions(-) delete mode 100644 modules/control/dbus.c create mode 100644 modules/control/dbus/Modules.am create mode 100644 modules/control/dbus/dbus.c create mode 100644 modules/control/dbus/dbus.h create mode 100644 modules/control/dbus/dbus_common.h create mode 100644 modules/control/dbus/dbus_player.c create mode 100644 modules/control/dbus/dbus_player.h create mode 100644 modules/control/dbus/dbus_root.c create mode 100644 modules/control/dbus/dbus_root.h create mode 100644 modules/control/dbus/dbus_tracklist.c create mode 100644 modules/control/dbus/dbus_tracklist.h diff --git a/configure.ac b/configure.ac index c709758..9308cc5 100644 --- a/configure.ac +++ b/configure.ac @@ -4746,6 +4746,7 @@ AC_CONFIG_FILES([ modules/codec/wmafixed/Makefile modules/control/Makefile modules/control/http/Makefile + modules/control/dbus/Makefile modules/control/globalhotkeys/Makefile modules/demux/Makefile modules/demux/asf/Makefile diff --git a/modules/control/Modules.am b/modules/control/Modules.am index f48413e..630945d 100644 --- a/modules/control/Modules.am +++ b/modules/control/Modules.am @@ -1,11 +1,10 @@ -SUBDIRS = http globalhotkeys +SUBDIRS = http globalhotkeys dbus SOURCES_gestures = gestures.c SOURCES_netsync = netsync.c SOURCES_ntservice = ntservice.c SOURCES_hotkeys = hotkeys.c SOURCES_lirc = lirc.c SOURCES_oldrc = rc.c -SOURCES_dbus = dbus.c dbus.h if HAVE_DARWIN motion_extra = unimotion.c unimotion.h else diff --git a/modules/control/dbus.c b/modules/control/dbus.c deleted file mode 100644 index a9f59c1..0000000 --- a/modules/control/dbus.c +++ /dev/null @@ -1,1312 +0,0 @@ -/***************************************************************************** - * dbus.c : D-Bus control interface - ***************************************************************************** - * Copyright ?? 2006-2008 Rafa??l Carr?? - * Copyright ?? 2007-2008 Mirsal Ennaime - * Copyright ?? 2009 The VideoLAN team - * $Id$ - * - * Authors: Rafa??l Carr?? - * Mirsal Ennaime - * - * 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 - * (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. - * - * 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. - *****************************************************************************/ - -/* - * D-Bus Specification: - * http://dbus.freedesktop.org/doc/dbus-specification.html - * D-Bus low-level C API (libdbus) - * http://dbus.freedesktop.org/doc/dbus/api/html/index.html - * extract: - * "If you use this low-level API directly, you're signing up for some pain." - * - * MPRIS Specification version 1.0 - * http://wiki.xmms2.xmms.se/index.php/MPRIS - */ - -/***************************************************************************** - * Preamble - *****************************************************************************/ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include "dbus.h" - -#include -#include -#include -#include -#include -#include - -#include - -#include - -/***************************************************************************** - * Local prototypes. - *****************************************************************************/ - -static int Open ( vlc_object_t * ); -static void Close ( vlc_object_t * ); -static void Run ( intf_thread_t * ); - -static int StateChange( intf_thread_t *, int ); -static int TrackChange( intf_thread_t * ); -static int StatusChangeEmit( intf_thread_t *); -static int TrackListChangeEmit( intf_thread_t *, int, int ); - -static int AllCallback( vlc_object_t*, const char*, vlc_value_t, vlc_value_t, void* ); - -static int GetInputMeta ( input_item_t *, DBusMessageIter * ); -static int MarshalStatus ( intf_thread_t *, DBusMessageIter * ); -static int UpdateCaps( intf_thread_t* ); - -/* GetCaps() capabilities */ -enum -{ - CAPS_NONE = 0, - CAPS_CAN_GO_NEXT = 1 << 0, - CAPS_CAN_GO_PREV = 1 << 1, - CAPS_CAN_PAUSE = 1 << 2, - CAPS_CAN_PLAY = 1 << 3, - CAPS_CAN_SEEK = 1 << 4, - CAPS_CAN_PROVIDE_METADATA = 1 << 5, - CAPS_CAN_HAS_TRACKLIST = 1 << 6 -}; - -// The signal that can be get from the callbacks -enum -{ - SIGNAL_ITEM_CURRENT, - SIGNAL_INTF_CHANGE, - SIGNAL_PLAYLIST_ITEM_APPEND, - SIGNAL_PLAYLIST_ITEM_DELETED, - SIGNAL_RANDOM, - SIGNAL_REPEAT, - SIGNAL_LOOP, - SIGNAL_STATE -}; - -struct intf_sys_t -{ - DBusConnection *p_conn; - playlist_t *p_playlist; - bool b_meta_read; - dbus_int32_t i_caps; - bool b_dead; - vlc_array_t *p_events; - vlc_mutex_t lock; - input_thread_t *p_input; - bool b_unique; -}; - -typedef struct -{ - int signal; - int i_node; - int i_input_state; -} callback_info_t; - -#define INTF ((intf_thread_t *)p_this) -#define PL (INTF->p_sys->p_playlist) - - -/***************************************************************************** - * Module descriptor - *****************************************************************************/ -#define DBUS_UNIQUE_TEXT N_("Unique DBUS service id (org.mpris.vlc-)") -#define DBUS_UNIQUE_LONGTEXT N_( \ - "Use a unique dbus service id to identify this VLC instance on the DBUS bus. " \ - "The process identifier (PID) is added to the service name: org.mpris.vlc-" ) - -vlc_module_begin () - set_shortname( N_("dbus")) - set_category( CAT_INTERFACE ) - set_subcategory( SUBCAT_INTERFACE_CONTROL ) - set_description( N_("D-Bus control interface") ) - set_capability( "interface", 0 ) - set_callbacks( Open, Close ) - add_bool( "dbus-unique-service-id", false, NULL, - DBUS_UNIQUE_TEXT, DBUS_UNIQUE_LONGTEXT, true ) -vlc_module_end () - -/***************************************************************************** - * Methods - *****************************************************************************/ - -/* Player */ - -DBUS_METHOD( Quit ) -{ /* exits vlc */ - REPLY_INIT; - libvlc_Quit(INTF->p_libvlc); - REPLY_SEND; -} - -DBUS_METHOD( MprisVersion ) -{ /*implemented version of the mpris spec */ - REPLY_INIT; - OUT_ARGUMENTS; - VLC_UNUSED( p_this ); - dbus_uint16_t i_major = VLC_MPRIS_VERSION_MAJOR; - dbus_uint16_t i_minor = VLC_MPRIS_VERSION_MINOR; - DBusMessageIter version; - - if( !dbus_message_iter_open_container( &args, DBUS_TYPE_STRUCT, NULL, - &version ) ) - return DBUS_HANDLER_RESULT_NEED_MEMORY; - - if( !dbus_message_iter_append_basic( &version, DBUS_TYPE_UINT16, - &i_major ) ) - return DBUS_HANDLER_RESULT_NEED_MEMORY; - - if( !dbus_message_iter_append_basic( &version, DBUS_TYPE_UINT16, - &i_minor ) ) - return DBUS_HANDLER_RESULT_NEED_MEMORY; - - if( !dbus_message_iter_close_container( &args, &version ) ) - return DBUS_HANDLER_RESULT_NEED_MEMORY; - REPLY_SEND; -} - -DBUS_METHOD( PositionGet ) -{ /* returns position in milliseconds */ - REPLY_INIT; - OUT_ARGUMENTS; - dbus_int32_t i_pos; - - input_thread_t *p_input = playlist_CurrentInput( PL ); - - if( !p_input ) - i_pos = 0; - else - { - i_pos = var_GetTime( p_input, "time" ) / 1000; - vlc_object_release( p_input ); - } - ADD_INT32( &i_pos ); - REPLY_SEND; -} - -DBUS_METHOD( PositionSet ) -{ /* set position in milliseconds */ - - REPLY_INIT; - vlc_value_t position; - dbus_int32_t i_pos; - - DBusError error; - dbus_error_init( &error ); - - dbus_message_get_args( p_from, &error, - DBUS_TYPE_INT32, &i_pos, - DBUS_TYPE_INVALID ); - - if( dbus_error_is_set( &error ) ) - { - msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", - error.message ); - dbus_error_free( &error ); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - input_thread_t *p_input = playlist_CurrentInput( PL ); - - if( p_input ) - { - position.i_time = ((mtime_t)i_pos) * 1000; - var_Set( p_input, "time", position ); - vlc_object_release( p_input ); - } - REPLY_SEND; -} - -DBUS_METHOD( VolumeGet ) -{ /* returns volume in percentage */ - REPLY_INIT; - OUT_ARGUMENTS; - dbus_int32_t i_dbus_vol; - audio_volume_t i_vol; - - /* 2nd argument of aout_VolumeGet is int32 */ - aout_VolumeGet( PL, &i_vol ); - - double f_vol = 100. * i_vol / AOUT_VOLUME_MAX; - i_dbus_vol = round( f_vol ); - ADD_INT32( &i_dbus_vol ); - REPLY_SEND; -} - -DBUS_METHOD( VolumeSet ) -{ /* set volume in percentage */ - REPLY_INIT; - - DBusError error; - dbus_error_init( &error ); - - dbus_int32_t i_dbus_vol; - audio_volume_t i_vol; - - dbus_message_get_args( p_from, &error, - DBUS_TYPE_INT32, &i_dbus_vol, - DBUS_TYPE_INVALID ); - - if( dbus_error_is_set( &error ) ) - { - msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", - error.message ); - dbus_error_free( &error ); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - double f_vol = AOUT_VOLUME_MAX * i_dbus_vol / 100.; - i_vol = round( f_vol ); - aout_VolumeSet( PL, i_vol ); - REPLY_SEND; -} - -DBUS_METHOD( Next ) -{ /* next playlist item */ - REPLY_INIT; - playlist_Next( PL ); - REPLY_SEND; -} - -DBUS_METHOD( Prev ) -{ /* previous playlist item */ - REPLY_INIT; - playlist_Prev( PL ); - REPLY_SEND; -} - -DBUS_METHOD( Stop ) -{ /* stop playing */ - REPLY_INIT; - playlist_Stop( PL ); - REPLY_SEND; -} - -DBUS_METHOD( GetStatus ) -{ /* returns the current status as a struct of 4 ints */ -/* - First 0 = Playing, 1 = Paused, 2 = Stopped. - Second 0 = Playing linearly , 1 = Playing randomly. - Third 0 = Go to the next element once the current has finished playing , 1 = Repeat the current element - Fourth 0 = Stop playing once the last element has been played, 1 = Never give up playing * - */ - REPLY_INIT; - OUT_ARGUMENTS; - - MarshalStatus( p_this, &args ); - - REPLY_SEND; -} - -DBUS_METHOD( Pause ) -{ - REPLY_INIT; - playlist_Pause( PL ); - REPLY_SEND; -} - -DBUS_METHOD( Play ) -{ - REPLY_INIT; - - input_thread_t *p_input = playlist_CurrentInput( PL ); - - if( p_input ) - { - double i_pos = 0; - input_Control( p_input, INPUT_SET_POSITION, i_pos ); - vlc_object_release( p_input ); - } - else - playlist_Play( PL ); - - REPLY_SEND; -} - -DBUS_METHOD( GetCurrentMetadata ) -{ - REPLY_INIT; - OUT_ARGUMENTS; - playlist_t *p_playlist = PL; - - PL_LOCK; - playlist_item_t* p_item = playlist_CurrentPlayingItem( p_playlist ); - if( p_item ) - GetInputMeta( p_item->p_input, &args ); - PL_UNLOCK; - REPLY_SEND; -} - -DBUS_METHOD( GetCaps ) -{ - REPLY_INIT; - OUT_ARGUMENTS; - - ADD_INT32( &INTF->p_sys->i_caps ); - - REPLY_SEND; -} - -/* Media Player information */ - -DBUS_METHOD( Identity ) -{ - VLC_UNUSED(p_this); - REPLY_INIT; - OUT_ARGUMENTS; - char *psz_identity; - - if( asprintf( &psz_identity, "%s %s", PACKAGE, VERSION ) != -1 ) - { - ADD_STRING( &psz_identity ); - free( psz_identity ); - } - else - return DBUS_HANDLER_RESULT_NEED_MEMORY; - - REPLY_SEND; -} - -/* TrackList */ - -DBUS_METHOD( AddTrack ) -{ /* add the string to the playlist, and play it if the boolean is true */ - REPLY_INIT; - OUT_ARGUMENTS; - - DBusError error; - dbus_error_init( &error ); - - char *psz_mrl; - dbus_bool_t b_play; - - dbus_message_get_args( p_from, &error, - DBUS_TYPE_STRING, &psz_mrl, - DBUS_TYPE_BOOLEAN, &b_play, - DBUS_TYPE_INVALID ); - - if( dbus_error_is_set( &error ) ) - { - msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", - error.message ); - dbus_error_free( &error ); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - playlist_Add( PL, psz_mrl, NULL, PLAYLIST_APPEND | - ( ( b_play == TRUE ) ? PLAYLIST_GO : 0 ) , - PLAYLIST_END, true, false ); - - dbus_int32_t i_success = 0; - ADD_INT32( &i_success ); - - REPLY_SEND; -} - -DBUS_METHOD( GetCurrentTrack ) -{ - REPLY_INIT; - OUT_ARGUMENTS; - - playlist_t *p_playlist = PL; - - PL_LOCK; - dbus_int32_t i_position = PL->i_current_index; - PL_UNLOCK; - - ADD_INT32( &i_position ); - REPLY_SEND; -} - -DBUS_METHOD( GetMetadata ) -{ - REPLY_INIT; - OUT_ARGUMENTS; - DBusError error; - dbus_error_init( &error ); - - dbus_int32_t i_position; - playlist_t *p_playlist = PL; - - dbus_message_get_args( p_from, &error, - DBUS_TYPE_INT32, &i_position, - DBUS_TYPE_INVALID ); - - if( dbus_error_is_set( &error ) ) - { - msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", - error.message ); - dbus_error_free( &error ); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - PL_LOCK; - if( i_position < p_playlist->current.i_size ) - { - GetInputMeta( p_playlist->current.p_elems[i_position]->p_input, &args ); - } - - PL_UNLOCK; - REPLY_SEND; -} - -DBUS_METHOD( GetLength ) -{ - REPLY_INIT; - OUT_ARGUMENTS; - playlist_t *p_playlist = PL; - - PL_LOCK; - dbus_int32_t i_elements = PL->current.i_size; - PL_UNLOCK; - - ADD_INT32( &i_elements ); - REPLY_SEND; -} - -DBUS_METHOD( DelTrack ) -{ - REPLY_INIT; - - DBusError error; - dbus_error_init( &error ); - - dbus_int32_t i_position; - playlist_t *p_playlist = PL; - - dbus_message_get_args( p_from, &error, - DBUS_TYPE_INT32, &i_position, - DBUS_TYPE_INVALID ); - - if( dbus_error_is_set( &error ) ) - { - msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", - error.message ); - dbus_error_free( &error ); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - PL_LOCK; - if( i_position < p_playlist->current.i_size ) - { - playlist_DeleteFromInput( p_playlist, - p_playlist->current.p_elems[i_position]->p_input, - pl_Locked ); - } - PL_UNLOCK; - - REPLY_SEND; -} - -DBUS_METHOD( SetLoop ) -{ - REPLY_INIT; - OUT_ARGUMENTS; - - DBusError error; - dbus_bool_t b_loop; - - dbus_error_init( &error ); - dbus_message_get_args( p_from, &error, - DBUS_TYPE_BOOLEAN, &b_loop, - DBUS_TYPE_INVALID ); - - if( dbus_error_is_set( &error ) ) - { - msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", - error.message ); - dbus_error_free( &error ); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - var_SetBool( PL, "loop", ( b_loop == TRUE ) ); - - REPLY_SEND; -} - -DBUS_METHOD( Repeat ) -{ - REPLY_INIT; - OUT_ARGUMENTS; - - DBusError error; - dbus_bool_t b_repeat; - - dbus_error_init( &error ); - dbus_message_get_args( p_from, &error, - DBUS_TYPE_BOOLEAN, &b_repeat, - DBUS_TYPE_INVALID ); - - if( dbus_error_is_set( &error ) ) - { - msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", - error.message ); - dbus_error_free( &error ); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - var_SetBool( PL, "repeat", ( b_repeat == TRUE ) ); - - REPLY_SEND; -} - -DBUS_METHOD( SetRandom ) -{ - REPLY_INIT; - OUT_ARGUMENTS; - - DBusError error; - dbus_bool_t b_random; - - dbus_error_init( &error ); - dbus_message_get_args( p_from, &error, - DBUS_TYPE_BOOLEAN, &b_random, - DBUS_TYPE_INVALID ); - - if( dbus_error_is_set( &error ) ) - { - msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", - error.message ); - dbus_error_free( &error ); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - var_SetBool( PL, "random", ( b_random == TRUE ) ); - - REPLY_SEND; -} -/***************************************************************************** - * Introspection method - *****************************************************************************/ - -DBUS_METHOD( handle_introspect_root ) -{ /* handles introspection of root object */ - VLC_UNUSED(p_this); - REPLY_INIT; - OUT_ARGUMENTS; - ADD_STRING( &psz_introspection_xml_data_root ); - REPLY_SEND; -} - -DBUS_METHOD( handle_introspect_player ) -{ - VLC_UNUSED(p_this); - REPLY_INIT; - OUT_ARGUMENTS; - ADD_STRING( &psz_introspection_xml_data_player ); - REPLY_SEND; -} - -DBUS_METHOD( handle_introspect_tracklist ) -{ - VLC_UNUSED(p_this); - REPLY_INIT; - OUT_ARGUMENTS; - ADD_STRING( &psz_introspection_xml_data_tracklist ); - REPLY_SEND; -} - -/***************************************************************************** - * handle_*: answer to incoming messages - *****************************************************************************/ - -#define METHOD_FUNC( interface, method, function ) \ - else if( dbus_message_is_method_call( p_from, interface, method ) )\ - return function( p_conn, p_from, p_this ) - -DBUS_METHOD( handle_root ) -{ - - if( dbus_message_is_method_call( p_from, - DBUS_INTERFACE_INTROSPECTABLE, "Introspect" ) ) - return handle_introspect_root( p_conn, p_from, p_this ); - - /* here D-Bus method's names are associated to an handler */ - - METHOD_FUNC( MPRIS_DBUS_ROOT_INTERFACE, "Identity", Identity ); - METHOD_FUNC( MPRIS_DBUS_ROOT_INTERFACE, "MprisVersion", MprisVersion ); - METHOD_FUNC( MPRIS_DBUS_ROOT_INTERFACE, "Quit", Quit ); - - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; -} - - -DBUS_METHOD( handle_player ) -{ - if( dbus_message_is_method_call( p_from, - DBUS_INTERFACE_INTROSPECTABLE, "Introspect" ) ) - return handle_introspect_player( p_conn, p_from, p_this ); - - /* here D-Bus method's names are associated to an handler */ - - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "Prev", Prev ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "Next", Next ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "Stop", Stop ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "Play", Play ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "Pause", Pause ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "Repeat", Repeat ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "VolumeSet", VolumeSet ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "VolumeGet", VolumeGet ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "PositionSet", PositionSet ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "PositionGet", PositionGet ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "GetStatus", GetStatus ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "GetMetadata", GetCurrentMetadata ); - METHOD_FUNC( MPRIS_DBUS_PLAYER_INTERFACE, "GetCaps", GetCaps ); - - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; -} - -DBUS_METHOD( handle_tracklist ) -{ - if( dbus_message_is_method_call( p_from, - DBUS_INTERFACE_INTROSPECTABLE, "Introspect" ) ) - return handle_introspect_tracklist( p_conn, p_from, p_this ); - - /* here D-Bus method's names are associated to an handler */ - - METHOD_FUNC( MPRIS_DBUS_TRACKLIST_INTERFACE, "GetMetadata", GetMetadata ); - METHOD_FUNC( MPRIS_DBUS_TRACKLIST_INTERFACE, "GetCurrentTrack", GetCurrentTrack ); - METHOD_FUNC( MPRIS_DBUS_TRACKLIST_INTERFACE, "GetLength", GetLength ); - METHOD_FUNC( MPRIS_DBUS_TRACKLIST_INTERFACE, "AddTrack", AddTrack ); - METHOD_FUNC( MPRIS_DBUS_TRACKLIST_INTERFACE, "DelTrack", DelTrack ); - METHOD_FUNC( MPRIS_DBUS_TRACKLIST_INTERFACE, "SetLoop", SetLoop ); - METHOD_FUNC( MPRIS_DBUS_TRACKLIST_INTERFACE, "SetRandom", SetRandom ); - - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; -} - -/***************************************************************************** - * Open: initialize interface - *****************************************************************************/ - -static int Open( vlc_object_t *p_this ) -{ /* initialisation of the connection */ - intf_thread_t *p_intf = (intf_thread_t*)p_this; - intf_sys_t *p_sys = malloc( sizeof( intf_sys_t ) ); - playlist_t *p_playlist; - DBusConnection *p_conn; - DBusError error; - char *psz_service_name = NULL; - - if( !p_sys ) - return VLC_ENOMEM; - - p_sys->b_meta_read = false; - p_sys->i_caps = CAPS_NONE; - p_sys->b_dead = false; - p_sys->p_input = NULL; - - p_sys->b_unique = var_CreateGetBool( p_intf, "dbus-unique-service-id" ); - if( p_sys->b_unique ) - { - if( asprintf( &psz_service_name, "%s-%d", - VLC_MPRIS_DBUS_SERVICE, getpid() ) < 0 ) - { - free( p_sys ); - return VLC_ENOMEM; - } - } - else - { - psz_service_name = strdup(VLC_MPRIS_DBUS_SERVICE); - } - - dbus_error_init( &error ); - - /* connect to the session bus */ - p_conn = dbus_bus_get( DBUS_BUS_SESSION, &error ); - if( !p_conn ) - { - msg_Err( p_this, "Failed to connect to the D-Bus session daemon: %s", - error.message ); - dbus_error_free( &error ); - free( p_sys ); - return VLC_EGENERIC; - } - - /* register a well-known name on the bus */ - dbus_bus_request_name( p_conn, psz_service_name, 0, &error ); - if( dbus_error_is_set( &error ) ) - { - msg_Err( p_this, "Error requesting service %s: %s", - psz_service_name, error.message ); - dbus_error_free( &error ); - free( psz_service_name ); - free( p_sys ); - return VLC_EGENERIC; - } - msg_Info( p_intf, "listening on dbus as: %s", psz_service_name ); - free( psz_service_name ); - - /* we register the objects */ - dbus_connection_register_object_path( p_conn, MPRIS_DBUS_ROOT_PATH, - &vlc_dbus_root_vtable, p_this ); - dbus_connection_register_object_path( p_conn, MPRIS_DBUS_PLAYER_PATH, - &vlc_dbus_player_vtable, p_this ); - dbus_connection_register_object_path( p_conn, MPRIS_DBUS_TRACKLIST_PATH, - &vlc_dbus_tracklist_vtable, p_this ); - - dbus_connection_flush( p_conn ); - - p_intf->pf_run = Run; - p_intf->p_sys = p_sys; - p_sys->p_conn = p_conn; - p_sys->p_events = vlc_array_new(); - vlc_mutex_init( &p_sys->lock ); - - p_playlist = pl_Get( p_intf ); - p_sys->p_playlist = p_playlist; - - var_AddCallback( p_playlist, "item-current", AllCallback, p_intf ); - var_AddCallback( p_playlist, "intf-change", AllCallback, p_intf ); - var_AddCallback( p_playlist, "playlist-item-append", AllCallback, p_intf ); - var_AddCallback( p_playlist, "playlist-item-deleted", AllCallback, p_intf ); - var_AddCallback( p_playlist, "random", AllCallback, p_intf ); - var_AddCallback( p_playlist, "repeat", AllCallback, p_intf ); - var_AddCallback( p_playlist, "loop", AllCallback, p_intf ); - - UpdateCaps( p_intf ); - - return VLC_SUCCESS; -} - -/***************************************************************************** - * Close: destroy interface - *****************************************************************************/ - -static void Close ( vlc_object_t *p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t*) p_this; - intf_sys_t *p_sys = p_intf->p_sys; - playlist_t *p_playlist = p_sys->p_playlist; - - var_DelCallback( p_playlist, "item-current", AllCallback, p_intf ); - var_DelCallback( p_playlist, "intf-change", AllCallback, p_intf ); - var_DelCallback( p_playlist, "playlist-item-append", AllCallback, p_intf ); - var_DelCallback( p_playlist, "playlist-item-deleted", AllCallback, p_intf ); - var_DelCallback( p_playlist, "random", AllCallback, p_intf ); - var_DelCallback( p_playlist, "repeat", AllCallback, p_intf ); - var_DelCallback( p_playlist, "loop", AllCallback, p_intf ); - - if( p_sys->p_input ) - { - var_DelCallback( p_sys->p_input, "state", AllCallback, p_intf ); - vlc_object_release( p_sys->p_input ); - } - - dbus_connection_unref( p_sys->p_conn ); - - // Free the events array - for( int i = 0; i < vlc_array_count( p_sys->p_events ); i++ ) - { - callback_info_t* info = vlc_array_item_at_index( p_sys->p_events, i ); - free( info ); - } - vlc_mutex_destroy( &p_sys->lock ); - vlc_array_destroy( p_sys->p_events ); - free( p_sys ); -} - -/***************************************************************************** - * Run: main loop - *****************************************************************************/ - -static void Run ( intf_thread_t *p_intf ) -{ - for( ;; ) - { - if( dbus_connection_get_dispatch_status(p_intf->p_sys->p_conn) - == DBUS_DISPATCH_COMPLETE ) - msleep( INTF_IDLE_SLEEP ); - int canc = vlc_savecancel(); - dbus_connection_read_write_dispatch( p_intf->p_sys->p_conn, 0 ); - - /* Get the list of events to process - * - * We can't keep the lock on p_intf->p_sys->p_events, else we risk a - * deadlock: - * The signal functions could lock mutex X while p_events is locked; - * While some other function in vlc (playlist) might lock mutex X - * and then set a variable which would call AllCallback(), which itself - * needs to lock p_events to add a new event. - */ - vlc_mutex_lock( &p_intf->p_sys->lock ); - int i_events = vlc_array_count( p_intf->p_sys->p_events ); - callback_info_t* info[i_events]; - for( int i = i_events - 1; i >= 0; i-- ) - { - info[i] = vlc_array_item_at_index( p_intf->p_sys->p_events, i ); - vlc_array_remove( p_intf->p_sys->p_events, i ); - } - vlc_mutex_unlock( &p_intf->p_sys->lock ); - - for( int i = 0; i < i_events; i++ ) - { - switch( info[i]->signal ) - { - case SIGNAL_ITEM_CURRENT: - TrackChange( p_intf ); - break; - case SIGNAL_INTF_CHANGE: - case SIGNAL_PLAYLIST_ITEM_APPEND: - case SIGNAL_PLAYLIST_ITEM_DELETED: - TrackListChangeEmit( p_intf, info[i]->signal, info[i]->i_node ); - break; - case SIGNAL_RANDOM: - case SIGNAL_REPEAT: - case SIGNAL_LOOP: - StatusChangeEmit( p_intf ); - break; - case SIGNAL_STATE: - StateChange( p_intf, info[i]->i_input_state ); - break; - default: - assert(0); - } - free( info[i] ); - } - vlc_restorecancel( canc ); - } -} - - -// Get all the callbacks -static int AllCallback( vlc_object_t *p_this, const char *psz_var, - vlc_value_t oldval, vlc_value_t newval, void *p_data ) -{ - (void)p_this; - (void)oldval; - intf_thread_t *p_intf = (intf_thread_t*)p_data; - - callback_info_t *info = malloc( sizeof( callback_info_t ) ); - if( !info ) - return VLC_ENOMEM; - - // Wich event is it ? - if( !strcmp( "item-current", psz_var ) ) - info->signal = SIGNAL_ITEM_CURRENT; - else if( !strcmp( "intf-change", psz_var ) ) - info->signal = SIGNAL_INTF_CHANGE; - else if( !strcmp( "playlist-item-append", psz_var ) ) - { - info->signal = SIGNAL_PLAYLIST_ITEM_APPEND; - info->i_node = ((playlist_add_t*)newval.p_address)->i_node; - } - else if( !strcmp( "playlist-item-deleted", psz_var ) ) - info->signal = SIGNAL_PLAYLIST_ITEM_DELETED; - else if( !strcmp( "random", psz_var ) ) - info->signal = SIGNAL_RANDOM; - else if( !strcmp( "repeat", psz_var ) ) - info->signal = SIGNAL_REPEAT; - else if( !strcmp( "loop", psz_var ) ) - info->signal = SIGNAL_LOOP; - else if( !strcmp( "state", psz_var ) ) - { - info->signal = SIGNAL_STATE; - info->i_input_state = newval.i_int; - } - else - assert(0); - - // Append the event - vlc_mutex_lock( &p_intf->p_sys->lock ); - vlc_array_append( p_intf->p_sys->p_events, info ); - vlc_mutex_unlock( &p_intf->p_sys->lock ); - return VLC_SUCCESS; -} - -/****************************************************************************** - * CapsChange: player capabilities change signal - *****************************************************************************/ -DBUS_SIGNAL( CapsChangeSignal ) -{ - SIGNAL_INIT( MPRIS_DBUS_PLAYER_INTERFACE, - MPRIS_DBUS_PLAYER_PATH, - "CapsChange" ); - - OUT_ARGUMENTS; - - ADD_INT32( &((intf_thread_t*)p_data)->p_sys->i_caps ); - SIGNAL_SEND; -} - -/****************************************************************************** - * TrackListChange: tracklist order / length change signal - *****************************************************************************/ -DBUS_SIGNAL( TrackListChangeSignal ) -{ /* emit the new tracklist lengh */ - SIGNAL_INIT( MPRIS_DBUS_TRACKLIST_INTERFACE, - MPRIS_DBUS_TRACKLIST_PATH, - "TrackListChange"); - - OUT_ARGUMENTS; - - playlist_t *p_playlist = ((intf_thread_t*)p_data)->p_sys->p_playlist; - PL_LOCK; - dbus_int32_t i_elements = p_playlist->current.i_size; - PL_UNLOCK; - - ADD_INT32( &i_elements ); - SIGNAL_SEND; -} - -/***************************************************************************** - * TrackListChangeEmit: Emits the TrackListChange signal - *****************************************************************************/ -/* FIXME: It is not called on tracklist reordering */ -static int TrackListChangeEmit( intf_thread_t *p_intf, int signal, int i_node ) -{ - // "playlist-item-append" - if( signal == SIGNAL_PLAYLIST_ITEM_APPEND ) - { - /* don't signal when items are added/removed in p_category */ - playlist_t *p_playlist = p_intf->p_sys->p_playlist; - PL_LOCK; - playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_node ); - assert( p_item ); - while( p_item->p_parent ) - p_item = p_item->p_parent; - if( p_item == p_playlist->p_root_category ) - { - PL_UNLOCK; - return VLC_SUCCESS; - } - PL_UNLOCK; - } - - if( p_intf->p_sys->b_dead ) - return VLC_SUCCESS; - - UpdateCaps( p_intf ); - TrackListChangeSignal( p_intf->p_sys->p_conn, p_intf ); - return VLC_SUCCESS; -} -/***************************************************************************** - * TrackChange: Playlist item change callback - *****************************************************************************/ - -DBUS_SIGNAL( TrackChangeSignal ) -{ /* emit the metadata of the new item */ - SIGNAL_INIT( MPRIS_DBUS_PLAYER_INTERFACE, - MPRIS_DBUS_PLAYER_PATH, - "TrackChange" ); - - OUT_ARGUMENTS; - - input_item_t *p_item = (input_item_t*) p_data; - GetInputMeta ( p_item, &args ); - - SIGNAL_SEND; -} - -/***************************************************************************** - * StatusChange: Player status change signal - *****************************************************************************/ - -DBUS_SIGNAL( StatusChangeSignal ) -{ /* send the updated status info on the bus */ - SIGNAL_INIT( MPRIS_DBUS_PLAYER_INTERFACE, - MPRIS_DBUS_PLAYER_PATH, - "StatusChange" ); - - OUT_ARGUMENTS; - - /* we're called from a callback of input_thread_t, so it can not be - * destroyed before we return */ - MarshalStatus( (intf_thread_t*) p_data, &args ); - - SIGNAL_SEND; -} - -/***************************************************************************** - * StateChange: callback on input "state" - *****************************************************************************/ -//static int StateChange( vlc_object_t *p_this, const char* psz_var, -// vlc_value_t oldval, vlc_value_t newval, void *p_data ) -static int StateChange( intf_thread_t *p_intf, int i_input_state ) -{ - intf_sys_t *p_sys = p_intf->p_sys; - playlist_t *p_playlist = p_sys->p_playlist; - input_thread_t *p_input; - input_item_t *p_item; - - if( p_intf->p_sys->b_dead ) - return VLC_SUCCESS; - - UpdateCaps( p_intf ); - - if( !p_sys->b_meta_read && i_input_state == PLAYING_S ) - { - p_input = playlist_CurrentInput( p_playlist ); - if( p_input ) - { - p_item = input_GetItem( p_input ); - if( p_item ) - { - p_sys->b_meta_read = true; - TrackChangeSignal( p_sys->p_conn, p_item ); - } - vlc_object_release( p_input ); - } - } - - if( i_input_state == PLAYING_S || i_input_state == PAUSE_S || - i_input_state == END_S ) - { - StatusChangeSignal( p_sys->p_conn, p_intf ); - } - - return VLC_SUCCESS; -} - -/***************************************************************************** - * StatusChangeEmit: Emits the StatusChange signal - *****************************************************************************/ -static int StatusChangeEmit( intf_thread_t * p_intf ) -{ - if( p_intf->p_sys->b_dead ) - return VLC_SUCCESS; - - UpdateCaps( p_intf ); - StatusChangeSignal( p_intf->p_sys->p_conn, p_intf ); - return VLC_SUCCESS; -} - -/***************************************************************************** - * TrackChange: callback on playlist "item-current" - *****************************************************************************/ -static int TrackChange( intf_thread_t *p_intf ) -{ - intf_sys_t *p_sys = p_intf->p_sys; - playlist_t *p_playlist = p_sys->p_playlist; - input_thread_t *p_input = NULL; - input_item_t *p_item = NULL; - - if( p_intf->p_sys->b_dead ) - return VLC_SUCCESS; - - if( p_sys->p_input ) - { - var_DelCallback( p_sys->p_input, "state", AllCallback, p_intf ); - vlc_object_release( p_sys->p_input ); - p_sys->p_input = NULL; - } - - p_sys->b_meta_read = false; - - p_input = playlist_CurrentInput( p_playlist ); - if( !p_input ) - { - return VLC_SUCCESS; - } - - p_item = input_GetItem( p_input ); - if( !p_item ) - { - vlc_object_release( p_input ); - return VLC_EGENERIC; - } - - if( input_item_IsPreparsed( p_item ) ) - { - p_sys->b_meta_read = true; - TrackChangeSignal( p_sys->p_conn, p_item ); - } - - p_sys->p_input = p_input; - var_AddCallback( p_input, "state", AllCallback, p_intf ); - - return VLC_SUCCESS; -} - -/***************************************************************************** - * UpdateCaps: update p_sys->i_caps - * This function have to be called with the playlist unlocked - ****************************************************************************/ -static int UpdateCaps( intf_thread_t* p_intf ) -{ - intf_sys_t* p_sys = p_intf->p_sys; - dbus_int32_t i_caps = CAPS_CAN_HAS_TRACKLIST; - playlist_t* p_playlist = p_sys->p_playlist; - - PL_LOCK; - if( p_playlist->current.i_size > 0 ) - i_caps |= CAPS_CAN_PLAY | CAPS_CAN_GO_PREV | CAPS_CAN_GO_NEXT; - PL_UNLOCK; - - input_thread_t* p_input = playlist_CurrentInput( p_playlist ); - if( p_input ) - { - /* XXX: if UpdateCaps() is called too early, these are - * unconditionnaly true */ - if( var_GetBool( p_input, "can-pause" ) ) - i_caps |= CAPS_CAN_PAUSE; - if( var_GetBool( p_input, "can-seek" ) ) - i_caps |= CAPS_CAN_SEEK; - vlc_object_release( p_input ); - } - - if( p_sys->b_meta_read ) - i_caps |= CAPS_CAN_PROVIDE_METADATA; - - if( i_caps != p_intf->p_sys->i_caps ) - { - p_sys->i_caps = i_caps; - CapsChangeSignal( p_intf->p_sys->p_conn, (vlc_object_t*)p_intf ); - } - - return VLC_SUCCESS; -} - -/***************************************************************************** - * GetInputMeta: Fill a DBusMessage with the given input item metadata - *****************************************************************************/ - -#define ADD_META( entry, type, data ) \ - if( data ) { \ - dbus_message_iter_open_container( &dict, DBUS_TYPE_DICT_ENTRY, \ - NULL, &dict_entry ); \ - dbus_message_iter_append_basic( &dict_entry, DBUS_TYPE_STRING, \ - &ppsz_meta_items[entry] ); \ - dbus_message_iter_open_container( &dict_entry, DBUS_TYPE_VARIANT, \ - type##_AS_STRING, &variant ); \ - dbus_message_iter_append_basic( &variant, \ - type, \ - & data ); \ - dbus_message_iter_close_container( &dict_entry, &variant ); \ - dbus_message_iter_close_container( &dict, &dict_entry ); } - -#define ADD_VLC_META_STRING( entry, item ) \ - { \ - char * psz = input_item_Get##item( p_input );\ - ADD_META( entry, DBUS_TYPE_STRING, \ - psz ); \ - free( psz ); \ - } - -static int GetInputMeta( input_item_t* p_input, - DBusMessageIter *args ) -{ - DBusMessageIter dict, dict_entry, variant; - /** The duration of the track can be expressed in second, milli-seconds and - ??-seconds */ - dbus_int64_t i_mtime = input_item_GetDuration( p_input ); - dbus_uint32_t i_time = i_mtime / 1000000; - dbus_int64_t i_length = i_mtime / 1000; - - const char* ppsz_meta_items[] = - { - /* Official MPRIS metas */ - "location", "title", "artist", "album", "tracknumber", "time", "mtime", - "genre", "rating", "date", "arturl", - "audio-bitrate", "audio-samplerate", "video-bitrate", - /* VLC specifics metas */ - "audio-codec", "copyright", "description", "encodedby", "language", "length", - "nowplaying", "publisher", "setting", "status", "trackid", "url", - "video-codec" - }; - - dbus_message_iter_open_container( args, DBUS_TYPE_ARRAY, "{sv}", &dict ); - - ADD_VLC_META_STRING( 0, URI ); - ADD_VLC_META_STRING( 1, Title ); - ADD_VLC_META_STRING( 2, Artist ); - ADD_VLC_META_STRING( 3, Album ); - ADD_VLC_META_STRING( 4, TrackNum ); - ADD_META( 5, DBUS_TYPE_UINT32, i_time ); - ADD_META( 6, DBUS_TYPE_UINT32, i_mtime ); - ADD_VLC_META_STRING( 7, Genre ); - ADD_VLC_META_STRING( 8, Rating ); - ADD_VLC_META_STRING( 9, Date ); - ADD_VLC_META_STRING( 10, ArtURL ); - - ADD_VLC_META_STRING( 15, Copyright ); - ADD_VLC_META_STRING( 16, Description ); - ADD_VLC_META_STRING( 17, EncodedBy ); - ADD_VLC_META_STRING( 18, Language ); - ADD_META( 19, DBUS_TYPE_INT64, i_length ); - ADD_VLC_META_STRING( 20, NowPlaying ); - ADD_VLC_META_STRING( 21, Publisher ); - ADD_VLC_META_STRING( 22, Setting ); - ADD_VLC_META_STRING( 24, TrackID ); - ADD_VLC_META_STRING( 25, URL ); - - vlc_mutex_lock( &p_input->lock ); - if( p_input->p_meta ) - { - int i_status = vlc_meta_GetStatus( p_input->p_meta ); - ADD_META( 23, DBUS_TYPE_INT32, i_status ); - } - vlc_mutex_unlock( &p_input->lock ); - - dbus_message_iter_close_container( args, &dict ); - return VLC_SUCCESS; -} - -#undef ADD_META -#undef ADD_VLC_META_STRING - -/***************************************************************************** - * MarshalStatus: Fill a DBusMessage with the current player status - *****************************************************************************/ - -static int MarshalStatus( intf_thread_t* p_intf, DBusMessageIter* args ) -{ /* This is NOT the right way to do that, it would be better to sore - the status information in p_sys and update it on change, thus - avoiding a long lock */ - - DBusMessageIter status; - dbus_int32_t i_state, i_random, i_repeat, i_loop; - int i_val; - playlist_t* p_playlist = p_intf->p_sys->p_playlist; - input_thread_t* p_input = NULL; - - i_state = 2; - - p_input = playlist_CurrentInput( p_playlist ); - if( p_input ) - { - i_val = var_GetInteger( p_input, "state" ); - if( i_val >= END_S ) - i_state = 2; - else if( i_val == PAUSE_S ) - i_state = 1; - else if( i_val <= PLAYING_S ) - i_state = 0; - vlc_object_release( p_input ); - } - - i_random = var_CreateGetBool( p_playlist, "random" ); - - i_repeat = var_CreateGetBool( p_playlist, "repeat" ); - - i_loop = var_CreateGetBool( p_playlist, "loop" ); - - dbus_message_iter_open_container( args, DBUS_TYPE_STRUCT, NULL, &status ); - dbus_message_iter_append_basic( &status, DBUS_TYPE_INT32, &i_state ); - dbus_message_iter_append_basic( &status, DBUS_TYPE_INT32, &i_random ); - dbus_message_iter_append_basic( &status, DBUS_TYPE_INT32, &i_repeat ); - dbus_message_iter_append_basic( &status, DBUS_TYPE_INT32, &i_loop ); - dbus_message_iter_close_container( args, &status ); - - return VLC_SUCCESS; -} diff --git a/modules/control/dbus/Modules.am b/modules/control/dbus/Modules.am new file mode 100644 index 0000000..0570c12 --- /dev/null +++ b/modules/control/dbus/Modules.am @@ -0,0 +1,11 @@ +SOURCES_dbus = \ + dbus.c \ + dbus.h \ + dbus_common.h \ + dbus_root.h \ + dbus_root.c \ + dbus_player.h \ + dbus_player.c \ + dbus_tracklist.h \ + dbus_tracklist.c \ + $(NULL) diff --git a/modules/control/dbus/dbus.c b/modules/control/dbus/dbus.c new file mode 100644 index 0000000..afc7fa6 --- /dev/null +++ b/modules/control/dbus/dbus.c @@ -0,0 +1,554 @@ +/***************************************************************************** + * dbus.c : D-Bus control interface + ***************************************************************************** + * Copyright ?? 2006-2008 Rafa??l Carr?? + * Copyright ?? 2007-2010 Mirsal Ennaime + * Copyright ?? 2009-2010 The VideoLAN team + * $Id$ + * + * Authors: Rafa??l Carr?? + * Mirsal Ennaime + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +/* + * D-Bus Specification: + * http://dbus.freedesktop.org/doc/dbus-specification.html + * D-Bus low-level C API (libdbus) + * http://dbus.freedesktop.org/doc/dbus/api/html/index.html + * extract: + * "If you use this low-level API directly, you're signing up for some pain." + * + * MPRIS Specification version 1.0 + * http://wiki.xmms2.xmms.se/index.php/MPRIS + */ + +/***************************************************************************** + * Preamble + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include "dbus.h" +#include "dbus_common.h" +#include "dbus_root.h" +#include "dbus_player.h" +#include "dbus_tracklist.h" + +#include +#include +#include +#include +#include + +#include + +/***************************************************************************** + * Local prototypes. + *****************************************************************************/ + +static int Open ( vlc_object_t * ); +static void Close ( vlc_object_t * ); +static void Run ( intf_thread_t * ); + +static int StateChange( intf_thread_t *, int ); +static int TrackChange( intf_thread_t * ); +static int AllCallback( vlc_object_t*, const char*, vlc_value_t, vlc_value_t, void* ); + +typedef struct +{ + int signal; + int i_node; + int i_input_state; +} callback_info_t; + +/***************************************************************************** + * Module descriptor + *****************************************************************************/ +#define DBUS_UNIQUE_TEXT N_("Unique DBUS service id (org.mpris.vlc-)") +#define DBUS_UNIQUE_LONGTEXT N_( \ + "Use a unique dbus service id to identify this VLC instance on the DBUS bus. " \ + "The process identifier (PID) is added to the service name: org.mpris.vlc-" ) + +vlc_module_begin () + set_shortname( N_("dbus")) + set_category( CAT_INTERFACE ) + set_subcategory( SUBCAT_INTERFACE_CONTROL ) + set_description( N_("D-Bus control interface") ) + set_capability( "interface", 0 ) + set_callbacks( Open, Close ) + add_bool( "dbus-unique-service-id", false, NULL, + DBUS_UNIQUE_TEXT, DBUS_UNIQUE_LONGTEXT, true ) +vlc_module_end () + +/***************************************************************************** + * Open: initialize interface + *****************************************************************************/ + +static int Open( vlc_object_t *p_this ) +{ /* initialisation of the connection */ + intf_thread_t *p_intf = (intf_thread_t*)p_this; + intf_sys_t *p_sys = malloc( sizeof( intf_sys_t ) ); + playlist_t *p_playlist; + DBusConnection *p_conn; + DBusError error; + char *psz_service_name = NULL; + + if( !p_sys ) + return VLC_ENOMEM; + + p_sys->b_meta_read = false; + p_sys->i_caps = CAPS_NONE; + p_sys->b_dead = false; + p_sys->p_input = NULL; + + p_sys->b_unique = var_CreateGetBool( p_intf, "dbus-unique-service-id" ); + if( p_sys->b_unique ) + { + if( asprintf( &psz_service_name, "%s-%d", + DBUS_MPRIS_BUS_NAME, getpid() ) < 0 ) + { + free( p_sys ); + return VLC_ENOMEM; + } + } + else + { + psz_service_name = strdup(DBUS_MPRIS_BUS_NAME); + } + + dbus_error_init( &error ); + + /* connect to the session bus */ + p_conn = dbus_bus_get( DBUS_BUS_SESSION, &error ); + if( !p_conn ) + { + msg_Err( p_this, "Failed to connect to the D-Bus session daemon: %s", + error.message ); + dbus_error_free( &error ); + free( p_sys ); + return VLC_EGENERIC; + } + + /* register a well-known name on the bus */ + dbus_bus_request_name( p_conn, psz_service_name, 0, &error ); + if( dbus_error_is_set( &error ) ) + { + msg_Err( p_this, "Error requesting service %s: %s", + psz_service_name, error.message ); + dbus_error_free( &error ); + free( psz_service_name ); + free( p_sys ); + return VLC_EGENERIC; + } + msg_Info( p_intf, "listening on dbus as: %s", psz_service_name ); + free( psz_service_name ); + + /* we register the objects */ + dbus_connection_register_object_path( p_conn, DBUS_MPRIS_ROOT_PATH, + &dbus_mpris_root_vtable, p_this ); + dbus_connection_register_object_path( p_conn, DBUS_MPRIS_PLAYER_PATH, + &dbus_mpris_player_vtable, p_this ); + dbus_connection_register_object_path( p_conn, DBUS_MPRIS_TRACKLIST_PATH, + &dbus_mpris_tracklist_vtable, p_this ); + + dbus_connection_flush( p_conn ); + + p_intf->pf_run = Run; + p_intf->p_sys = p_sys; + p_sys->p_conn = p_conn; + p_sys->p_events = vlc_array_new(); + vlc_mutex_init( &p_sys->lock ); + + p_playlist = pl_Get( p_intf ); + p_sys->p_playlist = p_playlist; + + var_AddCallback( p_playlist, "item-current", AllCallback, p_intf ); + var_AddCallback( p_playlist, "intf-change", AllCallback, p_intf ); + var_AddCallback( p_playlist, "playlist-item-append", AllCallback, p_intf ); + var_AddCallback( p_playlist, "playlist-item-deleted", AllCallback, p_intf ); + var_AddCallback( p_playlist, "random", AllCallback, p_intf ); + var_AddCallback( p_playlist, "repeat", AllCallback, p_intf ); + var_AddCallback( p_playlist, "loop", AllCallback, p_intf ); + + UpdateCaps( p_intf ); + + return VLC_SUCCESS; +} + +/***************************************************************************** + * Close: destroy interface + *****************************************************************************/ + +static void Close ( vlc_object_t *p_this ) +{ + intf_thread_t *p_intf = (intf_thread_t*) p_this; + intf_sys_t *p_sys = p_intf->p_sys; + playlist_t *p_playlist = p_sys->p_playlist; + + var_DelCallback( p_playlist, "item-current", AllCallback, p_intf ); + var_DelCallback( p_playlist, "intf-change", AllCallback, p_intf ); + var_DelCallback( p_playlist, "playlist-item-append", AllCallback, p_intf ); + var_DelCallback( p_playlist, "playlist-item-deleted", AllCallback, p_intf ); + var_DelCallback( p_playlist, "random", AllCallback, p_intf ); + var_DelCallback( p_playlist, "repeat", AllCallback, p_intf ); + var_DelCallback( p_playlist, "loop", AllCallback, p_intf ); + + if( p_sys->p_input ) + { + var_DelCallback( p_sys->p_input, "state", AllCallback, p_intf ); + vlc_object_release( p_sys->p_input ); + } + + dbus_connection_unref( p_sys->p_conn ); + + // Free the events array + for( int i = 0; i < vlc_array_count( p_sys->p_events ); i++ ) + { + callback_info_t* info = vlc_array_item_at_index( p_sys->p_events, i ); + free( info ); + } + vlc_mutex_destroy( &p_sys->lock ); + vlc_array_destroy( p_sys->p_events ); + free( p_sys ); +} + +/***************************************************************************** + * Run: main loop + *****************************************************************************/ + +static void Run ( intf_thread_t *p_intf ) +{ + for( ;; ) + { + if( dbus_connection_get_dispatch_status(p_intf->p_sys->p_conn) + == DBUS_DISPATCH_COMPLETE ) + msleep( INTF_IDLE_SLEEP ); + int canc = vlc_savecancel(); + dbus_connection_read_write_dispatch( p_intf->p_sys->p_conn, 0 ); + + /* Get the list of events to process + * + * We can't keep the lock on p_intf->p_sys->p_events, else we risk a + * deadlock: + * The signal functions could lock mutex X while p_events is locked; + * While some other function in vlc (playlist) might lock mutex X + * and then set a variable which would call AllCallback(), which itself + * needs to lock p_events to add a new event. + */ + vlc_mutex_lock( &p_intf->p_sys->lock ); + int i_events = vlc_array_count( p_intf->p_sys->p_events ); + callback_info_t* info[i_events]; + for( int i = i_events - 1; i >= 0; i-- ) + { + info[i] = vlc_array_item_at_index( p_intf->p_sys->p_events, i ); + vlc_array_remove( p_intf->p_sys->p_events, i ); + } + vlc_mutex_unlock( &p_intf->p_sys->lock ); + + for( int i = 0; i < i_events; i++ ) + { + switch( info[i]->signal ) + { + case SIGNAL_ITEM_CURRENT: + TrackChange( p_intf ); + break; + case SIGNAL_INTF_CHANGE: + case SIGNAL_PLAYLIST_ITEM_APPEND: + case SIGNAL_PLAYLIST_ITEM_DELETED: + TrackListChangeEmit( p_intf, info[i]->signal, info[i]->i_node ); + break; + case SIGNAL_RANDOM: + case SIGNAL_REPEAT: + case SIGNAL_LOOP: + StatusChangeEmit( p_intf ); + break; + case SIGNAL_STATE: + StateChange( p_intf, info[i]->i_input_state ); + break; + default: + assert(0); + } + free( info[i] ); + } + vlc_restorecancel( canc ); + } +} + +/***************************************************************************** + * UpdateCaps: update p_sys->i_caps + * This function have to be called with the playlist unlocked + ****************************************************************************/ +int UpdateCaps( intf_thread_t* p_intf ) +{ + intf_sys_t* p_sys = p_intf->p_sys; + dbus_int32_t i_caps = CAPS_CAN_HAS_TRACKLIST; + playlist_t* p_playlist = p_sys->p_playlist; + + PL_LOCK; + if( p_playlist->current.i_size > 0 ) + i_caps |= CAPS_CAN_PLAY | CAPS_CAN_GO_PREV | CAPS_CAN_GO_NEXT; + PL_UNLOCK; + + input_thread_t* p_input = playlist_CurrentInput( p_playlist ); + if( p_input ) + { + /* XXX: if UpdateCaps() is called too early, these are + * unconditionnaly true */ + if( var_GetBool( p_input, "can-pause" ) ) + i_caps |= CAPS_CAN_PAUSE; + if( var_GetBool( p_input, "can-seek" ) ) + i_caps |= CAPS_CAN_SEEK; + vlc_object_release( p_input ); + } + + if( p_sys->b_meta_read ) + i_caps |= CAPS_CAN_PROVIDE_METADATA; + + if( i_caps != p_intf->p_sys->i_caps ) + { + p_sys->i_caps = i_caps; + CapsChangeEmit( p_intf ); + } + + return VLC_SUCCESS; +} + +// Get all the callbacks +static int AllCallback( vlc_object_t *p_this, const char *psz_var, + vlc_value_t oldval, vlc_value_t newval, void *p_data ) +{ + (void)p_this; + (void)oldval; + intf_thread_t *p_intf = (intf_thread_t*)p_data; + + callback_info_t *info = malloc( sizeof( callback_info_t ) ); + if( !info ) + return VLC_ENOMEM; + + // Wich event is it ? + if( !strcmp( "item-current", psz_var ) ) + info->signal = SIGNAL_ITEM_CURRENT; + else if( !strcmp( "intf-change", psz_var ) ) + info->signal = SIGNAL_INTF_CHANGE; + else if( !strcmp( "playlist-item-append", psz_var ) ) + { + info->signal = SIGNAL_PLAYLIST_ITEM_APPEND; + info->i_node = ((playlist_add_t*)newval.p_address)->i_node; + } + else if( !strcmp( "playlist-item-deleted", psz_var ) ) + info->signal = SIGNAL_PLAYLIST_ITEM_DELETED; + else if( !strcmp( "random", psz_var ) ) + info->signal = SIGNAL_RANDOM; + else if( !strcmp( "repeat", psz_var ) ) + info->signal = SIGNAL_REPEAT; + else if( !strcmp( "loop", psz_var ) ) + info->signal = SIGNAL_LOOP; + else if( !strcmp( "state", psz_var ) ) + { + info->signal = SIGNAL_STATE; + info->i_input_state = newval.i_int; + } + else + assert(0); + + // Append the event + vlc_mutex_lock( &p_intf->p_sys->lock ); + vlc_array_append( p_intf->p_sys->p_events, info ); + vlc_mutex_unlock( &p_intf->p_sys->lock ); + return VLC_SUCCESS; +} + +/***************************************************************************** + * StateChange: callback on input "state" + *****************************************************************************/ +//static int StateChange( vlc_object_t *p_this, const char* psz_var, +// vlc_value_t oldval, vlc_value_t newval, void *p_data ) +static int StateChange( intf_thread_t *p_intf, int i_input_state ) +{ + intf_sys_t *p_sys = p_intf->p_sys; + playlist_t *p_playlist = p_sys->p_playlist; + input_thread_t *p_input; + input_item_t *p_item; + + if( p_intf->p_sys->b_dead ) + return VLC_SUCCESS; + + UpdateCaps( p_intf ); + + if( !p_sys->b_meta_read && i_input_state == PLAYING_S ) + { + p_input = playlist_CurrentInput( p_playlist ); + if( p_input ) + { + p_item = input_GetItem( p_input ); + if( p_item ) + { + p_sys->b_meta_read = true; + TrackChangeEmit( p_intf, p_item ); + } + vlc_object_release( p_input ); + } + } + + if( i_input_state == PLAYING_S || i_input_state == PAUSE_S || + i_input_state == END_S ) + { + StatusChangeEmit( p_intf ); + } + + return VLC_SUCCESS; +} + +/***************************************************************************** + * TrackChange: callback on playlist "item-current" + *****************************************************************************/ +static int TrackChange( intf_thread_t *p_intf ) +{ + intf_sys_t *p_sys = p_intf->p_sys; + playlist_t *p_playlist = p_sys->p_playlist; + input_thread_t *p_input = NULL; + input_item_t *p_item = NULL; + + if( p_intf->p_sys->b_dead ) + return VLC_SUCCESS; + + if( p_sys->p_input ) + { + var_DelCallback( p_sys->p_input, "state", AllCallback, p_intf ); + vlc_object_release( p_sys->p_input ); + p_sys->p_input = NULL; + } + + p_sys->b_meta_read = false; + + p_input = playlist_CurrentInput( p_playlist ); + if( !p_input ) + { + return VLC_SUCCESS; + } + + p_item = input_GetItem( p_input ); + if( !p_item ) + { + vlc_object_release( p_input ); + return VLC_EGENERIC; + } + + if( input_item_IsPreparsed( p_item ) ) + { + p_sys->b_meta_read = true; + TrackChangeEmit( p_intf, p_item ); + } + + p_sys->p_input = p_input; + var_AddCallback( p_input, "state", AllCallback, p_intf ); + + return VLC_SUCCESS; +} + +/***************************************************************************** + * GetInputMeta: Fill a DBusMessage with the given input item metadata + *****************************************************************************/ + +#define ADD_META( entry, type, data ) \ + if( data ) { \ + dbus_message_iter_open_container( &dict, DBUS_TYPE_DICT_ENTRY, \ + NULL, &dict_entry ); \ + dbus_message_iter_append_basic( &dict_entry, DBUS_TYPE_STRING, \ + &ppsz_meta_items[entry] ); \ + dbus_message_iter_open_container( &dict_entry, DBUS_TYPE_VARIANT, \ + type##_AS_STRING, &variant ); \ + dbus_message_iter_append_basic( &variant, \ + type, \ + & data ); \ + dbus_message_iter_close_container( &dict_entry, &variant ); \ + dbus_message_iter_close_container( &dict, &dict_entry ); } + +#define ADD_VLC_META_STRING( entry, item ) \ + { \ + char * psz = input_item_Get##item( p_input );\ + ADD_META( entry, DBUS_TYPE_STRING, \ + psz ); \ + free( psz ); \ + } + +int GetInputMeta( input_item_t* p_input, + DBusMessageIter *args ) +{ + DBusMessageIter dict, dict_entry, variant; + /** The duration of the track can be expressed in second, milli-seconds and + ??-seconds */ + dbus_int64_t i_mtime = input_item_GetDuration( p_input ); + dbus_uint32_t i_time = i_mtime / 1000000; + dbus_int64_t i_length = i_mtime / 1000; + + const char* ppsz_meta_items[] = + { + /* Official MPRIS metas */ + "location", "title", "artist", "album", "tracknumber", "time", "mtime", + "genre", "rating", "date", "arturl", + "audio-bitrate", "audio-samplerate", "video-bitrate", + /* VLC specifics metas */ + "audio-codec", "copyright", "description", "encodedby", "language", "length", + "nowplaying", "publisher", "setting", "status", "trackid", "url", + "video-codec" + }; + + dbus_message_iter_open_container( args, DBUS_TYPE_ARRAY, "{sv}", &dict ); + + ADD_VLC_META_STRING( 0, URI ); + ADD_VLC_META_STRING( 1, Title ); + ADD_VLC_META_STRING( 2, Artist ); + ADD_VLC_META_STRING( 3, Album ); + ADD_VLC_META_STRING( 4, TrackNum ); + ADD_META( 5, DBUS_TYPE_UINT32, i_time ); + ADD_META( 6, DBUS_TYPE_UINT32, i_mtime ); + ADD_VLC_META_STRING( 7, Genre ); + ADD_VLC_META_STRING( 8, Rating ); + ADD_VLC_META_STRING( 9, Date ); + ADD_VLC_META_STRING( 10, ArtURL ); + + ADD_VLC_META_STRING( 15, Copyright ); + ADD_VLC_META_STRING( 16, Description ); + ADD_VLC_META_STRING( 17, EncodedBy ); + ADD_VLC_META_STRING( 18, Language ); + ADD_META( 19, DBUS_TYPE_INT64, i_length ); + ADD_VLC_META_STRING( 20, NowPlaying ); + ADD_VLC_META_STRING( 21, Publisher ); + ADD_VLC_META_STRING( 22, Setting ); + ADD_VLC_META_STRING( 24, TrackID ); + ADD_VLC_META_STRING( 25, URL ); + + vlc_mutex_lock( &p_input->lock ); + if( p_input->p_meta ) + { + int i_status = vlc_meta_GetStatus( p_input->p_meta ); + ADD_META( 23, DBUS_TYPE_INT32, i_status ); + } + vlc_mutex_unlock( &p_input->lock ); + + dbus_message_iter_close_container( args, &dict ); + return VLC_SUCCESS; +} + +#undef ADD_META +#undef ADD_VLC_META_STRING + + diff --git a/modules/control/dbus/dbus.h b/modules/control/dbus/dbus.h new file mode 100644 index 0000000..7a6a5e5 --- /dev/null +++ b/modules/control/dbus/dbus.h @@ -0,0 +1,32 @@ +/***************************************************************************** + * dbus.h : D-Bus control interface + ***************************************************************************** + * Copyright ?? 2006-2008 Rafa??l Carr?? + * Copyright ?? 2007-2010 Mirsal Ennaime + * Copyright ?? 2009-2010 The VideoLAN team + * $Id$ + * + * Authors: Rafa??l Carr?? + * Mirsal ENNAIME + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +#ifndef _VLC_DBUS_H +#define _VLC_DBUS_H + +#define DBUS_MPRIS_BUS_NAME "org.mpris.vlc" + +#endif //dbus.h diff --git a/modules/control/dbus/dbus_common.h b/modules/control/dbus/dbus_common.h new file mode 100644 index 0000000..7007d4d --- /dev/null +++ b/modules/control/dbus/dbus_common.h @@ -0,0 +1,110 @@ +/***************************************************************************** + * dbus-common.h : Common header for D-Bus control modules + ***************************************************************************** + * Copyright ?? 2006-2008 Rafa??l Carr?? + * Copyright ?? 2007-2010 Mirsal Ennaime + * Copyright ?? 2009-2010 The VideoLAN team + * $Id$ + * + * Authors: Mirsal ENNAIME + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +#ifndef _VLC_DBUS_COMMON_H +#define _VLC_DBUS_COMMON_H + +#include +#include +#include + +/* MACROS */ + +#define INTF ((intf_thread_t *)p_this) +#define PL (INTF->p_sys->p_playlist) + +#define DBUS_METHOD( method_function ) \ + static DBusHandlerResult method_function \ + ( DBusConnection *p_conn, DBusMessage *p_from, void *p_this ) + +#define DBUS_SIGNAL( signal_function ) \ + static DBusHandlerResult signal_function \ + ( DBusConnection *p_conn, void *p_data ) + +#define REPLY_INIT \ + DBusMessage* p_msg = dbus_message_new_method_return( p_from ); \ + if( !p_msg ) return DBUS_HANDLER_RESULT_NEED_MEMORY; \ + +#define REPLY_SEND \ + if( !dbus_connection_send( p_conn, p_msg, NULL ) ) \ + return DBUS_HANDLER_RESULT_NEED_MEMORY; \ + dbus_connection_flush( p_conn ); \ + dbus_message_unref( p_msg ); \ + return DBUS_HANDLER_RESULT_HANDLED + +#define SIGNAL_INIT( interface, path, signal ) \ + DBusMessage *p_msg = dbus_message_new_signal( path, \ + interface, signal ); \ + if( !p_msg ) return DBUS_HANDLER_RESULT_NEED_MEMORY; \ + +#define SIGNAL_SEND \ + if( !dbus_connection_send( p_conn, p_msg, NULL ) ) \ + return DBUS_HANDLER_RESULT_NEED_MEMORY; \ + dbus_message_unref( p_msg ); \ + dbus_connection_flush( p_conn ); \ + return DBUS_HANDLER_RESULT_HANDLED + +#define OUT_ARGUMENTS \ + DBusMessageIter args; \ + dbus_message_iter_init_append( p_msg, &args ) + +#define DBUS_ADD( dbus_type, value ) \ + if( !dbus_message_iter_append_basic( &args, dbus_type, value ) ) \ + return DBUS_HANDLER_RESULT_NEED_MEMORY + +#define ADD_STRING( s ) DBUS_ADD( DBUS_TYPE_STRING, s ) +#define ADD_BOOL( b ) DBUS_ADD( DBUS_TYPE_BOOLEAN, b ) +#define ADD_INT32( i ) DBUS_ADD( DBUS_TYPE_INT32, i ) +#define ADD_BYTE( b ) DBUS_ADD( DBUS_TYPE_BYTE, b ) + +struct intf_sys_t +{ + DBusConnection *p_conn; + playlist_t *p_playlist; + bool b_meta_read; + dbus_int32_t i_caps; + bool b_dead; + vlc_array_t *p_events; + vlc_mutex_t lock; + input_thread_t *p_input; + bool b_unique; +}; + +enum +{ + SIGNAL_ITEM_CURRENT, + SIGNAL_INTF_CHANGE, + SIGNAL_PLAYLIST_ITEM_APPEND, + SIGNAL_PLAYLIST_ITEM_DELETED, + SIGNAL_RANDOM, + SIGNAL_REPEAT, + SIGNAL_LOOP, + SIGNAL_STATE +}; + +int GetInputMeta ( input_item_t* p_input, DBusMessageIter *args ); +int UpdateCaps ( intf_thread_t* ); + +#endif //dbus-common.h diff --git a/modules/control/dbus/dbus_player.c b/modules/control/dbus/dbus_player.c new file mode 100644 index 0000000..4189a25 --- /dev/null +++ b/modules/control/dbus/dbus_player.c @@ -0,0 +1,482 @@ +/***************************************************************************** + * dbus-player.h : dbus control module (mpris v1.0) - /Player object + ***************************************************************************** + * Copyright ?? 2006-2008 Rafa??l Carr?? + * Copyright ?? 2007-2010 Mirsal Ennaime + * Copyright ?? 2009-2010 The VideoLAN team + * $Id$ + * + * Authors: Mirsal ENNAIME + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include + +#include + +#include "dbus_player.h" +#include "dbus_common.h" + +static int MarshalStatus ( intf_thread_t *, DBusMessageIter * ); + +/* XML data to answer org.freedesktop.DBus.Introspectable.Introspect requests */ +static const char* psz_player_introspection_xml = +"\n" +"" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +; + +DBUS_METHOD( PositionGet ) +{ /* returns position in milliseconds */ + REPLY_INIT; + OUT_ARGUMENTS; + dbus_int32_t i_pos; + + input_thread_t *p_input = playlist_CurrentInput( PL ); + + if( !p_input ) + i_pos = 0; + else + { + i_pos = var_GetTime( p_input, "time" ) / 1000; + vlc_object_release( p_input ); + } + ADD_INT32( &i_pos ); + REPLY_SEND; +} + +DBUS_METHOD( PositionSet ) +{ /* set position in milliseconds */ + + REPLY_INIT; + vlc_value_t position; + dbus_int32_t i_pos; + + DBusError error; + dbus_error_init( &error ); + + dbus_message_get_args( p_from, &error, + DBUS_TYPE_INT32, &i_pos, + DBUS_TYPE_INVALID ); + + if( dbus_error_is_set( &error ) ) + { + msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", + error.message ); + dbus_error_free( &error ); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + input_thread_t *p_input = playlist_CurrentInput( PL ); + + if( p_input ) + { + position.i_time = ((mtime_t)i_pos) * 1000; + var_Set( p_input, "time", position ); + vlc_object_release( p_input ); + } + REPLY_SEND; +} + +DBUS_METHOD( VolumeGet ) +{ /* returns volume in percentage */ + REPLY_INIT; + OUT_ARGUMENTS; + dbus_int32_t i_dbus_vol; + audio_volume_t i_vol; + + /* 2nd argument of aout_VolumeGet is int32 */ + aout_VolumeGet( PL, &i_vol ); + + double f_vol = 100. * i_vol / AOUT_VOLUME_MAX; + i_dbus_vol = round( f_vol ); + ADD_INT32( &i_dbus_vol ); + REPLY_SEND; +} + +DBUS_METHOD( VolumeSet ) +{ /* set volume in percentage */ + REPLY_INIT; + + DBusError error; + dbus_error_init( &error ); + + dbus_int32_t i_dbus_vol; + audio_volume_t i_vol; + + dbus_message_get_args( p_from, &error, + DBUS_TYPE_INT32, &i_dbus_vol, + DBUS_TYPE_INVALID ); + + if( dbus_error_is_set( &error ) ) + { + msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", + error.message ); + dbus_error_free( &error ); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + double f_vol = AOUT_VOLUME_MAX * i_dbus_vol / 100.; + i_vol = round( f_vol ); + aout_VolumeSet( PL, i_vol ); + REPLY_SEND; +} + +DBUS_METHOD( Next ) +{ /* next playlist item */ + REPLY_INIT; + playlist_Next( PL ); + REPLY_SEND; +} + +DBUS_METHOD( Prev ) +{ /* previous playlist item */ + REPLY_INIT; + playlist_Prev( PL ); + REPLY_SEND; +} + +DBUS_METHOD( Stop ) +{ /* stop playing */ + REPLY_INIT; + playlist_Stop( PL ); + REPLY_SEND; +} + +DBUS_METHOD( GetStatus ) +{ /* returns the current status as a struct of 4 ints */ +/* + First 0 = Playing, 1 = Paused, 2 = Stopped. + Second 0 = Playing linearly , 1 = Playing randomly. + Third 0 = Go to the next element once the current has finished playing , 1 = Repeat the current element + Fourth 0 = Stop playing once the last element has been played, 1 = Never give up playing * + */ + REPLY_INIT; + OUT_ARGUMENTS; + + MarshalStatus( p_this, &args ); + + REPLY_SEND; +} + +DBUS_METHOD( Pause ) +{ + REPLY_INIT; + playlist_Pause( PL ); + REPLY_SEND; +} + +DBUS_METHOD( Play ) +{ + REPLY_INIT; + + input_thread_t *p_input = playlist_CurrentInput( PL ); + + if( p_input ) + { + double i_pos = 0; + input_Control( p_input, INPUT_SET_POSITION, i_pos ); + vlc_object_release( p_input ); + } + else + playlist_Play( PL ); + + REPLY_SEND; +} + +DBUS_METHOD( Repeat ) +{ + REPLY_INIT; + OUT_ARGUMENTS; + + DBusError error; + dbus_bool_t b_repeat; + + dbus_error_init( &error ); + dbus_message_get_args( p_from, &error, + DBUS_TYPE_BOOLEAN, &b_repeat, + DBUS_TYPE_INVALID ); + + if( dbus_error_is_set( &error ) ) + { + msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", + error.message ); + dbus_error_free( &error ); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + var_SetBool( PL, "repeat", ( b_repeat == TRUE ) ); + + REPLY_SEND; +} + +DBUS_METHOD( GetCurrentMetadata ) +{ + REPLY_INIT; + OUT_ARGUMENTS; + playlist_t *p_playlist = PL; + + PL_LOCK; + playlist_item_t* p_item = playlist_CurrentPlayingItem( p_playlist ); + if( p_item ) + GetInputMeta( p_item->p_input, &args ); + PL_UNLOCK; + REPLY_SEND; +} + +DBUS_METHOD( GetCaps ) +{ + REPLY_INIT; + OUT_ARGUMENTS; + + ADD_INT32( &INTF->p_sys->i_caps ); + + REPLY_SEND; +} + +/***************************************************************************** + * StatusChange: Player status change signal + *****************************************************************************/ + +DBUS_SIGNAL( StatusChangeSignal ) +{ /* send the updated status info on the bus */ + SIGNAL_INIT( DBUS_MPRIS_PLAYER_INTERFACE, + DBUS_MPRIS_PLAYER_PATH, + "StatusChange" ); + + OUT_ARGUMENTS; + + /* we're called from a callback of input_thread_t, so it can not be + * destroyed before we return */ + MarshalStatus( (intf_thread_t*) p_data, &args ); + + SIGNAL_SEND; +} + +/***************************************************************************** + * TrackChange: Playlist item change callback + *****************************************************************************/ + +DBUS_SIGNAL( TrackChangeSignal ) +{ /* emit the metadata of the new item */ + SIGNAL_INIT( DBUS_MPRIS_PLAYER_INTERFACE, + DBUS_MPRIS_PLAYER_PATH, + "TrackChange" ); + + OUT_ARGUMENTS; + + input_item_t *p_item = (input_item_t*) p_data; + GetInputMeta ( p_item, &args ); + + SIGNAL_SEND; +} + +/****************************************************************************** + * CapsChange: player capabilities change signal + *****************************************************************************/ +DBUS_SIGNAL( CapsChangeSignal ) +{ + SIGNAL_INIT( DBUS_MPRIS_PLAYER_INTERFACE, + DBUS_MPRIS_PLAYER_PATH, + "CapsChange" ); + + OUT_ARGUMENTS; + + ADD_INT32( &((intf_thread_t*)p_data)->p_sys->i_caps ); + SIGNAL_SEND; +} + +DBUS_METHOD( handle_introspect_player ) +{ + VLC_UNUSED(p_this); + REPLY_INIT; + OUT_ARGUMENTS; + ADD_STRING( &psz_player_introspection_xml ); + REPLY_SEND; +} + +#define METHOD_FUNC( interface, method, function ) \ + else if( dbus_message_is_method_call( p_from, interface, method ) )\ + return function( p_conn, p_from, p_this ) + +DBusHandlerResult +handle_player ( DBusConnection *p_conn, DBusMessage *p_from, void *p_this ) +{ + if( dbus_message_is_method_call( p_from, + DBUS_INTERFACE_INTROSPECTABLE, "Introspect" ) ) + return handle_introspect_player( p_conn, p_from, p_this ); + + /* here D-Bus method names are associated to an handler */ + + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "Prev", Prev ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "Next", Next ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "Stop", Stop ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "Play", Play ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "Pause", Pause ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "Repeat", Repeat ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "VolumeSet", VolumeSet ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "VolumeGet", VolumeGet ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "PositionSet", PositionSet ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "PositionGet", PositionGet ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "GetStatus", GetStatus ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "GetMetadata", GetCurrentMetadata ); + METHOD_FUNC( DBUS_MPRIS_PLAYER_INTERFACE, "GetCaps", GetCaps ); + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +#undef METHOD_FUNC + +/***************************************************************************** + * StatusChangeEmit: Emits the StatusChange signal + *****************************************************************************/ +int StatusChangeEmit( intf_thread_t * p_intf ) +{ + if( p_intf->p_sys->b_dead ) + return VLC_SUCCESS; + + UpdateCaps( p_intf ); + StatusChangeSignal( p_intf->p_sys->p_conn, p_intf ); + return VLC_SUCCESS; +} + +/***************************************************************************** + * CapsChangeEmit: Emits the CapsChange signal + *****************************************************************************/ +int CapsChangeEmit( intf_thread_t * p_intf ) +{ + if( p_intf->p_sys->b_dead ) + return VLC_SUCCESS; + + CapsChangeSignal( p_intf->p_sys->p_conn, p_intf ); + return VLC_SUCCESS; +} + +/***************************************************************************** + * TrackChangeEmit: Emits the TrackChange signal + *****************************************************************************/ +int TrackChangeEmit( intf_thread_t * p_intf, input_item_t* p_item ) +{ + if( p_intf->p_sys->b_dead ) + return VLC_SUCCESS; + + UpdateCaps( p_intf ); + TrackChangeSignal( p_intf->p_sys->p_conn, p_item ); + return VLC_SUCCESS; +} + +/***************************************************************************** + * MarshalStatus: Fill a DBusMessage with the current player status + *****************************************************************************/ + +static int MarshalStatus( intf_thread_t* p_intf, DBusMessageIter* args ) +{ /* This is NOT the right way to do that, it would be better to sore + the status information in p_sys and update it on change, thus + avoiding a long lock */ + + DBusMessageIter status; + dbus_int32_t i_state, i_random, i_repeat, i_loop; + int i_val; + playlist_t* p_playlist = p_intf->p_sys->p_playlist; + input_thread_t* p_input = NULL; + + i_state = 2; + + p_input = playlist_CurrentInput( p_playlist ); + if( p_input ) + { + i_val = var_GetInteger( p_input, "state" ); + if( i_val >= END_S ) + i_state = 2; + else if( i_val == PAUSE_S ) + i_state = 1; + else if( i_val <= PLAYING_S ) + i_state = 0; + vlc_object_release( p_input ); + } + + i_random = var_CreateGetBool( p_playlist, "random" ); + + i_repeat = var_CreateGetBool( p_playlist, "repeat" ); + + i_loop = var_CreateGetBool( p_playlist, "loop" ); + + dbus_message_iter_open_container( args, DBUS_TYPE_STRUCT, NULL, &status ); + dbus_message_iter_append_basic( &status, DBUS_TYPE_INT32, &i_state ); + dbus_message_iter_append_basic( &status, DBUS_TYPE_INT32, &i_random ); + dbus_message_iter_append_basic( &status, DBUS_TYPE_INT32, &i_repeat ); + dbus_message_iter_append_basic( &status, DBUS_TYPE_INT32, &i_loop ); + dbus_message_iter_close_container( args, &status ); + + return VLC_SUCCESS; +} diff --git a/modules/control/dbus/dbus_player.h b/modules/control/dbus/dbus_player.h new file mode 100644 index 0000000..db8a031 --- /dev/null +++ b/modules/control/dbus/dbus_player.h @@ -0,0 +1,62 @@ +/***************************************************************************** + * dbus-player.h : dbus control module (mpris v1.0) - /Player object + ***************************************************************************** + * Copyright ?? 2006-2008 Rafa??l Carr?? + * Copyright ?? 2007-2010 Mirsal Ennaime + * Copyright ?? 2009-2010 The VideoLAN team + * $Id$ + * + * Authors: Mirsal ENNAIME + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +#ifndef _VLC_DBUS_PLAYER_H +#define _VLC_DBUS_PLAYER_H + +#include +#include "dbus_common.h" + +#define DBUS_MPRIS_PLAYER_INTERFACE "org.freedesktop.MediaPlayer" +#define DBUS_MPRIS_PLAYER_PATH "/Player" + +/* Handle incoming dbus messages */ +DBusHandlerResult handle_player ( DBusConnection *p_conn, + DBusMessage *p_from, + void *p_this ); + +static const DBusObjectPathVTable dbus_mpris_player_vtable = { + NULL, handle_player, /* handler function */ + NULL, NULL, NULL, NULL +}; + +/* GetCaps() capabilities */ +enum +{ + CAPS_NONE = 0, + CAPS_CAN_GO_NEXT = 1 << 0, + CAPS_CAN_GO_PREV = 1 << 1, + CAPS_CAN_PAUSE = 1 << 2, + CAPS_CAN_PLAY = 1 << 3, + CAPS_CAN_SEEK = 1 << 4, + CAPS_CAN_PROVIDE_METADATA = 1 << 5, + CAPS_CAN_HAS_TRACKLIST = 1 << 6 +}; + +int StatusChangeEmit ( intf_thread_t * ); +int CapsChangeEmit ( intf_thread_t * ); +int TrackChangeEmit ( intf_thread_t *, input_item_t * ); + +#endif //dbus_player.h diff --git a/modules/control/dbus/dbus_root.c b/modules/control/dbus/dbus_root.c new file mode 100644 index 0000000..aa43caa --- /dev/null +++ b/modules/control/dbus/dbus_root.c @@ -0,0 +1,141 @@ +/***************************************************************************** + * dbus-root.c : dbus control module (mpris v1.0) - root object + ***************************************************************************** + * Copyright ?? 2006-2008 Rafa??l Carr?? + * Copyright ?? 2007-2010 Mirsal Ennaime + * Copyright ?? 2009-2010 The VideoLAN team + * $Id$ + * + * Authors: Mirsal ENNAIME + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include + +#include "dbus_root.h" +#include "dbus_common.h" + +/* XML data to answer org.freedesktop.DBus.Introspectable.Introspect requests */ +static const char* psz_root_introspection_xml = +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +; + +DBUS_METHOD( Identity ) +{ + VLC_UNUSED(p_this); + REPLY_INIT; + OUT_ARGUMENTS; + char *psz_identity; + + if( asprintf( &psz_identity, "%s %s", PACKAGE, VERSION ) != -1 ) + { + ADD_STRING( &psz_identity ); + free( psz_identity ); + } + else + return DBUS_HANDLER_RESULT_NEED_MEMORY; + + REPLY_SEND; +} + +DBUS_METHOD( MprisVersion ) +{ /*implemented version of the mpris spec */ + REPLY_INIT; + OUT_ARGUMENTS; + VLC_UNUSED( p_this ); + dbus_uint16_t i_major = DBUS_MPRIS_VERSION_MAJOR; + dbus_uint16_t i_minor = DBUS_MPRIS_VERSION_MINOR; + DBusMessageIter version; + + if( !dbus_message_iter_open_container( &args, DBUS_TYPE_STRUCT, NULL, + &version ) ) + return DBUS_HANDLER_RESULT_NEED_MEMORY; + + if( !dbus_message_iter_append_basic( &version, DBUS_TYPE_UINT16, + &i_major ) ) + return DBUS_HANDLER_RESULT_NEED_MEMORY; + + if( !dbus_message_iter_append_basic( &version, DBUS_TYPE_UINT16, + &i_minor ) ) + return DBUS_HANDLER_RESULT_NEED_MEMORY; + + if( !dbus_message_iter_close_container( &args, &version ) ) + return DBUS_HANDLER_RESULT_NEED_MEMORY; + REPLY_SEND; +} + +DBUS_METHOD( Quit ) +{ /* exits vlc */ + REPLY_INIT; + libvlc_Quit(INTF->p_libvlc); + REPLY_SEND; +} + +DBUS_METHOD( handle_introspect_root ) +{ /* handles introspection of root object */ + VLC_UNUSED(p_this); + REPLY_INIT; + OUT_ARGUMENTS; + ADD_STRING( &psz_root_introspection_xml ); + REPLY_SEND; +} + +#define METHOD_FUNC( interface, method, function ) \ + else if( dbus_message_is_method_call( p_from, interface, method ) )\ + return function( p_conn, p_from, p_this ) + +DBusHandlerResult +handle_root ( DBusConnection *p_conn, DBusMessage *p_from, void *p_this ) +{ + if( dbus_message_is_method_call( p_from, + DBUS_INTERFACE_INTROSPECTABLE, "Introspect" ) ) + return handle_introspect_root( p_conn, p_from, p_this ); + + /* here D-Bus method names are associated to an handler */ + + METHOD_FUNC( DBUS_MPRIS_ROOT_INTERFACE, "Identity", Identity ); + METHOD_FUNC( DBUS_MPRIS_ROOT_INTERFACE, "MprisVersion", MprisVersion ); + METHOD_FUNC( DBUS_MPRIS_ROOT_INTERFACE, "Quit", Quit ); + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +#undef METHOD_FUNC diff --git a/modules/control/dbus/dbus_root.h b/modules/control/dbus/dbus_root.h new file mode 100644 index 0000000..03a2e99 --- /dev/null +++ b/modules/control/dbus/dbus_root.h @@ -0,0 +1,49 @@ +/***************************************************************************** + * dbus-root.h : dbus control module (mpris v1.0) - root object + ***************************************************************************** + * Copyright ?? 2006-2008 Rafa??l Carr?? + * Copyright ?? 2007-2010 Mirsal Ennaime + * Copyright ?? 2009-2010 The VideoLAN team + * $Id$ + * + * Authors: Mirsal ENNAIME + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +#ifndef _VLC_DBUS_ROOT_H +#define _VLC_DBUS_ROOT_H + +#include "dbus_common.h" + +/* MPRIS VERSION */ +#define DBUS_MPRIS_VERSION_MAJOR 2 +#define DBUS_MPRIS_VERSION_MINOR 0 + +/* DBUS IDENTIFIERS */ +#define DBUS_MPRIS_ROOT_INTERFACE "org.freedesktop.MediaPlayer" +#define DBUS_MPRIS_ROOT_PATH "/" + +/* Handle incoming dbus messages */ +DBusHandlerResult handle_root ( DBusConnection *p_conn, + DBusMessage *p_from, + void *p_this ); + +static const DBusObjectPathVTable dbus_mpris_root_vtable = { + NULL, handle_root, /* handler function */ + NULL, NULL, NULL, NULL +}; + +#endif //dbus-root.h diff --git a/modules/control/dbus/dbus_tracklist.c b/modules/control/dbus/dbus_tracklist.c new file mode 100644 index 0000000..a4e6a62 --- /dev/null +++ b/modules/control/dbus/dbus_tracklist.c @@ -0,0 +1,346 @@ +/***************************************************************************** + * dbus-tracklist.c : dbus control module (mpris v1.0) - /TrackList object + ***************************************************************************** + * Copyright ?? 2006-2008 Rafa??l Carr?? + * Copyright ?? 2007-2010 Mirsal Ennaime + * Copyright ?? 2009-2010 The VideoLAN team + * $Id$ + * + * Authors: Mirsal ENNAIME + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include + +#include + +#include "dbus_tracklist.h" +#include "dbus_common.h" + + +const char* psz_tracklist_introspection_xml = +"\n" +"" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \"i\" direction=\"out\" />\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +; + +DBUS_METHOD( AddTrack ) +{ /* add the string to the playlist, and play it if the boolean is true */ + REPLY_INIT; + OUT_ARGUMENTS; + + DBusError error; + dbus_error_init( &error ); + + char *psz_mrl; + dbus_bool_t b_play; + + dbus_message_get_args( p_from, &error, + DBUS_TYPE_STRING, &psz_mrl, + DBUS_TYPE_BOOLEAN, &b_play, + DBUS_TYPE_INVALID ); + + if( dbus_error_is_set( &error ) ) + { + msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", + error.message ); + dbus_error_free( &error ); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + playlist_Add( PL, psz_mrl, NULL, PLAYLIST_APPEND | + ( ( b_play == TRUE ) ? PLAYLIST_GO : 0 ) , + PLAYLIST_END, true, false ); + + dbus_int32_t i_success = 0; + ADD_INT32( &i_success ); + + REPLY_SEND; +} + +DBUS_METHOD( GetCurrentTrack ) +{ + REPLY_INIT; + OUT_ARGUMENTS; + + playlist_t *p_playlist = PL; + + PL_LOCK; + dbus_int32_t i_position = PL->i_current_index; + PL_UNLOCK; + + ADD_INT32( &i_position ); + REPLY_SEND; +} + +DBUS_METHOD( GetMetadata ) +{ + REPLY_INIT; + OUT_ARGUMENTS; + DBusError error; + dbus_error_init( &error ); + + dbus_int32_t i_position; + playlist_t *p_playlist = PL; + + dbus_message_get_args( p_from, &error, + DBUS_TYPE_INT32, &i_position, + DBUS_TYPE_INVALID ); + + if( dbus_error_is_set( &error ) ) + { + msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", + error.message ); + dbus_error_free( &error ); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + PL_LOCK; + if( i_position < p_playlist->current.i_size ) + { + GetInputMeta( p_playlist->current.p_elems[i_position]->p_input, &args ); + } + + PL_UNLOCK; + REPLY_SEND; +} + +DBUS_METHOD( GetLength ) +{ + REPLY_INIT; + OUT_ARGUMENTS; + playlist_t *p_playlist = PL; + + PL_LOCK; + dbus_int32_t i_elements = PL->current.i_size; + PL_UNLOCK; + + ADD_INT32( &i_elements ); + REPLY_SEND; +} + +DBUS_METHOD( DelTrack ) +{ + REPLY_INIT; + + DBusError error; + dbus_error_init( &error ); + + dbus_int32_t i_position; + playlist_t *p_playlist = PL; + + dbus_message_get_args( p_from, &error, + DBUS_TYPE_INT32, &i_position, + DBUS_TYPE_INVALID ); + + if( dbus_error_is_set( &error ) ) + { + msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", + error.message ); + dbus_error_free( &error ); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + PL_LOCK; + if( i_position < p_playlist->current.i_size ) + { + playlist_DeleteFromInput( p_playlist, + p_playlist->current.p_elems[i_position]->p_input, + pl_Locked ); + } + PL_UNLOCK; + + REPLY_SEND; +} + +DBUS_METHOD( SetLoop ) +{ + REPLY_INIT; + OUT_ARGUMENTS; + + DBusError error; + dbus_bool_t b_loop; + + dbus_error_init( &error ); + dbus_message_get_args( p_from, &error, + DBUS_TYPE_BOOLEAN, &b_loop, + DBUS_TYPE_INVALID ); + + if( dbus_error_is_set( &error ) ) + { + msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", + error.message ); + dbus_error_free( &error ); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + var_SetBool( PL, "loop", ( b_loop == TRUE ) ); + + REPLY_SEND; +} + +DBUS_METHOD( SetRandom ) +{ + REPLY_INIT; + OUT_ARGUMENTS; + + DBusError error; + dbus_bool_t b_random; + + dbus_error_init( &error ); + dbus_message_get_args( p_from, &error, + DBUS_TYPE_BOOLEAN, &b_random, + DBUS_TYPE_INVALID ); + + if( dbus_error_is_set( &error ) ) + { + msg_Err( (vlc_object_t*) p_this, "D-Bus message reading : %s", + error.message ); + dbus_error_free( &error ); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + var_SetBool( PL, "random", ( b_random == TRUE ) ); + + REPLY_SEND; +} + +/****************************************************************************** + * TrackListChange: tracklist order / length change signal + *****************************************************************************/ +DBUS_SIGNAL( TrackListChangeSignal ) +{ /* emit the new tracklist lengh */ + SIGNAL_INIT( DBUS_MPRIS_TRACKLIST_INTERFACE, + DBUS_MPRIS_TRACKLIST_PATH, + "TrackListChange"); + + OUT_ARGUMENTS; + + playlist_t *p_playlist = ((intf_thread_t*)p_data)->p_sys->p_playlist; + PL_LOCK; + dbus_int32_t i_elements = p_playlist->current.i_size; + PL_UNLOCK; + + ADD_INT32( &i_elements ); + SIGNAL_SEND; +} + +DBUS_METHOD( handle_introspect_tracklist ) +{ + VLC_UNUSED(p_this); + REPLY_INIT; + OUT_ARGUMENTS; + ADD_STRING( &psz_tracklist_introspection_xml ); + REPLY_SEND; +} + +#define METHOD_FUNC( interface, method, function ) \ + else if( dbus_message_is_method_call( p_from, interface, method ) )\ + return function( p_conn, p_from, p_this ) + +DBusHandlerResult +handle_tracklist ( DBusConnection *p_conn, DBusMessage *p_from, void *p_this ) +{ + if( dbus_message_is_method_call( p_from, + DBUS_INTERFACE_INTROSPECTABLE, "Introspect" ) ) + return handle_introspect_tracklist( p_conn, p_from, p_this ); + + /* here D-Bus method names are associated to an handler */ + + METHOD_FUNC( DBUS_MPRIS_TRACKLIST_INTERFACE, "GetMetadata", GetMetadata ); + METHOD_FUNC( DBUS_MPRIS_TRACKLIST_INTERFACE, "GetCurrentTrack", GetCurrentTrack ); + METHOD_FUNC( DBUS_MPRIS_TRACKLIST_INTERFACE, "GetLength", GetLength ); + METHOD_FUNC( DBUS_MPRIS_TRACKLIST_INTERFACE, "AddTrack", AddTrack ); + METHOD_FUNC( DBUS_MPRIS_TRACKLIST_INTERFACE, "DelTrack", DelTrack ); + METHOD_FUNC( DBUS_MPRIS_TRACKLIST_INTERFACE, "SetLoop", SetLoop ); + METHOD_FUNC( DBUS_MPRIS_TRACKLIST_INTERFACE, "SetRandom", SetRandom ); + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +/***************************************************************************** + * TrackListChangeEmit: Emits the TrackListChange signal + *****************************************************************************/ +/* FIXME: It is not called on tracklist reordering */ +int TrackListChangeEmit( intf_thread_t *p_intf, int signal, int i_node ) +{ + // "playlist-item-append" + if( signal == SIGNAL_PLAYLIST_ITEM_APPEND ) + { + /* don't signal when items are added/removed in p_category */ + playlist_t *p_playlist = p_intf->p_sys->p_playlist; + PL_LOCK; + playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_node ); + assert( p_item ); + while( p_item->p_parent ) + p_item = p_item->p_parent; + if( p_item == p_playlist->p_root_category ) + { + PL_UNLOCK; + return VLC_SUCCESS; + } + PL_UNLOCK; + } + + if( p_intf->p_sys->b_dead ) + return VLC_SUCCESS; + + UpdateCaps( p_intf ); + TrackListChangeSignal( p_intf->p_sys->p_conn, p_intf ); + return VLC_SUCCESS; +} + +#undef METHOD_FUNC diff --git a/modules/control/dbus/dbus_tracklist.h b/modules/control/dbus/dbus_tracklist.h new file mode 100644 index 0000000..c28f30f --- /dev/null +++ b/modules/control/dbus/dbus_tracklist.h @@ -0,0 +1,48 @@ +/***************************************************************************** + * dbus-tracklist.h : dbus control module (mpris v1.0) - /TrackList object + ***************************************************************************** + * Copyright ?? 2006-2008 Rafa??l Carr?? + * Copyright ?? 2007-2010 Mirsal Ennaime + * Copyright ?? 2009-2010 The VideoLAN team + * $Id$ + * + * Authors: Mirsal ENNAIME + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +#ifndef _VLC_DBUS_TRACKLIST_H +#define _VLC_DBUS_TRACKLIST_H + +#include +#include +#include "dbus_common.h" + +#define DBUS_MPRIS_TRACKLIST_INTERFACE "org.freedesktop.MediaPlayer" +#define DBUS_MPRIS_TRACKLIST_PATH "/TrackList" + +/* Handle incoming dbus messages */ +DBusHandlerResult handle_tracklist ( DBusConnection *p_conn, + DBusMessage *p_from, + void *p_this ); + +static const DBusObjectPathVTable dbus_mpris_tracklist_vtable = { + NULL, handle_tracklist, /* handler function */ + NULL, NULL, NULL, NULL +}; + +int TrackListChangeEmit( intf_thread_t *, int, int ); + +#endif //dbus_tracklist.h -- 1.7.0.4 From hagrawal.250190 at gmail.com Mon Jul 5 11:23:57 2010 From: hagrawal.250190 at gmail.com (Harshit Agrawal) Date: Mon, 5 Jul 2010 05:23:57 -0400 Subject: [vlc-devel] Cut your mobile bills! Message-ID: <6e684dd3d4a03ee0852f9875591c867b@localhost.localdomain> An HTML attachment was scrubbed... URL: From jb at videolan.org Mon Jul 5 11:26:15 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Mon, 5 Jul 2010 11:26:15 +0200 Subject: [vlc-devel] Cut your mobile bills! In-Reply-To: <6e684dd3d4a03ee0852f9875591c867b@localhost.localdomain> References: <6e684dd3d4a03ee0852f9875591c867b@localhost.localdomain> Message-ID: <20100705092615.GA4163@videolan.org> On Mon, Jul 05, 2010 at 05:23:57AM -0400, Harshit Agrawal wrote : > Hey, Spamming this mailing list is not allowed. Your mails are now moderated. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From sebastien-devel at celeos.eu Mon Jul 5 14:56:14 2010 From: sebastien-devel at celeos.eu (=?iso-8859-1?b?U+liYXN0aWVu?= Escudier) Date: Mon, 05 Jul 2010 14:56:14 +0200 Subject: [vlc-devel] [PATCH] change warning color in console Message-ID: <1278334574.4c31d66ea6ae3@imp.celeos.eu> Hi, Would it be possible to change the yellow warning color ? it's not readable in consoles with white background. In this patch, I used the same color (orange) than in FFMPEG. It's ok with white or black backgrounds. Regards, Seb. -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-change-warning-color-in-console.patch Type: text/x-diff Size: 1127 bytes Desc: not available URL: From sebastien-devel at celeos.eu Mon Jul 5 15:07:02 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Mon, 05 Jul 2010 15:07:02 +0200 Subject: [vlc-devel] [PATCH] fix a race condition in rtp stream output In-Reply-To: <1277399686.2924.6.camel@mnmsd-desktop> References: <1277362397.4c2300dd8e451@imp.celeos.eu> <6ea54c40ee2f751551fd0f0279882ebb@chewa.net> <1277399686.2924.6.camel@mnmsd-desktop> Message-ID: <1278335222.7289.9.camel@sebastien-desktop> R?mi, On Thu, 2010-06-24 at 19:14 +0200, S?bastien Escudier wrote: > On Thu, 2010-06-24 at 19:00 +0200, R?mi Denis-Courmont wrote: > > > > I am not very happy with calling RtspAddId under lock_es, and I don't > > understand why we would need to do that. > > The two patches are related. > We can be in SDPGenerate and at the same time in SDPHandleUrl where I > added the lock_es, and they both use p_sys->es[0]. > Without the lock, in my second patch there would be a race condition > when I check (p_sys->es[0]->rtsp_id != NULL). Do you still think it's not a good idea to lock lock_es when calling RtspAddId, with this explanation ? From remi at remlab.net Mon Jul 5 18:42:49 2010 From: remi at remlab.net (=?ISO-8859-1?Q?R=E9mi?= Denis-Courmont) Date: Mon, 05 Jul 2010 17:42:49 +0100 Subject: [vlc-devel] [PATCH] fix a race condition in rtp stream output In-Reply-To: <1278335222.7289.9.camel@sebastien-desktop> References: <1277362397.4c2300dd8e451@imp.celeos.eu> <6ea54c40ee2f751551fd0f0279882ebb@chewa.net> <1277399686.2924.6.camel@mnmsd-desktop> <1278335222.7289.9.camel@sebastien-desktop> Message-ID: <1278348169.5526.2.camel@Nokia-N900-51-1> ----- Message d'origine ----- > Do you still think it's not a good idea to lock lock_es when calling > RtspAddId, with this explanation ? Yes and I still fail to see why you would _really_ need to do that. From johann.ransay at planar.com Tue Jul 6 09:56:46 2010 From: johann.ransay at planar.com (Johann Ransay) Date: Tue, 6 Jul 2010 09:56:46 +0200 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee In-Reply-To: <201007011550.44358.johann.ransay@planar.com> References: <1277726959-20481-1-git-send-email-johann.ransay@planar.com> <20100701133354.GA13024@videolan.org> <201007011550.44358.johann.ransay@planar.com> Message-ID: <201007060956.46486.johann.ransay@planar.com> Request for review. Thanks. Johann On Thursday 01 July 2010, Johann Ransay wrote: > I must have messed up with the git send-mail command. Sorry about that. > Anyway, Here it is again (hopefully) cleanly formatted. > > Regards, > Johann > > Turn a '\\' 'n' sequence into '\n' in on-the-fly marquee to enable > multi-line text. To be tried with --intf oldrc --sub-filter marq at title > then from the command line interface: > @title marq-marquee multi\nline\ntest > > --- > modules/control/rc.c | 33 +++++++++++++++++++++++++++++++++ > 1 files changed, 33 insertions(+), 0 deletions(-) > > diff --git a/modules/control/rc.c b/modules/control/rc.c > index 2fbc628..021a38d 100644 > --- a/modules/control/rc.c > +++ b/modules/control/rc.c > @@ -587,6 +587,8 @@ static void Run( intf_thread_t *p_intf ) > char *psz_alias = psz_cmd + 1; > char *psz_mycmd = strdup( psz_arg ); > char *psz_myarg = strchr( psz_mycmd, ' ' ); > + char *psz_subst = 0; > + char *psz_start = 0; > char *psz_msg; > > if( !psz_myarg ) > @@ -598,6 +600,37 @@ static void Run( intf_thread_t *p_intf ) > *psz_myarg = '\0'; > psz_myarg ++; > > + psz_start = psz_myarg; > + /* perform special character substitutions */ > + while( *psz_start ) > + { > + psz_subst = psz_start; > + if( *psz_subst == '\\' ) > + { > + switch( *(psz_subst+1) ) > + { > + case 'n': > + /* replace '\\' 'n' with '\n' */ > + *psz_subst = '\n'; > + break; > + > + default: > + /* not a special character, remove backslash > */ + *psz_subst = *(psz_subst+1); > + break; > + } > + *psz_subst++; > + /* move remaining characters one index backward */ > + while( *(psz_subst+1) ) > + { > + *psz_subst = *(psz_subst+1); > + *psz_subst++; > + } > + *psz_subst = 0; > + } > + psz_start++; > + } > + > var_Command( p_intf, psz_alias, psz_mycmd, psz_myarg, > &psz_msg ); > > > On Thu, Jul 01, 2010 at 02:48:55PM +0200, Johann Ransay wrote : > > > Did that go below the radar of the dev team ? > > > > As far as I am concerned, I haven't seen it in my mailbox > > > > Best Regards, > ____________________________________________________________________ This e-mail, and any attachments, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information belonging to Planar Systems, Inc. If you are not the intended recipient of this e-mail, you are hereby notified that any dissemination, distribution or copying of this e-mail, any attachments thereto, and use of the information contained, is strictly prohibited. If you have received this e-mail in error, please notify the sender and permanently delete the original and any copy thereof. ______________________________________________________________________ From jb at videolan.org Tue Jul 6 10:03:56 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 6 Jul 2010 10:03:56 +0200 Subject: [vlc-devel] [PATCH] change warning color in console In-Reply-To: <1278334574.4c31d66ea6ae3@imp.celeos.eu> References: <1278334574.4c31d66ea6ae3@imp.celeos.eu> Message-ID: <20100706080356.GA21179@videolan.org> On Mon, Jul 05, 2010 at 02:56:14PM +0200, S?bastien Escudier wrote : > Would it be possible to change the yellow warning color ? it's not readable in > consoles with white background. Just do it! Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From sebastien-devel at celeos.eu Tue Jul 6 10:10:27 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Tue, 06 Jul 2010 10:10:27 +0200 Subject: [vlc-devel] [PATCH] fix a race condition in rtp stream output In-Reply-To: <1278348169.5526.2.camel@Nokia-N900-51-1> References: <1277362397.4c2300dd8e451@imp.celeos.eu> <6ea54c40ee2f751551fd0f0279882ebb@chewa.net> <1277399686.2924.6.camel@mnmsd-desktop> <1278335222.7289.9.camel@sebastien-desktop> <1278348169.5526.2.camel@Nokia-N900-51-1> Message-ID: <1278403827.7127.11.camel@sebastien-desktop> On Mon, 2010-07-05 at 17:42 +0100, R?mi Denis-Courmont wrote: > ----- Message d'origine ----- > > Do you still think it's not a good idea to lock lock_es when calling > > RtspAddId, with this explanation ? > > Yes and I still fail to see why you would _really_ need to do that. Ok, I modified the patch to not call RtspAddId under lock_es. The reason of the lock when assigning p_sys->es[0]->rtsp_id is beacause it is used in SDPGenerate from another thread. Is this patch ok now ? -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-rtp-safety-check.patch Type: text/x-patch Size: 1839 bytes Desc: not available URL: From ileoo at videolan.org Tue Jul 6 11:38:00 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Tue, 6 Jul 2010 12:38:00 +0300 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee In-Reply-To: <201007060956.46486.johann.ransay@planar.com> References: <1277726959-20481-1-git-send-email-johann.ransay@planar.com> <20100701133354.GA13024@videolan.org> <201007011550.44358.johann.ransay@planar.com> <201007060956.46486.johann.ransay@planar.com> Message-ID: <20100706093800.GA26787@linux-3azp> On Tue, Jul 06, 2010 at 09:56:46AM +0200, Johann Ransay wrote: > Request for review. Thanks. > Johann > > @@ -598,6 +600,37 @@ static void Run( intf_thread_t *p_intf ) > > *psz_myarg = '\0'; > > psz_myarg ++; > > + /* move remaining characters one index backward */ > > + while( *(psz_subst+1) ) > > + { > > + *psz_subst = *(psz_subst+1); > > + *psz_subst++; > > + } > > + *psz_subst = 0; Shouldn't you compare against \0 and set last char as \0 instead of just 0 ? > This e-mail, and any attachments, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information belonging to Planar Systems, Inc. If you are not the intended recipient of this e-mail, you are hereby notified that any dissemination, distribution or copying of this e-mail, any attachments thereto, and use of the information contained, is strictly prohibited. If you have received this e-mail in error, please notify the sender and permanently delete the original and any copy thereof. I assume all vlc-devel recipients are intended recipients (including www-archives and all ) ? -- Ilkka Ollakka "His great aim was to escape from civilization, and, as soon as he had money, he went to Southern California." -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From johann.ransay at planar.com Tue Jul 6 11:48:48 2010 From: johann.ransay at planar.com (Johann Ransay) Date: Tue, 6 Jul 2010 11:48:48 +0200 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee In-Reply-To: <20100706093800.GA26787@linux-3azp> References: <1277726959-20481-1-git-send-email-johann.ransay@planar.com> <201007060956.46486.johann.ransay@planar.com> <20100706093800.GA26787@linux-3azp> Message-ID: <201007061148.48673.johann.ransay@planar.com> On Tuesday 06 July 2010, Ilkka Ollakka wrote: > On Tue, Jul 06, 2010 at 09:56:46AM +0200, Johann Ransay wrote: > > Request for review. Thanks. > > > > Johann > > > > > @@ -598,6 +600,37 @@ static void Run( intf_thread_t *p_intf ) > > > > > > *psz_myarg = '\0'; > > > psz_myarg ++; > > > > > > + /* move remaining characters one index > > > backward */ + while( *(psz_subst+1) ) > > > + { > > > + *psz_subst = *(psz_subst+1); > > > + *psz_subst++; > > > + } > > > + *psz_subst = 0; > > Shouldn't you compare against \0 and set last char as \0 instead of just > 0 ? Agreed. > > > This e-mail, and any attachments, is intended only for use by the > > addressee(s) named herein and may contain legally privileged and/or > > confidential information belonging to Planar Systems, Inc. If you are > > not the intended recipient of this e-mail, you are hereby notified that > > any dissemination, distribution or copying of this e-mail, any > > attachments thereto, and use of the information contained, is strictly > > prohibited. If you have received this e-mail in error, please notify > > the sender and permanently delete the original and any copy thereof. > > I assume all vlc-devel recipients are intended recipients (including > www-archives and all ) ? Correct. ____________________________________________________________________ This e-mail, and any attachments, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information belonging to Planar Systems, Inc. If you are not the intended recipient of this e-mail, you are hereby notified that any dissemination, distribution or copying of this e-mail, any attachments thereto, and use of the information contained, is strictly prohibited. If you have received this e-mail in error, please notify the sender and permanently delete the original and any copy thereof. ______________________________________________________________________ From jb at videolan.org Tue Jul 6 13:09:15 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 6 Jul 2010 13:09:15 +0200 Subject: [vlc-devel] [PATCH] Reorganize the dbus control module code In-Reply-To: <1278313534-7841-1-git-send-email-mirsal.ennaime@gmail.com> References: <1278313534-7841-1-git-send-email-mirsal.ennaime@gmail.com> Message-ID: <20100706110915.GA8534@videolan.org> On Mon, Jul 05, 2010 at 09:05:34AM +0200, Mirsal Ennaime wrote : > * Split the module source code into several files Applied. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From remi at remlab.net Tue Jul 6 14:13:16 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 06 Jul 2010 14:13:16 +0200 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee In-Reply-To: <201007060956.46486.johann.ransay@planar.com> References: <1277726959-20481-1-git-send-email-johann.ransay@planar.com> <20100701133354.GA13024@videolan.org> <201007011550.44358.johann.ransay@planar.com> <201007060956.46486.johann.ransay@planar.com> Message-ID: <9a0329ee6e8810846f1079c24f6af453@chewa.net> On Tue, 6 Jul 2010 09:56:46 +0200, Johann Ransay wrote: > Request for review. Thanks. I am not very keen on silently changing the syntax of a parameter. I expect a number of people have scripted the marquee filter such that your patch will explode on them. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From johann.ransay at planar.com Tue Jul 6 14:35:43 2010 From: johann.ransay at planar.com (Johann Ransay) Date: Tue, 6 Jul 2010 14:35:43 +0200 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee In-Reply-To: <9a0329ee6e8810846f1079c24f6af453@chewa.net> References: <1277726959-20481-1-git-send-email-johann.ransay@planar.com> <201007060956.46486.johann.ransay@planar.com> <9a0329ee6e8810846f1079c24f6af453@chewa.net> Message-ID: <201007061435.44202.johann.ransay@planar.com> First, thanks for your time in reviewing this patch. - the patch changes the behaviour of the oldrc intf module, not a command line parameter - it affects the way the marquee is drawn on top of the video, not the behaviour of any external script - there is no way for this patch to explode on any script: for a text containing '\\' 'n' the oldrc module would draw "backslash n" (no substitution) where the new behaviour would draw a newline instead. - the marquee filter already supports newlines in the marquee but prior to this patch a newline could not be inserted from the oldrc module which, IMHO, is a bug. Just in case, I've attached the modified patch taking into account the remarks from Ilkka Ollakka. Regards, Johann On Tuesday 06 July 2010, R?mi Denis-Courmont wrote: > On Tue, 6 Jul 2010 09:56:46 +0200, Johann Ransay > > wrote: > > Request for review. Thanks. > > I am not very keen on silently changing the syntax of a parameter. I expect > a number of people have scripted the marquee filter such that your patch > will explode on them. ____________________________________________________________________ This e-mail, and any attachments, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information belonging to Planar Systems, Inc. If you are not the intended recipient of this e-mail, you are hereby notified that any dissemination, distribution or copying of this e-mail, any attachments thereto, and use of the information contained, is strictly prohibited. If you have received this e-mail in error, please notify the sender and permanently delete the original and any copy thereof. ______________________________________________________________________ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Allow-on-the-fly-multi-line-marquee.patch Type: text/x-patch Size: 2513 bytes Desc: not available URL: From remi at remlab.net Tue Jul 6 15:09:09 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 06 Jul 2010 15:09:09 +0200 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee In-Reply-To: <201007061435.44202.johann.ransay@planar.com> References: <1277726959-20481-1-git-send-email-johann.ransay@planar.com> <201007060956.46486.johann.ransay@planar.com> <9a0329ee6e8810846f1079c24f6af453@chewa.net> <201007061435.44202.johann.ransay@planar.com> Message-ID: On Tue, 6 Jul 2010 14:35:43 +0200, Johann Ransay wrote: > - the patch changes the behaviour of the oldrc intf module, not a command > line parameter > - it affects the way the marquee is drawn on top of the video, not the > behaviour of any external script > - there is no way for this patch to explode on any script: for a text > containing '\\' 'n' the oldrc module would draw "backslash n" (no > substitution) where the new behaviour would draw a newline instead. > - the marquee filter already supports newlines in the marquee but prior to > this patch a newline could not be inserted from the oldrc module which, IMHO, > is a bug. Old RC is typically used by other programs automatically controlling VLC through a pair of pipes. We should avoid changing the syntax. That's exactly what I said. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From ileoo at videolan.org Tue Jul 6 15:12:59 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Tue, 6 Jul 2010 16:12:59 +0300 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee In-Reply-To: References: <1277726959-20481-1-git-send-email-johann.ransay@planar.com> <201007060956.46486.johann.ransay@planar.com> <9a0329ee6e8810846f1079c24f6af453@chewa.net> <201007061435.44202.johann.ransay@planar.com> Message-ID: <20100706131258.GA3882@linux-3azp> On Tue, Jul 06, 2010 at 03:09:09PM +0200, R?mi Denis-Courmont wrote: > Old RC is typically used by other programs automatically controlling VLC > through a pair of pipes. We should avoid changing the syntax. That's > exactly what I said. I'm not really sure if there is any usecase for someone wanting to set marquee as \\n or output "\n" on text instead linebreak ? -- Ilkka Ollakka A fanatic is one who can't change his mind and won't change the subject. -- Winston Churchill -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From Paul.Corke at datatote.co.uk Tue Jul 6 15:17:13 2010 From: Paul.Corke at datatote.co.uk (Paul Corke) Date: Tue, 6 Jul 2010 14:17:13 +0100 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee Message-ID: <72D9E13A8FC8994794D448E91198AE0701A71502@mail.sys.internal> On 06 July 2010 14:13, Ilkka Ollakka wrote: > I'm not really sure if there is any usecase for someone wanting to > set marquee as \\n or output "\n" on text instead linebreak ? "Now showing C:\newfile.mpeg" Paul. From johann.ransay at planar.com Tue Jul 6 15:43:04 2010 From: johann.ransay at planar.com (Johann Ransay) Date: Tue, 6 Jul 2010 15:43:04 +0200 Subject: [vlc-devel] [PATCH] Allow on-the-fly multi-line marquee In-Reply-To: References: <1277726959-20481-1-git-send-email-johann.ransay@planar.com> <201007061435.44202.johann.ransay@planar.com> Message-ID: <201007061543.04434.johann.ransay@planar.com> I've been using scripts for automatically controlling VLC through a pair of pipes for years AND I would find it usefull if I could insert newlines in the marquee without restarting VLC (as newlines can be inserted from the command line). I (now) understand your point about changing the syntax (and Paul Corke made a good point with his example), but if the syntax is limited we should be welcome to improve upon it. Having said that, I realize that the best way to do it might be to treat backslash as an escape character in ReadCommand (rc.c). To prevent breaking the compatibility with older scripts we could switch to this new behaviour only if a new command line parameter is set (like --rc-allow-escape) that would default to the previous behaviour. What do you say ? Would you welcome such a patch ? If yes, where do you prefer to have it implemented, in ReadCommand or like in my previous patch ? Regards, Johann On Tuesday 06 July 2010, R?mi Denis-Courmont wrote: > Old RC is typically used by other programs automatically controlling VLC > through a pair of pipes. We should avoid changing the syntax. That's > exactly what I said. ____________________________________________________________________ This e-mail, and any attachments, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information belonging to Planar Systems, Inc. If you are not the intended recipient of this e-mail, you are hereby notified that any dissemination, distribution or copying of this e-mail, any attachments thereto, and use of the information contained, is strictly prohibited. If you have received this e-mail in error, please notify the sender and permanently delete the original and any copy thereof. ______________________________________________________________________ From kechsoft at gmail.com Tue Jul 6 14:14:47 2010 From: kechsoft at gmail.com (Kechsoft Kech) Date: Tue, 6 Jul 2010 17:14:47 +0500 Subject: [vlc-devel] localization file for Baluchi Message-ID: in ISO 639 language code for Baluchi is bal http://www.w3.org/WAI/ER/IG/ert/iso639.htm -------------- next part -------------- An HTML attachment was scrubbed... URL: From dadatis at gmail.com Wed Jul 7 10:24:08 2010 From: dadatis at gmail.com (Daniel Tisza) Date: Wed, 7 Jul 2010 11:24:08 +0300 Subject: [vlc-devel] [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. In-Reply-To: References: Message-ID: Hi, Thanks for your comments and for making librtmp. I will do as you recommend. On Sun, Jul 4, 2010 at 11:17 PM, Howard Chu wrote: > Howard Chu highlandsun.com> writes: >> I strongly recommend that you use RTMP_SetupURL() instead of the APIs you've >> used here. The RTMP_SetupStream() API is deprecated and I'm planning to remove >> all of that from the library. > > And just to note - the preferred APIs are already called out in the > documentation. > > http://rtmpdump.mplayerhq.hu/librtmp.3.html > > There's no reason to be digging around in the old APIs like this. > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > From xtophe at chewa.net Thu Jul 8 00:59:35 2010 From: xtophe at chewa.net (Christophe Mutricy) Date: Thu, 8 Jul 2010 00:59:35 +0200 Subject: [vlc-devel] VLC Telugu language translation In-Reply-To: References: Message-ID: <20100707225935.GA27619@chewa.net> Hello, On Sun, Jul 04, 10 at 14:54 +0300, Dinesh Muvvala wrote: > I would like to get involved with VLC project. As a starting point I thought > I will start with translation of VLC player. > I have noticed that at the moment VLC doesn't have anyone for translating to > Telugu language. I would like to contribute > to Telugu language support and maintain the same. please guide me how to > start with this task. You can find the file to translate there: http://people.videolan.org/~xtophe/l10n/te.po You can use poEdit or loKalize to translate. Make sure that you use UTF-8 as encoding. If you have question you can ask them on irc #videolan on irc.freenode.net or on the mailing-list vlc-devel at videolan.org When you have done a part of it you can send it to me or put it online and send us the link. There is a mailing list dedicated to translators. You can subscribe at http://mailman.videolan.org/listinfo/translators Thanks -- Xtophe From xtophe at chewa.net Thu Jul 8 01:01:01 2010 From: xtophe at chewa.net (Christophe Mutricy) Date: Thu, 8 Jul 2010 01:01:01 +0200 Subject: [vlc-devel] localization file for Baluchi In-Reply-To: References: Message-ID: <20100707230101.GB27619@chewa.net> Hello, On Tue, Jul 06, 10 at 17:14 +0500, Kechsoft Kech wrote: > in ISO 639 language code for Baluchi is bal You can find the file to translate there: http://people.videolan.org/~xtophe/l10n/bal.po You can use poEdit or loKalize to translate. Make sure that you use UTF-8 as encoding. If you have question you can ask them on irc #videolan on irc.freenode.net or on the mailing-list vlc-devel at videolan.org When you have done a part of it you can send it to me or put it online and send us the link. There is a mailing list dedicated to translators. You can subscribe at http://mailman.videolan.org/listinfo/translators Thanks -- Xtophe From jb at videolan.org Thu Jul 8 01:53:46 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 8 Jul 2010 01:53:46 +0200 Subject: [vlc-devel] Win32 prefix issue when opening playlists #3783 Message-ID: <20100707235346.GA22540@videolan.org> Hello, Here attached is a Hack to work-around an issue in 1.1.x on Windows, where .m3u/.pls playlists try to open file://C:\folder\abc.mp3 instead of file:///C:\folder\abc.mp3 It works with complete paths (C:\folder\abc.mp3), relative (..\abc.mp3) and plain paths (abc.mp3) master (1.2) doesn't seem to need that as tested the last week. Yes, it isn't nice, don't scream at me, but I would welcome cool ideas. Else, i'll apply. -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 8 01:54:24 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 8 Jul 2010 01:54:24 +0200 Subject: [vlc-devel] Win32 prefix issue when opening playlists #3783 In-Reply-To: <20100707235346.GA22540@videolan.org> References: <20100707235346.GA22540@videolan.org> Message-ID: <20100707235424.GA23337@videolan.org> On Thu, Jul 08, 2010 at 01:53:46AM +0200, Jean-Baptiste Kempf wrote : > Here attached is a Hack to work-around an issue in 1.1.x on Windows, Per tradition, attachment was forgotten... -- Jean-Baptiste Kempf http://www.jbkempf.com/ -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Win32-playlists-hack-around-wrong-prefix-found-3783.patch Type: text/x-diff Size: 1165 bytes Desc: not available URL: From remi at remlab.net Thu Jul 8 15:57:03 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Thu, 08 Jul 2010 15:57:03 +0200 Subject: [vlc-devel] Win32 prefix issue when opening playlists #3783 In-Reply-To: <20100707235346.GA22540@videolan.org> References: <20100707235346.GA22540@videolan.org> Message-ID: <82cf0ac0d61d3b260f6e7d1d0afbec38@chewa.net> On Thu, 8 Jul 2010 01:53:46 +0200, Jean-Baptiste Kempf wrote: > Here attached is a Hack to work-around an issue in 1.1.x on Windows, > where .m3u/.pls playlists try to open file://C:\folder\abc.mp3 instead > of file:///C:\folder\abc.mp3 > > It works with complete paths (C:\folder\abc.mp3), relative (..\abc.mp3) > and plain paths (abc.mp3) It breaks HTTP though. I assume checking that psz_access is "" or "file" would work around the real issue, without importing all the changes from 1.2. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From beauze.h at gmail.com Thu Jul 8 16:15:09 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Thu, 8 Jul 2010 16:15:09 +0200 Subject: [vlc-devel] [Patch] Qt4: cosmetic Message-ID: Hi, As stated in the commit log message : this removes useless member, useless parameter, useless empty dtor, and adds a missing reference. Regards, -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-qt4-mostly-cosmetics.patch Type: text/x-patch Size: 1968 bytes Desc: not available URL: From jb at videolan.org Thu Jul 8 21:56:50 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 8 Jul 2010 21:56:50 +0200 Subject: [vlc-devel] [RFC] libbluray integration Message-ID: <20100708195650.GA24696@videolan.org> Attached here is a small patch for libbluray integration. Libbluray plays non-crypted Blu-Rays. This is the first version, rough reviews welcomed. -- Jean-Baptiste Kempf http://www.jbkempf.com/ -------------- next part -------------- A non-text attachment was scrubbed... Name: vlc_bluray.patch Type: text/x-diff Size: 10969 bytes Desc: not available URL: From remi at remlab.net Thu Jul 8 22:12:05 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Thu, 8 Jul 2010 23:12:05 +0300 Subject: [vlc-devel] [RFC] libbluray integration In-Reply-To: <20100708195650.GA24696@videolan.org> References: <20100708195650.GA24696@videolan.org> Message-ID: <201007082312.05843.remi@remlab.net> Le jeudi 8 juillet 2010 22:56:50 Jean-Baptiste Kempf, vous avez ?crit : > Attached here is a small patch for libbluray integration. > Libbluray plays non-crypted Blu-Rays. > > This is the first version, rough reviews welcomed. A review is easier with an inline patch. +AC_ARG_ENABLE(bluray, + AS_HELP_STRING([--enable-bluray],[use library libbluray for Blu-ray disc support])) +if test "${enable_bluray}" != "no" +then + AC_CHECK_HEADERS(libbluray/bluray.h, + [ VLC_ADD_PLUGIN([bluray]) + VLC_ADD_CFLAGS([bluray],[]) + VLC_ADD_LIBS([bluray],[-lbluray]) ]) +fi Please use pkg-config. If it's not available, the library needs fixing. @@ -4714,6 +4727,7 @@ AC_CONFIG_FILES([ modules/access/Makefile modules/access/bd/Makefile modules/access/bda/Makefile + modules/access/bluray/Makefile Why yet another directory? More directories = slower build. + add_string("debug-mask", "0x0000", NULL, + DEBUGMASK_TEXT, DEBUGMASK_LONGTEXT, false); Uh? Does VLC not parse hexadecimal values out-of-the box? + set_capability( "access", 60 ) + add_shortcut( "bluray" ) + add_shortcut( "file" ) Yet another hack on the file scheme :( +struct access_sys_t +{ + void *dl_handle; Not used anywhere. Move this to another patch if you need to. + void *bluray; Can't this library use typedefs? + int i_bd_delay; +}; +static int blurayOpen( vlc_object_t *object ) +{ + char *debug_mask = NULL; + char *pos_title; + int i_title = 0; + access_t *p_access = (access_t*)object; + access_sys_t *p_sys; + char bd_path[512]; + + msg_Warn( p_access, "blurayOpen :)" ); Spam. + if( !p_access->psz_location || !*p_access->psz_location ) { + msg_Warn( p_access, "blurayOpen - not selected" ); Spam. + return VLC_EGENERIC; + } + + var_Create( p_access, "bluray-caching", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT ); + var_Create( p_access, "debug-mask", VLC_VAR_STRING|VLC_VAR_DOINHERIT ); var_Inherit*??? + debug_mask = var_GetString(p_access, "debug-mask"); + if ( debug_mask ) { + setenv("BD_DEBUG_MASK", debug_mask, 1); + } setenv()? Is this a second degree joke? + /* init access fields */ + access_InitFields(p_access); + + /* register callback function for communication */ + ACCESS_SET_CALLBACKS(blurayRead, NULL, blurayControl, bluraySeek); + + p_access->p_sys = p_sys = malloc(sizeof(access_sys_t)); + if (!p_sys) { unlikely() + msg_Warn( p_access, "cannot alloc access_sys memory"); Please no. + return VLC_ENOMEM; + } + /* store current bd_path */ + strncpy(bd_path, p_access->psz_location, sizeof bd_path); strdup() + if ( (pos_title = strrchr(bd_path, ':')) ) { + /* found character ':' for title information */ + pos_title[0] = '\0'; + i_title = atoi(pos_title + 1); + } + + p_sys->bluray = bd_open(bd_path, NULL); + if ( p_sys->bluray == NULL ) { + return VLC_EGENERIC; Memory leak. + } + + /* set start title number */ + if ( bluraySetTitle(p_access, i_title) != VLC_SUCCESS ) { + return VLC_EGENERIC; Memory leak. + } + + p_sys->i_bd_delay = var_GetInteger(p_access, "bluray-caching"); + + return VLC_SUCCESS; +} + + + +/***************************************************************************** + * blurayClose: module destroy function + *****************************************************************************/ +static void blurayClose( vlc_object_t *object ) +{ + access_t *p_access = (access_t*)object; + access_sys_t *p_sys = p_access->p_sys; + + msg_Warn( p_access, "close bluray"); Spam. + if ( p_sys->bluray != NULL ) { Useless check. + bd_close(p_sys->bluray); + } +} + + +/***************************************************************************** + * bluraySetTitle: select new BD title + *****************************************************************************/ +static int bluraySetTitle(access_t *p_access, int i_title) +{ + access_sys_t *p_sys = p_access->p_sys; + + /* select blue ray title */ + if ( bd_select_title(p_access->p_sys->bluray, i_title) == 0 ) { + msg_Err( p_access, "cannot select bd title '%d'", p_access- >info.i_title); + return VLC_EGENERIC; + } + + /* read title length and init some values */ + p_access->info.i_title = i_title; + p_access->info.i_size = bd_get_title_size(p_sys->bluray); + p_access->info.i_pos = 0; + p_access->info.b_eof = false; + p_access->info.i_seekpoint = 0; + + return VLC_SUCCESS; +} + + +/***************************************************************************** + * blurayControl: handle the controls + *****************************************************************************/ +static int blurayControl(access_t *p_access, int query, va_list args) +{ + access_sys_t *p_sys = p_access->p_sys; + bool *pb_bool; + int64_t *pi_64; + uint32_t pos; + + switch (query) { + case ACCESS_CAN_SEEK: + case ACCESS_CAN_FASTSEEK: + case ACCESS_CAN_PAUSE: + pb_bool = (bool*)va_arg( args, bool * ); + *pb_bool = true; + break; + + case ACCESS_CAN_CONTROL_PACE: + pb_bool = (bool*)va_arg( args, bool* ); + *pb_bool = true; + break; + + case ACCESS_GET_PTS_DELAY: + pi_64 = (int64_t*)va_arg( args, int64_t * ); + *pi_64 = p_sys->i_bd_delay; + break; + + case ACCESS_SET_PAUSE_STATE: + /* Nothing to do */ + msg_Warn( p_access, "set pause state"); Spam. + break; + + case ACCESS_SET_TITLE: + + break; + + case ACCESS_SET_SEEKPOINT: + pos = va_arg( args, uint32_t ); + msg_Warn( p_access, "set seek position '%d'", pos); Spam?? + break; + + case ACCESS_GET_META: + return VLC_EGENERIC; + break; + + case ACCESS_GET_TITLE_INFO: + case ACCESS_SET_PRIVATE_ID_STATE: + case ACCESS_GET_CONTENT_TYPE: + return VLC_EGENERIC; Those cases could be collected. + + default: + msg_Warn( p_access, "unimplemented query (%d) in control", query ); + return VLC_EGENERIC; + } + + return VLC_SUCCESS; +} + + +/***************************************************************************** + * bluraySeek: seek to the given position + *****************************************************************************/ +static int bluraySeek(access_t *p_access, uint64_t position) +{ + access_sys_t *p_sys = p_access->p_sys; + + p_access->info.i_pos = bd_seek(p_sys->bluray, position); + p_access->info.b_eof = false; + + return VLC_SUCCESS; +} + + +/***************************************************************************** + * blurayRead: read BD data into buffer + *****************************************************************************/ +static ssize_t blurayRead(access_t *p_access, uint8_t *data, size_t size) +{ + access_sys_t *p_sys = p_access->p_sys; + int nread; + + if (p_access->info.b_eof) { + return 0; + } + + /* read data into buffer with given length */ + nread = bd_read(p_sys->bluray, data, size); + + if( nread == 0 ) { + p_access->info.b_eof = true; + } + else if( nread > 0 ) { + p_access->info.i_pos += nread; + } + + return nread; +} + + -- 1.7.1 -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jan at ryngle.com Fri Jul 9 07:02:43 2010 From: jan at ryngle.com (Jan Janak) Date: Fri, 9 Jul 2010 01:02:43 -0400 Subject: [vlc-devel] [PATCH] configure.ac: Print a warning if xcb-keysyms is missing. Message-ID: <1278651763-30445-1-git-send-email-jan@ryngle.com> Modules xcb_window and globalhotkeys won't be compiled if the library xcb-keysyms is not installed. Rather than disabling the modules silently the configure script should print a warning so that the users know which library they need to install if the need the two vlc modules. --- configure.ac | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/configure.ac b/configure.ac index 9308cc5..5151a5d 100644 --- a/configure.ac +++ b/configure.ac @@ -3346,7 +3346,8 @@ AS_IF([test "${enable_xcb}" != "no"], [ VLC_ADD_PLUGIN([xcb_window globalhotkeys]) VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}]) VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}]) - ]) + ], + [AC_MSG_WARN([Library xcb keysyms needed for modules xcb_window and globalhotkeys was not found])]) VLC_ADD_PLUGIN([xdg_screensaver]) ]) -- 1.7.1 From sebastien-devel at celeos.eu Fri Jul 9 10:49:41 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Fri, 09 Jul 2010 10:49:41 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_rtp_=3A_sa?= =?iso-8859-1?q?fety_check=2E_=28_S=E9bastien_Escudier_=29?= In-Reply-To: <20100708062442.04173100AB5@albiero.videolan.org> References: <20100708062442.04173100AB5@albiero.videolan.org> Message-ID: <1278665381.7887.2.camel@sebastien-desktop> On Thu, 2010-07-08 at 08:24 +0200, git at videolan.org wrote: > vlc | branch: master | S?bastien Escudier | Thu Jun 24 08:41:16 2010 +0200| [b445a6a9ffb600e4aa87793c21186d457631d588] | committer: S?bastien Escudier > > rtp : safety check. This can be backported (and I don't know how to do it). From ileoo at videolan.org Fri Jul 9 11:04:48 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Fri, 9 Jul 2010 12:04:48 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_rtp_=3A_sa?= =?iso-8859-1?q?fety_check=2E_=28_S=E9bastien_Escudier_=29?= In-Reply-To: <1278665381.7887.2.camel@sebastien-desktop> References: <20100708062442.04173100AB5@albiero.videolan.org> <1278665381.7887.2.camel@sebastien-desktop> Message-ID: <20100709090448.GB1803@linux-3azp> On Fri, Jul 09, 2010 at 10:49:41AM +0200, S?bastien Escudier wrote: > On Thu, 2010-07-08 at 08:24 +0200, git at videolan.org wrote: > > vlc | branch: master | S?bastien Escudier | Thu Jun 24 08:41:16 2010 +0200| [b445a6a9ffb600e4aa87793c21186d457631d588] | committer: S?bastien Escudier > > rtp : safety check. > This can be backported (and I don't know how to do it). http://wiki.videolan.org/Git#Backporting_commits you can use that case of vlc bugfix branches and replace 1.0 with 1.1 -- Ilkka Ollakka I think that I shall never see A billboard lovely as a tree. Perhaps, unless the billboards fall I'll never see a tree at all. -- Ogden Nash -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From remi at remlab.net Fri Jul 9 11:52:41 2010 From: remi at remlab.net (=?ISO-8859-1?Q?R=E9mi?= Denis-Courmont) Date: Fri, 09 Jul 2010 12:52:41 +0300 Subject: [vlc-devel] [PATCH] configure.ac: Print a warning if xcb-keysyms is missing. In-Reply-To: <1278651763-30445-1-git-send-email-jan@ryngle.com> References: <1278651763-30445-1-git-send-email-jan@ryngle.com> Message-ID: <1278669161.2979.1.camel@Nokia-N900-51-1> ----- Message d'origine ----- > Modules xcb_window and globalhotkeys won't be compiled if the > library xcb-keysyms is not installed. Rather than disabling the > modules silently the configure script should print a warning so > that the users know which library they need to install if the need > the two vlc modules. I got the feeling most people do not check the configure for warnings. Given the length (and speed) of the outout, I cannot blame them. On top of that, I believe most people do not what those two modules do, and why they would need them. So I agree there is a problem, but I doubt this patch solves it. -- R?mi From remi at remlab.net Fri Jul 9 15:42:22 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Fri, 09 Jul 2010 15:42:22 +0200 Subject: [vlc-devel] Why we need proper API functions for [aisv]mem plugins... Message-ID: <00721187c7519b063fe3414ce689aa99@chewa.net> Short read: http://www.cplusplus.com/forum/lounge/24239/ I have to say I agree. At least video and audio, it should be relatively easy, as long as we expect a fixed output format. For access and access_demux, we might be able to create dedicated functions that create a custom libvlc_media_t pointers. smem is much more difficult. Generally speaking, there is basically no sane way to control the streaming output from LibVLC (apart from VLM). -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Fri Jul 9 17:40:18 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Fri, 9 Jul 2010 18:40:18 +0300 Subject: [vlc-devel] Why we need proper API functions for [aisv]mem plugins... In-Reply-To: <00721187c7519b063fe3414ce689aa99@chewa.net> References: <00721187c7519b063fe3414ce689aa99@chewa.net> Message-ID: <201007091840.19894.remi@remlab.net> Le vendredi 9 juillet 2010 16:42:22 R?mi Denis-Courmont, vous avez ?crit : > I have to say I agree. At least video and audio, it should be relatively > easy, as long as we expect a fixed output format. *Ahem*, I forgot that amem did not exist (yet). I will be working on a vmem API this week-end. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jan at ryngle.com Fri Jul 9 21:09:35 2010 From: jan at ryngle.com (Jan Janak) Date: Fri, 9 Jul 2010 15:09:35 -0400 Subject: [vlc-devel] [PATCH] configure.ac: Print a warning if xcb-keysyms is missing. In-Reply-To: <1278669161.2979.1.camel@Nokia-N900-51-1> References: <1278651763-30445-1-git-send-email-jan@ryngle.com> <1278669161.2979.1.camel@Nokia-N900-51-1> Message-ID: 2010/7/9 R?mi Denis-Courmont : > ----- Message d'origine ----- >> Modules xcb_window and globalhotkeys won't be compiled if the >> library xcb-keysyms is not installed. Rather than disabling the >> modules silently the configure script should print a warning so >> that the users know which library they need to install if the need >> the two vlc modules. > > I got the feeling most people do not check the configure for warnings. Given the length (and speed) of the outout, I cannot blame them. I guess people who attempt to compile vlc on their own know how to redirect the output and use grep; speed and the length is not an issue here. > On top of that, I believe most people do not what those two modules do, and why they would need them. There are so many more modules and libraries that most people don't need, and yet the configure script prints warnings when some of the depencencies are missing. Besides, I am not proposing to halt the build process when xcb_window cannot be build. The patch only prints a warning when the module cannot be built due to missing xcb-keysyms. This give the user a chance to install the missing dependency if they need xcb_window. Without the warning it is not entirely easy to figure out what dependencies need to be satisfied if you need the xcb_window module, you have to dig deep into the configure or configure.ac scripts. > So I agree there is a problem, but I doubt this patch solves it. It may not solve the problem, but at least it makes it easier for the user to install missing dependencies, should they need it. This patch does not modify the build process, it only prints one extra message, so I am not sure I see any reasons for not including it in the official tree. -Jan From jbutler at hcn-inc.com Sat Jul 10 01:17:32 2010 From: jbutler at hcn-inc.com (Jason Butler) Date: Fri, 09 Jul 2010 18:17:32 -0500 Subject: [vlc-devel] libvlc_MediaMetaChanged event being sent too soon Message-ID: <4C37AE0C.1030004@hcn-inc.com> I am using libvlc 1.1.0 to play an audio steam on Linux. I want to get the title, album, and artist every time the track changes so I am hooking up a callback function to the libvlc_MediaMetaChanged event. The problem is when the stream starts playing the libvlc_MediaMetaChanged event is sent serveral times before all the track meta data is valid. If I call libvlc_media_get_meta(m,libvlc_meta_Artist), or libvlc_media_get_meta(m,libvlc_meta_Album) too soon then I get a segment fault. I thought about waiting for the libvlc_MediaPlayerPlaying event but libvlc_MediaMetaChanged event is still sent several times before the album and artist data is valid. Is there a way to check if the artist and album data is valid before calling libvlc_media_get_meta? From remi at remlab.net Sat Jul 10 00:47:37 2010 From: remi at remlab.net (=?ISO-8859-1?Q?R=E9mi?= Denis-Courmont) Date: Sat, 10 Jul 2010 01:47:37 +0300 Subject: [vlc-devel] [PATCH] configure.ac: Print a warning if xcb-keysyms is missing. In-Reply-To: References: <1278651763-30445-1-git-send-email-jan@ryngle.com> <1278669161.2979.1.camel@Nokia-N900-51-1> Message-ID: <1278715657.3036.2.camel@Nokia-N900-51-1> ----- Message d'origine ----- > 2010/7/9 R?mi Denis-Courmont : > > ----- Message d'origine ----- > > > Modules xcb_window and globalhotkeys won't be compiled if the > > > library xcb-keysyms is not installed. Rather than disabling the > > > modules silently the configure script should print a warning so > > > that the users know which library they need to install if the need > > > the two vlc modules. > > > > I got the feeling most people do not check the configure for warnings. Given > > the length (and speed) of the outout, I cannot blame them. > > I guess people who attempt to compile vlc on their own know how to > redirect the output and use grep; speed and the length is not an issue > here. Empirically, I have to believe the opposite. > > On top of that, I believe most people do not what those two modules do, and > > why they would need them. > > There are so many more modules and libraries that most people don't > need, and yet the configure script prints warnings when some of the > depencencies are missing. In most cases, that is just a generic message from the pkg-config, not a deliberately added message. Anyway, that _is_ the problem. There are, as you say, so many warnings, that people just ignore them. All of them. A message about some obscure plugin is unlikely to be read and taken into account in such circumstances. > Besides, I am not proposing to halt the build process when xcb_window > cannot be build. The patch only prints a warning when the module > cannot be built due to missing xcb-keysyms. This give the user a > chance to install the missing dependency if they need xcb_window. > > Without the warning it is not entirely easy to figure out what > dependencies need to be satisfied if you need the xcb_window module, > you have to dig deep into the configure or configure.ac scripts. True. But it is hardly relevant if you do not know if/why the xcb_window plugin would be required. In other words, I find the proposed warning too cryptic. -- R?mi From frank.enderle at anamica.de Sat Jul 10 08:15:40 2010 From: frank.enderle at anamica.de (Frank Enderle) Date: Sat, 10 Jul 2010 08:15:40 +0200 Subject: [vlc-devel] libvlc_MediaMetaChanged event being sent too soon In-Reply-To: <4C37AE0C.1030004@hcn-inc.com> References: <4C37AE0C.1030004@hcn-inc.com> Message-ID: <4C38100C.6030707@anamica.de> the event is fired as soon as vlc gets the data from the streaming server. however it does not take in account that the audio data will be buffered and thus delayed. that's why there's a gap between the event and the actual data being valid for the current stream position. i solved this for me by applying a patch to vlc which gives me the ability to see how much streamtime is buffered. when i get the event i calculate when it becomes valid by adding the time left in the buffer to the current (monotonic) timestamp and put the result in a ring buffer which is frequently checked. when the title change gets valid it is shown to the user and removed from the ring. i played with the thought to add this as a patch to vlc itself so the event is fired timecorrected, but i didn't do it because i think it is the applications responsibility to deal with the delay since there might be cases when it is a good idea to have the data early, for example if you want to do some artwork prefetch. so i only added the ability to get the time left in the buffers. i sent the patch a while ago to the list, but i don't think it has been incorporated to the git master (i might be wrong). i added you the patch against vlc 1.1.0. it gives you a new function to get the buffered time in ms. libvlc_time_t libvlc_media_player_get_buffered_time(libvlc_media_player_t *p_mi); hope this helps frank Am 10.07.2010 01:17, schrieb Jason Butler: > I am using libvlc 1.1.0 to play an audio steam on Linux. I want to get > the title, album, and artist every time the track changes so I am > hooking up a callback function to the libvlc_MediaMetaChanged event. The > problem is when the stream starts playing the libvlc_MediaMetaChanged > event is sent serveral times before all the track meta data is valid. If > I call libvlc_media_get_meta(m,libvlc_meta_Artist), or > libvlc_media_get_meta(m,libvlc_meta_Album) too soon then I get a segment > fault. I thought about waiting for the libvlc_MediaPlayerPlaying event > but libvlc_MediaMetaChanged event is still sent several times before the > album and artist data is valid. > > Is there a way to check if the artist and album data is valid before > calling libvlc_media_get_meta? > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel -- Dipl.-Ing. (FH) Frank Enderle anamica UG (haftungsbeschr?nkt) Beinsteinerstr. 6 71334 Waiblingen Telefon: +49 151 14981091 Telefax: +49 7151 1335770 E-Mail: frank.enderle at anamica.de Internet: www.anamica.de Handelsregister: AG Stuttgart HRB 732357 Gesch?ftsf?hrer: Yvonne Holzwarth, Frank Enderle -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: vlc-1.1.0-buffer-time.patch URL: From dadatis at gmail.com Sat Jul 10 14:51:36 2010 From: dadatis at gmail.com (Daniel Tisza) Date: Sat, 10 Jul 2010 15:51:36 +0300 Subject: [vlc-devel] [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. In-Reply-To: References: Message-ID: Hi, Attached the new independent patch. Can be tested with attached playlists. Important notes: 1. Some input parameters are changed. 2. Be sure to have the commit for avformat fix before testing: http://git.videolan.org/?p=vlc.git;a=commit;h=5f118ca94b8b9e25b78e72e781c94fb2376541bb (Otherwise may segfault) @Konstantin Pavlov The movie at this location can be played now. http://hwcdn.net/a2f2q9i4/fms/replays/MX3_WC_Greece_2010.mov.smil Opened network stream with the whole address as MRL, e.g. rtmp://fms053.am4.hwcdn.net/a2f2q9i4/_definst_/mp4:fms/replays/MX3_WC_Greece_2010.mov?doppl=0e57804e426fee60&dopsig=79366ba07ec49facf0a4e7239aa3be31 @Howard Chu I made first a patch in which the location string contained all librtmp parameters. Unfortunately, this recent patch now prevents using spaces in the location string: http://git.videolan.org/?p=vlc.git;a=commit;h=f8d5652706916e4b7471a6d40f0d1c23854a79a4 The attached patch combines the given parameters from vlc into a string that is passed to SetupURL. -------------- next part -------------- A non-text attachment was scrubbed... Name: rtmpdump6.patch Type: text/x-patch Size: 22911 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: quartarete.xspf Type: application/xspf+xml Size: 704 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: nyhetskanalen.xspf Type: application/xspf+xml Size: 727 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: tv5monde.xspf Type: application/xspf+xml Size: 727 bytes Desc: not available URL: From ileoo at videolan.org Sat Jul 10 14:58:59 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Sat, 10 Jul 2010 15:58:59 +0300 Subject: [vlc-devel] [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. In-Reply-To: References: Message-ID: <20100710125858.GH1803@linux-3azp> On Sat, Jul 10, 2010 at 03:51:36PM +0300, Daniel Tisza wrote: > Hi, > @Howard Chu > I made first a patch in which the location string contained all > librtmp parameters. > Unfortunately, this recent patch now prevents using spaces in the > location string: > http://git.videolan.org/?p=vlc.git;a=commit;h=f8d5652706916e4b7471a6d40f0d1c23854a79a4 That commit only prevents spaces in url from gui, it doesn't do anything to core. -- Ilkka Ollakka There's a fine line between courage and foolishness. Too bad it's not a fence. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From remi at remlab.net Sat Jul 10 15:45:52 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 10 Jul 2010 16:45:52 +0300 Subject: [vlc-devel] [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. In-Reply-To: References: Message-ID: <201007101645.52538.remi@remlab.net> Le samedi 10 juillet 2010 15:51:36 Daniel Tisza, vous avez ?crit : > I made first a patch in which the location string contained all > librtmp parameters. > Unfortunately, this recent patch now prevents using spaces in the > location string: The location string is part of an URL (all but the scheme part), and URL cannot contain spaces as such. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sat Jul 10 16:14:12 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sat, 10 Jul 2010 17:14:12 +0300 Subject: [vlc-devel] [vlc-commits] commit: avcodec: disable direct rendering for VP80 (Ilkka Ollakka ) In-Reply-To: <20100710124056.1C77A1032AE@albiero.videolan.org> References: <20100710124056.1C77A1032AE@albiero.videolan.org> Message-ID: <201007101714.12727.remi@remlab.net> Le samedi 10 juillet 2010 15:40:56 git at videolan.org, vous avez ?crit : > vlc | branch: master | Ilkka Ollakka | Sat Jul 10 > 15:39:10 2010 +0300| [73339d95a75f7f9311d4aa8674ee2600f884d8d7] | > committer: Ilkka Ollakka > > avcodec: disable direct rendering for VP80 > > avcodec native decoder has priority over libvpx one, and I don't know > howto change that easily. Fix #3820 I can't compile VLC anymore with this. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From ileoo at videolan.org Sat Jul 10 16:25:22 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Sat, 10 Jul 2010 17:25:22 +0300 Subject: [vlc-devel] [vlc-commits] commit: avcodec: disable direct rendering for VP80 (Ilkka Ollakka ) In-Reply-To: <201007101714.12727.remi@remlab.net> References: <20100710124056.1C77A1032AE@albiero.videolan.org> <201007101714.12727.remi@remlab.net> Message-ID: <20100710142521.GA30157@linux-3azp> On Sat, Jul 10, 2010 at 05:14:12PM +0300, R?mi Denis-Courmont wrote: > Le samedi 10 juillet 2010 15:40:56 git at videolan.org, vous avez ?crit : > > vlc | branch: master | Ilkka Ollakka | Sat Jul 10 > > 15:39:10 2010 +0300| [73339d95a75f7f9311d4aa8674ee2600f884d8d7] | > > committer: Ilkka Ollakka > I can't compile VLC anymore with this. my bad, I thought that we required more recent ffmpeg, I'll fix it tomorrow if nobosdy else commits ifs around that line before that. -- Ilkka Ollakka You will lose your present job and have to become a door to door mayonnaise salesman. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From pdherbemont at free.fr Sat Jul 10 17:31:43 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Sat, 10 Jul 2010 17:31:43 +0200 Subject: [vlc-devel] libvlc_MediaMetaChanged event being sent too soon In-Reply-To: <4C37AE0C.1030004@hcn-inc.com> References: <4C37AE0C.1030004@hcn-inc.com> Message-ID: On Sat, Jul 10, 2010 at 1:17 AM, Jason Butler wrote: > I am using libvlc 1.1.0 to play an audio steam on Linux. I want to get the > title, album, and artist every time the track changes so I am hooking up a > callback function to the libvlc_MediaMetaChanged event. The problem is when > the stream starts playing the libvlc_MediaMetaChanged event is sent serveral > times before all the track meta data is valid. If I call > ?libvlc_media_get_meta(m,libvlc_meta_Artist), or > libvlc_media_get_meta(m,libvlc_meta_Album) too soon then I get a segment > fault. ?I thought about waiting for the libvlc_MediaPlayerPlaying event but > libvlc_MediaMetaChanged event is still sent several times before the album > and artist data is valid. > > Is there a way to check if the artist and album data is valid before calling > ?libvlc_media_get_meta? There is the meta_type field in the libvlc_event_t that describes what meta (artist...) has changed. This should be what your are looking for. Pierre. From pdherbemont at free.fr Sat Jul 10 17:33:02 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Sat, 10 Jul 2010 17:33:02 +0200 Subject: [vlc-devel] libvlc_MediaMetaChanged event being sent too soon In-Reply-To: <4C37AE0C.1030004@hcn-inc.com> References: <4C37AE0C.1030004@hcn-inc.com> Message-ID: On Sat, Jul 10, 2010 at 1:17 AM, Jason Butler wrote: > I am using libvlc 1.1.0 to play an audio steam on Linux. I want to get the > title, album, and artist every time the track changes so I am hooking up a > callback function to the libvlc_MediaMetaChanged event. The problem is when > the stream starts playing the libvlc_MediaMetaChanged event is sent serveral > times before all the track meta data is valid. If I call > ?libvlc_media_get_meta(m,libvlc_meta_Artist), or > libvlc_media_get_meta(m,libvlc_meta_Album) too soon then I get a segment > fault. This is clearly a bug in the implementation that needs fixing. Do you have a backtrace? Pierre. From pdherbemont at free.fr Sat Jul 10 17:44:49 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Sat, 10 Jul 2010 17:44:49 +0200 Subject: [vlc-devel] Why we need proper API functions for [aisv]mem plugins... In-Reply-To: <201007091840.19894.remi@remlab.net> References: <00721187c7519b063fe3414ce689aa99@chewa.net> <201007091840.19894.remi@remlab.net> Message-ID: 2010/7/9 R?mi Denis-Courmont : > Le vendredi 9 juillet 2010 16:42:22 R?mi Denis-Courmont, vous avez ?crit : >> I have to say I agree. At least video and audio, it should be relatively >> easy, as long as we expect a fixed output format. > > *Ahem*, I forgot that amem did not exist (yet). > I will be working on a vmem API this week-end. This is effectively crazy to document that hack. A sane API would be much welcomed. Do you have an API draft? Pierre. From pdherbemont at free.fr Sat Jul 10 17:46:39 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Sat, 10 Jul 2010 17:46:39 +0200 Subject: [vlc-devel] Why we need proper API functions for [aisv]mem plugins... In-Reply-To: References: <00721187c7519b063fe3414ce689aa99@chewa.net> <201007091840.19894.remi@remlab.net> Message-ID: On Sat, Jul 10, 2010 at 5:44 PM, Pierre d'Herbemont wrote: > 2010/7/9 R?mi Denis-Courmont : >> Le vendredi 9 juillet 2010 16:42:22 R?mi Denis-Courmont, vous avez ?crit : >>> I have to say I agree. At least video and audio, it should be relatively >>> easy, as long as we expect a fixed output format. >> >> *Ahem*, I forgot that amem did not exist (yet). >> I will be working on a vmem API this week-end. > > This is effectively crazy to document that hack. A sane API would be > much welcomed. Do you have an API draft? ok, seen you've committed something. It looks fine. Pierre. From remi at remlab.net Sat Jul 10 18:01:50 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Sat, 10 Jul 2010 19:01:50 +0300 Subject: [vlc-devel] =?utf-8?q?=5Bvlc-commits=5D_commit=3A_Add_LibVLC_API_?= =?utf-8?q?for_vmem_=28_R=C3=A9mi_Denis-Courmont_=29?= In-Reply-To: <20100710151005.1E2FC103860@albiero.videolan.org> References: <20100710151005.1E2FC103860@albiero.videolan.org> Message-ID: <201007101901.50848.remi@remlab.net> Le samedi 10 juillet 2010 18:10:05 git at videolan.org, vous avez ?crit : > vlc | branch: master | R?mi Denis-Courmont | Sat Jul 10 > 18:09:05 2010 +0300| [31150350679286f873c94fc670ddbafddaed7163] | > committer: R?mi Denis-Courmont > > Add LibVLC API for vmem Do we have any sample C or C++ code that uses LibVLC 1.1.0 and vmem? We would need to test this (then backport to 1.1.1). -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From mark.lee at capricasoftware.co.uk Sat Jul 10 19:32:42 2010 From: mark.lee at capricasoftware.co.uk (Mark Lee) Date: Sat, 10 Jul 2010 18:32:42 +0100 Subject: [vlc-devel] [PATCH] Added functions to get/set the media player audio delay. Message-ID: <1278783162-9985-1-git-send-email-mark.lee@capricasoftware.co.uk> --- include/vlc/libvlc_media_player.h | 16 ++++++++++++++++ src/control/media_player.c | 28 ++++++++++++++++++++++++++++ src/libvlc.sym | 2 ++ 3 files changed, 46 insertions(+), 0 deletions(-) diff --git a/include/vlc/libvlc_media_player.h b/include/vlc/libvlc_media_player.h index 33654a9..9b7bc18 100644 --- a/include/vlc/libvlc_media_player.h +++ b/include/vlc/libvlc_media_player.h @@ -552,6 +552,22 @@ VLC_PUBLIC_API int libvlc_media_player_can_pause( libvlc_media_player_t *p_mi ); */ VLC_PUBLIC_API void libvlc_media_player_next_frame( libvlc_media_player_t *p_mi ); +/** + * Get current audio delay. + * + * \param p_mi media player + * \return the audio delay (microseconds) + */ +VLC_PUBLIC_API int64_t libvlc_media_player_get_audio_delay( libvlc_media_player_t *p_mi ); + +/** + * Set current audio delay. + * + * \param p_mi media player + * \param i_delay the audio delay (microseconds) + * \return 0 on success, -1 on error + */ +VLC_PUBLIC_API int libvlc_media_player_set_audio_delay( libvlc_media_player_t *p_mi, int64_t i_delay ); /** diff --git a/src/control/media_player.c b/src/control/media_player.c index cf54fcd..bfe8ec3 100644 --- a/src/control/media_player.c +++ b/src/control/media_player.c @@ -1288,3 +1288,31 @@ void libvlc_media_player_next_frame( libvlc_media_player_t *p_mi ) vlc_object_release( p_input_thread ); } } + +int64_t libvlc_media_player_get_audio_delay( libvlc_media_player_t *p_mi ) +{ + input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi ); + int64_t val = 0; + if( p_input_thread != NULL ) + { + val = var_GetTime( p_input_thread, "audio-delay" ); + vlc_object_release( p_input_thread ); + } + return val; +} + +int libvlc_media_player_set_audio_delay( libvlc_media_player_t *p_mi, int64_t i_delay ) +{ + input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi ); + int ret = 0; + if( p_input_thread != NULL ) + { + var_SetTime( p_input_thread, "audio-delay", i_delay ); + vlc_object_release( p_input_thread ); + } + else + { + ret = -1; + } + return ret; +} diff --git a/src/libvlc.sym b/src/libvlc.sym index f05d463..07938f3 100644 --- a/src/libvlc.sym +++ b/src/libvlc.sym @@ -108,6 +108,7 @@ libvlc_media_player_can_pause libvlc_media_player_next_frame libvlc_media_player_event_manager libvlc_media_player_get_agl +libvlc_media_player_get_audio_delay libvlc_media_player_get_chapter libvlc_media_player_get_chapter_count libvlc_media_player_get_chapter_count_for_title @@ -136,6 +137,7 @@ libvlc_media_player_previous_chapter libvlc_media_player_release libvlc_media_player_retain libvlc_media_player_set_agl +libvlc_media_player_set_audio_delay libvlc_media_player_set_chapter libvlc_media_player_set_hwnd libvlc_media_player_set_media -- 1.7.0.4 From fcvlcdev at free.fr Sat Jul 10 19:49:40 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Sat, 10 Jul 2010 19:49:40 +0200 Subject: [vlc-devel] [PATCH 1/3] Qt forced default value is different than libvlc's saved Message-ID: <1278784182-20305-1-git-send-email-fcvlcdev@free.fr> --- modules/gui/qt4/components/simple_preferences.cpp | 2 +- modules/gui/qt4/qt4.cpp | 3 +++ modules/gui/qt4/qt4.hpp | 4 ++++ 3 files changed, 8 insertions(+), 1 deletions(-) diff --git a/modules/gui/qt4/components/simple_preferences.cpp b/modules/gui/qt4/components/simple_preferences.cpp index f56468a..d99d291 100644 --- a/modules/gui/qt4/components/simple_preferences.cpp +++ b/modules/gui/qt4/components/simple_preferences.cpp @@ -310,7 +310,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, #undef audioCommon /* Audio Options */ - CONFIG_GENERIC_NO_BOOL( "volume" , IntegerRangeSlider, NULL, + CONFIG_GENERIC_NO_BOOL( "qt-startvolume" , IntegerRangeSlider, NULL, defaultVolume ); CONNECT( ui.defaultVolume, valueChanged( int ), this, updateAudioVolume( int ) ); diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 990b255..a1990d9 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -128,6 +128,7 @@ static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * ); "software amplification." ) #define SAVEVOL_TEXT N_( "Automatically save the volume on exit" ) +#define STARTVOL_TEXT N_( "Default start volume" ) #define PRIVACY_TEXT N_( "Ask for network policy at start" ) @@ -200,6 +201,8 @@ vlc_module_begin () COMPLETEVOL_LONGTEXT, true ) add_bool( "qt-autosave-volume", false, NULL, SAVEVOL_TEXT, SAVEVOL_TEXT, true ) + add_integer_with_range( "qt-startvolume", QT_VOLUME_DEFAULT, 0, + QT_VOLUME_MAX, NULL, STARTVOL_TEXT, STARTVOL_TEXT, true ) add_bool( "qt-embedded-open", false, NULL, QT_NATIVEOPEN_TEXT, QT_NATIVEOPEN_TEXT, false ) diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp index 8678b79..577d434 100644 --- a/modules/gui/qt4/qt4.hpp +++ b/modules/gui/qt4/qt4.hpp @@ -32,6 +32,7 @@ #include /* VLC_COMMON_MEMBERS for vlc_interface.h */ #include /* intf_thread_t */ #include /* playlist_t */ +#include /* AOUT_VOLUME_ */ #define QT_NO_CAST_TO_ASCII #include @@ -117,6 +118,9 @@ struct intf_sys_t #define getSettings() p_intf->p_sys->mainSettings +#define QT_VOLUME_DEFAULT AOUT_VOLUME_DEFAULT +#define QT_VOLUME_MAX (AOUT_VOLUME_DEFAULT * 2) + static inline QString QVLCUserDir( vlc_userdir_t type ) { char *dir = config_GetUserDir( type ); -- 1.6.4.4 From fcvlcdev at free.fr Sat Jul 10 19:49:41 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Sat, 10 Jul 2010 19:49:41 +0200 Subject: [vlc-devel] [PATCH 2/3] Qt: simple_prefs audio: Use defined values Fixes #3351 In-Reply-To: <1278784182-20305-1-git-send-email-fcvlcdev@free.fr> References: <1278784182-20305-1-git-send-email-fcvlcdev@free.fr> Message-ID: <1278784182-20305-2-git-send-email-fcvlcdev@free.fr> --- modules/gui/qt4/components/simple_preferences.cpp | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/modules/gui/qt4/components/simple_preferences.cpp b/modules/gui/qt4/components/simple_preferences.cpp index d99d291..321de8b 100644 --- a/modules/gui/qt4/components/simple_preferences.cpp +++ b/modules/gui/qt4/components/simple_preferences.cpp @@ -310,6 +310,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, #undef audioCommon /* Audio Options */ + ui.volumeValue->setMaximum( QT_VOLUME_MAX / QT_VOLUME_DEFAULT * 100 ); CONFIG_GENERIC_NO_BOOL( "qt-startvolume" , IntegerRangeSlider, NULL, defaultVolume ); CONNECT( ui.defaultVolume, valueChanged( int ), @@ -729,7 +730,7 @@ SPrefsPanel::~SPrefsPanel() void SPrefsPanel::updateAudioVolume( int volume ) { qobject_cast(optionWidgets[volLW]) - ->setValue( volume * 100 / 256 ); + ->setValue( volume * 100 / QT_VOLUME_DEFAULT ); } -- 1.6.4.4 From fcvlcdev at free.fr Sat Jul 10 19:49:42 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Sat, 10 Jul 2010 19:49:42 +0200 Subject: [vlc-devel] [PATCH 3/3] Qt: Fix save volume on exit Fixes #2968 In-Reply-To: <1278784182-20305-1-git-send-email-fcvlcdev@free.fr> References: <1278784182-20305-1-git-send-email-fcvlcdev@free.fr> Message-ID: <1278784182-20305-3-git-send-email-fcvlcdev@free.fr> --- modules/gui/qt4/qt4.cpp | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index a1990d9..1888ab5 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -505,6 +505,15 @@ static void *Thread( void *obj ) /* Save the path */ getSettings()->setValue( "filedialog-path", p_intf->p_sys->filepath ); + /* Save volume on exit */ + audio_volume_t i_volume; + if ( var_InheritBool( p_intf, "qt-autosave-volume" ) ) + aout_VolumeGet( p_intf, &i_volume ); + else + i_volume = config_GetInt( p_intf, "qt-startvolume" ); + config_PutInt( p_intf, "volume", i_volume ); + config_SaveConfigFile( p_intf, NULL ); + /* Delete the configuration. Application has to be deleted after that. */ delete p_intf->p_sys->mainSettings; -- 1.6.4.4 From remi at remlab.net Sat Jul 10 20:05:42 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sat, 10 Jul 2010 21:05:42 +0300 Subject: [vlc-devel] [PATCH] Added functions to get/set the media player audio delay. In-Reply-To: <1278783162-9985-1-git-send-email-mark.lee@capricasoftware.co.uk> References: <1278783162-9985-1-git-send-email-mark.lee@capricasoftware.co.uk> Message-ID: <201007102105.42479.remi@remlab.net> Comments inline. Le samedi 10 juillet 2010 20:32:42 Mark Lee, vous avez ?crit : > --- > include/vlc/libvlc_media_player.h | 16 ++++++++++++++++ > src/control/media_player.c | 28 ++++++++++++++++++++++++++++ > src/libvlc.sym | 2 ++ > 3 files changed, 46 insertions(+), 0 deletions(-) > > diff --git a/include/vlc/libvlc_media_player.h > b/include/vlc/libvlc_media_player.h index 33654a9..9b7bc18 100644 > --- a/include/vlc/libvlc_media_player.h > +++ b/include/vlc/libvlc_media_player.h > @@ -552,6 +552,22 @@ VLC_PUBLIC_API int libvlc_media_player_can_pause( > libvlc_media_player_t *p_mi ); */ > VLC_PUBLIC_API void libvlc_media_player_next_frame( libvlc_media_player_t > *p_mi ); > > +/** > + * Get current audio delay. > + * > + * \param p_mi media player > + * \return the audio delay (microseconds) You should probably add a \version Doxygen stanza. > + */ > +VLC_PUBLIC_API int64_t libvlc_media_player_get_audio_delay( > libvlc_media_player_t *p_mi ); I think this belongs in the Audio functions group rather than plain Media Player. > + > +/** > + * Set current audio delay. > + * > + * \param p_mi media player > + * \param i_delay the audio delay (microseconds) > + * \return 0 on success, -1 on error > + */ > +VLC_PUBLIC_API int libvlc_media_player_set_audio_delay( > libvlc_media_player_t *p_mi, int64_t i_delay ); Same comments here. > /** > diff --git a/src/control/media_player.c b/src/control/media_player.c > index cf54fcd..bfe8ec3 100644 > --- a/src/control/media_player.c > +++ b/src/control/media_player.c > @@ -1288,3 +1288,31 @@ void libvlc_media_player_next_frame( > libvlc_media_player_t *p_mi ) vlc_object_release( p_input_thread ); > } > } > + > +int64_t libvlc_media_player_get_audio_delay( libvlc_media_player_t *p_mi ) > +{ > + input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi ); > + int64_t val = 0; > + if( p_input_thread != NULL ) > + { > + val = var_GetTime( p_input_thread, "audio-delay" ); > + vlc_object_release( p_input_thread ); > + } > + return val; > +} > + > +int libvlc_media_player_set_audio_delay( libvlc_media_player_t *p_mi, > int64_t i_delay ) +{ > + input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi ); > + int ret = 0; > + if( p_input_thread != NULL ) > + { > + var_SetTime( p_input_thread, "audio-delay", i_delay ); > + vlc_object_release( p_input_thread ); > + } > + else > + { > + ret = -1; > + } > + return ret; > +} At the very least, it should be noted in the documentation that the delay will be reset to zero at the next media item. Alternatively, the delay could be preserved with some extra hackery, but I am not sure if it makes much sense. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Sat Jul 10 21:19:55 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sat, 10 Jul 2010 21:19:55 +0200 Subject: [vlc-devel] [vlc-commits] commit: avcodec: disable direct rendering for VP80 (Ilkka Ollakka ) In-Reply-To: <20100710124208.ADCBE10362E@albiero.videolan.org> References: <20100710124208.ADCBE10362E@albiero.videolan.org> Message-ID: <20100710191955.GA8237@videolan.org> On Sat, Jul 10, 2010 at 02:42:08PM +0200, git at videolan.org wrote : > vlc/vlc-1.1 | branch: master | Ilkka Ollakka | Sat Jul 10 15:39:10 2010 +0300| [316d142d4af7d90f43c794b4c289794b2e48d9a6] | committer: Ilkka Ollakka > > avcodec: disable direct rendering for VP80 This is really a drawback and is a huge performance hit. I don't really see the point in backporting this without letting packagers to go around it. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sat Jul 10 21:21:33 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sat, 10 Jul 2010 21:21:33 +0200 Subject: [vlc-devel] Why we need proper API functions for [aisv]mem plugins... In-Reply-To: <201007091840.19894.remi@remlab.net> References: <00721187c7519b063fe3414ce689aa99@chewa.net> <201007091840.19894.remi@remlab.net> Message-ID: <20100710192133.GB8237@videolan.org> On Fri, Jul 09, 2010 at 06:40:18PM +0300, R?mi Denis-Courmont wrote : > *Ahem*, I forgot that amem did not exist (yet). Attached the latest version I had (mostly not my code, do not blame me) -- Jean-Baptiste Kempf http://www.jbkempf.com/ -------------- next part -------------- A non-text attachment was scrubbed... Name: amem.c Type: text/x-csrc Size: 8146 bytes Desc: not available URL: From ileoo at videolan.org Sun Jul 11 01:49:30 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Sun, 11 Jul 2010 02:49:30 +0300 Subject: [vlc-devel] [vlc-commits] commit: avcodec: disable direct rendering for VP80 (Ilkka Ollakka ) In-Reply-To: <20100710191955.GA8237@videolan.org> References: <20100710124208.ADCBE10362E@albiero.videolan.org> <20100710191955.GA8237@videolan.org> Message-ID: <20100710234930.GI1803@linux-3azp> On Sat, Jul 10, 2010 at 09:19:55PM +0200, Jean-Baptiste Kempf wrote: > On Sat, Jul 10, 2010 at 02:42:08PM +0200, git at videolan.org wrote : > > vlc/vlc-1.1 | branch: master | Ilkka Ollakka | Sat Jul 10 15:39:10 2010 +0300| [316d142d4af7d90f43c794b4c289794b2e48d9a6] | committer: Ilkka Ollakka > > avcodec: disable direct rendering for VP80 > This is really a drawback and is a huge performance hit. > I don't really see the point in backporting this without letting > packagers to go around it. I have no idea how big performance boost you get with direct-rendering, but I had let myself told that avcodec native decoder performs better than libvpx one ? -- Ilkka Ollakka When you make your mark in the world, watch out for guys with erasers. -- The Wall Street Journal -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From mark.lee at capricasoftware.co.uk Sun Jul 11 07:34:00 2010 From: mark.lee at capricasoftware.co.uk (Mark Lee) Date: Sun, 11 Jul 2010 06:34:00 +0100 Subject: [vlc-devel] [PATCH] Added functions to get/set the media player audio delay. In-Reply-To: <201007102105.42479.remi@remlab.net> References: <1278783162-9985-1-git-send-email-mark.lee@capricasoftware.co.uk> <201007102105.42479.remi@remlab.net> Message-ID: I will submit a new patch to address your comments. Is the implementation itself ok or did I miss something? 2010/7/10 R?mi Denis-Courmont : > Comments inline. > > Le samedi 10 juillet 2010 20:32:42 Mark Lee, vous avez ?crit : >> --- >> ?include/vlc/libvlc_media_player.h | ? 16 ++++++++++++++++ >> ?src/control/media_player.c ? ? ? ?| ? 28 ++++++++++++++++++++++++++++ >> ?src/libvlc.sym ? ? ? ? ? ? ? ? ? ?| ? ?2 ++ >> ?3 files changed, 46 insertions(+), 0 deletions(-) >> >> diff --git a/include/vlc/libvlc_media_player.h >> b/include/vlc/libvlc_media_player.h index 33654a9..9b7bc18 100644 >> --- a/include/vlc/libvlc_media_player.h >> +++ b/include/vlc/libvlc_media_player.h >> @@ -552,6 +552,22 @@ VLC_PUBLIC_API int libvlc_media_player_can_pause( >> libvlc_media_player_t *p_mi ); */ >> ?VLC_PUBLIC_API void libvlc_media_player_next_frame( libvlc_media_player_t >> *p_mi ); >> >> +/** >> + * Get current audio delay. >> + * >> + * \param p_mi media player >> + * \return the audio delay (microseconds) > > You should probably add a \version Doxygen stanza. > >> + */ >> +VLC_PUBLIC_API int64_t libvlc_media_player_get_audio_delay( >> libvlc_media_player_t *p_mi ); > > I think this belongs in the Audio functions group rather than plain Media > Player. > >> + >> +/** >> + * Set current audio delay. >> + * >> + * \param p_mi media player >> + * \param i_delay the audio delay (microseconds) >> + * \return 0 on success, -1 on error >> + */ >> +VLC_PUBLIC_API int libvlc_media_player_set_audio_delay( >> libvlc_media_player_t *p_mi, int64_t i_delay ); > > Same comments here. > >> ?/** >> diff --git a/src/control/media_player.c b/src/control/media_player.c >> index cf54fcd..bfe8ec3 100644 >> --- a/src/control/media_player.c >> +++ b/src/control/media_player.c >> @@ -1288,3 +1288,31 @@ void libvlc_media_player_next_frame( >> libvlc_media_player_t *p_mi ) vlc_object_release( p_input_thread ); >> ? ? ?} >> ?} >> + >> +int64_t libvlc_media_player_get_audio_delay( libvlc_media_player_t *p_mi ) >> +{ >> + ? ?input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi ); >> + ? ?int64_t val = 0; >> + ? ?if( p_input_thread != NULL ) >> + ? ?{ >> + ? ? ?val = var_GetTime( p_input_thread, "audio-delay" ); >> + ? ? ?vlc_object_release( p_input_thread ); >> + ? ?} >> + ? ?return val; >> +} >> + >> +int libvlc_media_player_set_audio_delay( libvlc_media_player_t *p_mi, >> int64_t i_delay ) +{ >> + ? ?input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi ); >> + ? ?int ret = 0; >> + ? ?if( p_input_thread != NULL ) >> + ? ?{ >> + ? ? ?var_SetTime( p_input_thread, "audio-delay", i_delay ); >> + ? ? ?vlc_object_release( p_input_thread ); >> + ? ?} >> + ? ?else >> + ? ?{ >> + ? ? ?ret = -1; >> + ? ?} >> + ? ?return ret; >> +} > > At the very least, it should be noted in the documentation that the delay will > be reset to zero at the next media item. Alternatively, the delay could be > preserved with some extra hackery, but I am not sure if it makes much sense. > > -- > R?mi Denis-Courmont > http://www.remlab.net/ > http://fi.linkedin.com/in/remidenis From mark.lee at capricasoftware.co.uk Sun Jul 11 07:47:58 2010 From: mark.lee at capricasoftware.co.uk (Mark Lee) Date: Sun, 11 Jul 2010 06:47:58 +0100 Subject: [vlc-devel] [PATCH] Add functions to get/set audio delay. In-Reply-To: <1278783162-9985-1-git-send-email-mark.lee@capricasoftware.co.uk> References: <1278783162-9985-1-git-send-email-mark.lee@capricasoftware.co.uk> Message-ID: <1278827278-4457-1-git-send-email-mark.lee@capricasoftware.co.uk> Two new functions added: * val = libvlc_audio_get_delay( p_mi ) * libvlc_audio_set_delay( p_mi, i_delay ) The delay is measured in microseconds. --- include/vlc/libvlc_media_player.h | 19 +++++++++++++++++++ src/control/audio.c | 34 ++++++++++++++++++++++++++++++++++ src/libvlc.sym | 2 ++ 3 files changed, 55 insertions(+), 0 deletions(-) diff --git a/include/vlc/libvlc_media_player.h b/include/vlc/libvlc_media_player.h index 33654a9..f593599 100644 --- a/include/vlc/libvlc_media_player.h +++ b/include/vlc/libvlc_media_player.h @@ -1259,6 +1259,25 @@ VLC_PUBLIC_API int libvlc_audio_get_channel( libvlc_media_player_t *p_mi ); */ VLC_PUBLIC_API int libvlc_audio_set_channel( libvlc_media_player_t *p_mi, int channel ); +/** + * Get current audio delay. + * + * \param p_mi media player + * \return the audio delay (microseconds) + * \version LibVLC 1.1.1 or later + */ +VLC_PUBLIC_API int64_t libvlc_audio_get_delay( libvlc_media_player_t *p_mi ); + +/** + * Set current audio delay. The audio delay will be reset to zero each time the media changes. + * + * \param p_mi media player + * \param i_delay the audio delay (microseconds) + * \return 0 on success, -1 on error + * \version LibVLC 1.1.1 or later + */ +VLC_PUBLIC_API int libvlc_audio_set_delay( libvlc_media_player_t *p_mi, int64_t i_delay ); + /** @} audio */ /** @} media_player */ diff --git a/src/control/audio.c b/src/control/audio.c index 2c5ed8a..b7ebf34 100644 --- a/src/control/audio.c +++ b/src/control/audio.c @@ -478,3 +478,37 @@ int libvlc_audio_set_channel( libvlc_media_player_t *mp, int channel ) vlc_object_release( p_aout ); return ret; } + +/***************************************************************************** + * libvlc_audio_get_delay : Get the current audio delay + *****************************************************************************/ +int64_t libvlc_audio_get_delay( libvlc_media_player_t *p_mi ) +{ + input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi ); + int64_t val = 0; + if( p_input_thread != NULL ) + { + val = var_GetTime( p_input_thread, "audio-delay" ); + vlc_object_release( p_input_thread ); + } + return val; +} + +/***************************************************************************** + * libvlc_audio_set_delay : Set the current audio delay + *****************************************************************************/ +int libvlc_audio_set_delay( libvlc_media_player_t *p_mi, int64_t i_delay ) +{ + input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi ); + int ret = 0; + if( p_input_thread != NULL ) + { + var_SetTime( p_input_thread, "audio-delay", i_delay ); + vlc_object_release( p_input_thread ); + } + else + { + ret = -1; + } + return ret; +} diff --git a/src/libvlc.sym b/src/libvlc.sym index f05d463..afaf901 100644 --- a/src/libvlc.sym +++ b/src/libvlc.sym @@ -13,12 +13,14 @@ libvlc_audio_output_list_release libvlc_audio_output_set libvlc_audio_output_set_device_type libvlc_audio_get_channel +libvlc_audio_get_delay libvlc_audio_get_mute libvlc_audio_get_track libvlc_audio_get_track_count libvlc_audio_get_track_description libvlc_audio_get_volume libvlc_audio_set_channel +libvlc_audio_set_delay libvlc_audio_set_mute libvlc_audio_set_track libvlc_audio_set_volume -- 1.7.0.4 From remi at remlab.net Sun Jul 11 10:37:47 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sun, 11 Jul 2010 11:37:47 +0300 Subject: [vlc-devel] [PATCH] Added functions to get/set the media player audio delay. In-Reply-To: References: <1278783162-9985-1-git-send-email-mark.lee@capricasoftware.co.uk> <201007102105.42479.remi@remlab.net> Message-ID: <201007111137.47674.remi@remlab.net> Le dimanche 11 juillet 2010 08:34:00 Mark Lee, vous avez ?crit : > I will submit a new patch to address your comments. > > Is the implementation itself ok or did I miss something? I don't know. Generally, I prefer set/get function to work even if there is no active input. But in this case, this would require some changes to libvlccore. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From dadatis at gmail.com Sun Jul 11 11:07:03 2010 From: dadatis at gmail.com (Daniel Tisza) Date: Sun, 11 Jul 2010 12:07:03 +0300 Subject: [vlc-devel] [PATCH] Add entity encoding for input options when outputting an xml file. Message-ID: Hi, Entity encoding was missing (for options) in generation of an xspf playlist. On the reading side the entity decoding is all fine. Cheers, Daniel Tisza -------------- next part -------------- A non-text attachment was scrubbed... Name: xspf_xmlenc.patch Type: text/x-patch Size: 1473 bytes Desc: not available URL: From remi at remlab.net Sun Jul 11 11:17:58 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sun, 11 Jul 2010 12:17:58 +0300 Subject: [vlc-devel] [PATCH] Add entity encoding for input options when outputting an xml file. In-Reply-To: References: Message-ID: <201007111217.58359.remi@remlab.net> Le dimanche 11 juillet 2010 12:07:03 Daniel Tisza, vous avez ?crit : > Entity encoding was missing (for options) in generation of an xspf > playlist. On the reading side the entity decoding is all fine. Merged, thanks. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sun Jul 11 17:34:27 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sun, 11 Jul 2010 18:34:27 +0300 Subject: [vlc-devel] [PATCH] support for stream size in imem module (FINAL) In-Reply-To: References: Message-ID: <201007111834.28398.remi@remlab.net> Le lundi 5 juillet 2010 11:33:05 Kamil Klimek, vous avez ?crit : > Merged, thanks -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sun Jul 11 19:36:23 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sun, 11 Jul 2010 20:36:23 +0300 Subject: [vlc-devel] [PATCH] Add functions to get/set audio delay. In-Reply-To: <1278827278-4457-1-git-send-email-mark.lee@capricasoftware.co.uk> References: <1278783162-9985-1-git-send-email-mark.lee@capricasoftware.co.uk> <1278827278-4457-1-git-send-email-mark.lee@capricasoftware.co.uk> Message-ID: <201007112036.24140.remi@remlab.net> Le dimanche 11 juillet 2010 08:47:58 Mark Lee, vous avez ?crit : > Two new functions added: Merged, thanks! -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From kim.geunhyung at gmail.com Mon Jul 12 04:35:18 2010 From: kim.geunhyung at gmail.com (Geunhyung Kim) Date: Mon, 12 Jul 2010 11:35:18 +0900 Subject: [vlc-devel] support HTTP Streaming Player Message-ID: <60F29701-BD32-4F08-B7C3-13DDB5CC89AF@gmail.com> Hello, Does the VLC player support HTTP Streaming player which follows Apple HTTP streaming specification ? Regards, Geunhyung From remi at remlab.net Mon Jul 12 10:12:03 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Mon, 12 Jul 2010 10:12:03 +0200 Subject: [vlc-devel] support HTTP Streaming Player In-Reply-To: <60F29701-BD32-4F08-B7C3-13DDB5CC89AF@gmail.com> References: <60F29701-BD32-4F08-B7C3-13DDB5CC89AF@gmail.com> Message-ID: <201c020cdd1d20be00cd2782985ea769@chewa.net> On Mon, 12 Jul 2010 11:35:18 +0900, Geunhyung Kim wrote: > Does the VLC player support HTTP Streaming player which follows Apple > HTTP streaming specification ? Not currently. Regards, -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From pdherbemont at free.fr Mon Jul 12 11:33:02 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Mon, 12 Jul 2010 11:33:02 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Add_LibVLC?= =?iso-8859-1?q?_API_for_vmem_=28_R=E9mi_Denis-Courmont_=29?= In-Reply-To: <201007101901.50848.remi@remlab.net> References: <20100710151005.1E2FC103860@albiero.videolan.org> <201007101901.50848.remi@remlab.net> Message-ID: On Sat, Jul 10, 2010 at 6:01 PM, R?mi Denis-Courmont wrote: > Le samedi 10 juillet 2010 18:10:05 git at videolan.org, vous avez ?crit : >> vlc | branch: master | R?mi Denis-Courmont | Sat Jul 10 >> 18:09:05 2010 +0300| [31150350679286f873c94fc670ddbafddaed7163] | >> committer: R?mi Denis-Courmont >> >> Add LibVLC API for vmem > > Do we have any sample C or C++ code that uses LibVLC 1.1.0 and vmem? We would > need to test this (then backport to 1.1.1). So far, the place where it is advertised (with a sample code) is: http://wiki.videolan.org/LibVLC_SampleCode_SDL But I see that you've already found it :) Pierre. From jbutler at hcn-inc.com Mon Jul 12 20:32:21 2010 From: jbutler at hcn-inc.com (Jason Butler) Date: Mon, 12 Jul 2010 13:32:21 -0500 Subject: [vlc-devel] libvlc_MediaMetaChanged event being sent too soon In-Reply-To: <4C38100C.6030707@anamica.de> References: <4C37AE0C.1030004@hcn-inc.com> <4C38100C.6030707@anamica.de> Message-ID: <4C3B5FB5.2020203@hcn-inc.com> I put the following code inside my libvlc_MediaMeataChanged event handler: signed long long int time = libvlc_media_player_get_buffered_time(mp); printf("buffer time: %lli\n", time); It always returned a buffer time of 0. Is this the expected result or am I doing something wrong. I got the same result if I used an int instead of a signed long long. libvlc_time_t is a int64_t which I believe is a singed long long. On 10-07-10 01:15 AM, Frank Enderle wrote: > the event is fired as soon as vlc gets the data from the streaming > server. however it does not take in account that the audio data will be > buffered and thus delayed. that's why there's a gap between the event > and the actual data being valid for the current stream position. > > i solved this for me by applying a patch to vlc which gives me the > ability to see how much streamtime is buffered. when i get the event i > calculate when it becomes valid by adding the time left in the buffer to > the current (monotonic) timestamp and put the result in a ring buffer > which is frequently checked. when the title change gets valid it is > shown to the user and removed from the ring. > > i played with the thought to add this as a patch to vlc itself so the > event is fired timecorrected, but i didn't do it because i think it is > the applications responsibility to deal with the delay since there might > be cases when it is a good idea to have the data early, for example if > you want to do some artwork prefetch. so i only added the ability to get > the time left in the buffers. > > i sent the patch a while ago to the list, but i don't think it has been > incorporated to the git master (i might be wrong). i added you the patch > against vlc 1.1.0. it gives you a new function to get the buffered time > in ms. > > libvlc_time_t > libvlc_media_player_get_buffered_time(libvlc_media_player_t *p_mi); > > hope this helps > > frank > > Am 10.07.2010 01:17, schrieb Jason Butler: > >> I am using libvlc 1.1.0 to play an audio steam on Linux. I want to get >> the title, album, and artist every time the track changes so I am >> hooking up a callback function to the libvlc_MediaMetaChanged event. The >> problem is when the stream starts playing the libvlc_MediaMetaChanged >> event is sent serveral times before all the track meta data is valid. If >> I call libvlc_media_get_meta(m,libvlc_meta_Artist), or >> libvlc_media_get_meta(m,libvlc_meta_Album) too soon then I get a segment >> fault. I thought about waiting for the libvlc_MediaPlayerPlaying event >> but libvlc_MediaMetaChanged event is still sent several times before the >> album and artist data is valid. >> >> Is there a way to check if the artist and album data is valid before >> calling libvlc_media_get_meta? >> _______________________________________________ >> vlc-devel mailing list >> To unsubscribe or modify your subscription options: >> http://mailman.videolan.org/listinfo/vlc-devel >> > > > > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From frank.enderle at anamica.de Mon Jul 12 19:54:27 2010 From: frank.enderle at anamica.de (Frank Enderle) Date: Mon, 12 Jul 2010 19:54:27 +0200 Subject: [vlc-devel] libvlc_MediaMetaChanged event being sent too soon In-Reply-To: <4C3B5FB5.2020203@hcn-inc.com> References: <4C37AE0C.1030004@hcn-inc.com> <4C38100C.6030707@anamica.de> <4C3B5FB5.2020203@hcn-inc.com> Message-ID: <4C3B56D3.2080307@anamica.de> i do the same and it works here. if(mp && libvlc_media_player_get_state(mp) == libvlc_Playing) { offset = libvlc_media_player_get_buffered_time(mp); } afterwards offset contains a value. Am 12.07.2010 20:32, schrieb Jason Butler: > I put the following code inside my libvlc_MediaMeataChanged event handler: > > signed long long int time = libvlc_media_player_get_buffered_time(mp); > printf("buffer time: %lli\n", time); > > It always returned a buffer time of 0. Is this the expected result or am > I doing something wrong. > I got the same result if I used an int instead of a signed long long. > libvlc_time_t is a int64_t which I believe is a singed long long. > > On 10-07-10 01:15 AM, Frank Enderle wrote: >> the event is fired as soon as vlc gets the data from the streaming >> server. however it does not take in account that the audio data will be >> buffered and thus delayed. that's why there's a gap between the event >> and the actual data being valid for the current stream position. >> >> i solved this for me by applying a patch to vlc which gives me the >> ability to see how much streamtime is buffered. when i get the event i >> calculate when it becomes valid by adding the time left in the buffer to >> the current (monotonic) timestamp and put the result in a ring buffer >> which is frequently checked. when the title change gets valid it is >> shown to the user and removed from the ring. >> >> i played with the thought to add this as a patch to vlc itself so the >> event is fired timecorrected, but i didn't do it because i think it is >> the applications responsibility to deal with the delay since there might >> be cases when it is a good idea to have the data early, for example if >> you want to do some artwork prefetch. so i only added the ability to get >> the time left in the buffers. >> >> i sent the patch a while ago to the list, but i don't think it has been >> incorporated to the git master (i might be wrong). i added you the patch >> against vlc 1.1.0. it gives you a new function to get the buffered time >> in ms. >> >> libvlc_time_t >> libvlc_media_player_get_buffered_time(libvlc_media_player_t *p_mi); >> >> hope this helps >> >> frank >> >> Am 10.07.2010 01:17, schrieb Jason Butler: >> >>> I am using libvlc 1.1.0 to play an audio steam on Linux. I want to get >>> the title, album, and artist every time the track changes so I am >>> hooking up a callback function to the libvlc_MediaMetaChanged event. The >>> problem is when the stream starts playing the libvlc_MediaMetaChanged >>> event is sent serveral times before all the track meta data is valid. If >>> I call libvlc_media_get_meta(m,libvlc_meta_Artist), or >>> libvlc_media_get_meta(m,libvlc_meta_Album) too soon then I get a segment >>> fault. I thought about waiting for the libvlc_MediaPlayerPlaying event >>> but libvlc_MediaMetaChanged event is still sent several times before the >>> album and artist data is valid. >>> >>> Is there a way to check if the artist and album data is valid before >>> calling libvlc_media_get_meta? >>> _______________________________________________ >>> vlc-devel mailing list >>> To unsubscribe or modify your subscription options: >>> http://mailman.videolan.org/listinfo/vlc-devel >>> >> >> >> >> >> _______________________________________________ >> vlc-devel mailing list >> To unsubscribe or modify your subscription options: >> http://mailman.videolan.org/listinfo/vlc-devel >> > > > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel -- Dipl.-Ing. (FH) Frank Enderle anamica UG (haftungsbeschr?nkt) Beinsteinerstr. 6 71334 Waiblingen Telefon: +49 151 14981091 Telefax: +49 7151 1335770 E-Mail: frank.enderle at anamica.de Internet: www.anamica.de Handelsregister: AG Stuttgart HRB 732357 Gesch?ftsf?hrer: Yvonne Holzwarth, Frank Enderle From jbutler at hcn-inc.com Mon Jul 12 21:43:32 2010 From: jbutler at hcn-inc.com (Jason Butler) Date: Mon, 12 Jul 2010 14:43:32 -0500 Subject: [vlc-devel] libvlc_MediaMetaChanged event being sent too soon In-Reply-To: References: <4C37AE0C.1030004@hcn-inc.com> Message-ID: <4C3B7064.5080402@hcn-inc.com> I tried examining the meta_type field in libvlc_event_t->media_meta_changed but it was almost always libvlc_meta_ArtworkURL and I never got a /libvlc_meta_Artist/,/ ibvlc_meta_Title/, or /libvlc_meta_Album/. On 10-07-10 10:31 AM, Pierre d'Herbemont wrote: > On Sat, Jul 10, 2010 at 1:17 AM, Jason Butler wrote: > >> I am using libvlc 1.1.0 to play an audio steam on Linux. I want to get the >> title, album, and artist every time the track changes so I am hooking up a >> callback function to the libvlc_MediaMetaChanged event. The problem is when >> the stream starts playing the libvlc_MediaMetaChanged event is sent serveral >> times before all the track meta data is valid. If I call >> libvlc_media_get_meta(m,libvlc_meta_Artist), or >> libvlc_media_get_meta(m,libvlc_meta_Album) too soon then I get a segment >> fault. I thought about waiting for the libvlc_MediaPlayerPlaying event but >> libvlc_MediaMetaChanged event is still sent several times before the album >> and artist data is valid. >> >> Is there a way to check if the artist and album data is valid before calling >> libvlc_media_get_meta? >> > There is the meta_type field in the libvlc_event_t that describes what > meta (artist...) has changed. This should be what your are looking > for. > > Pierre. > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Mon Jul 12 20:54:53 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Mon, 12 Jul 2010 21:54:53 +0300 Subject: [vlc-devel] Debian/Ubuntu VLC Message-ID: <201007122154.54917.remi@remlab.net> Hello, I think it is fair to say that there is increasing frustration from users and developers w.r.t. the state of VLC in Debian & Ubuntu. I am left wondering what is the best way forward... 1) Debian stable Some time ago, one of the Debian Security (testing or stable, I honestly don't remember) complained that the VideoLAN project security update process was less than optimal. Guess what? It's been almost 3 months since we released VLC 1.0.6, and still Debian Stable ships the same security holes. If we are doing less than optimal, Debian Stable is doing outright PATHETIC. 2) Ubuntu current version Sooner or later, someone will find a security hole in VLC 1.0.6. If not for security, there are known critical bugs already. For a start, the Mozilla plugin just crashes. Always. If I understand right, Reinhard considered making a PPA, whereas Benjamin suggested VideoLAN make a PPA. Either way, I am concerned that this will cause a flood of untraceable Apport crash reports. How are we supposed to fix that? 3) Ubuntu LTS At this point in the spacetime continuum, LTS is the current version. But what should be done in a few months when it's not the case anymore? 4) Ubuntu older versions Ubuntu happily ships VLC with known security holes. WTH? -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From abhimail007 at gmail.com Sat Jul 10 03:02:09 2010 From: abhimail007 at gmail.com (Abhijit Sonavane) Date: Sat, 10 Jul 2010 06:32:09 +0530 Subject: [vlc-devel] Permission And Help For Translating or Localisation of Marathi Language In-Reply-To: References: Message-ID: On Fri, Jul 2, 2010 at 9:50 AM, Abhijit Sonavane wrote: > *My Name is Abhijit Sonavane and I am a student studying computer science. > * > *as per above subject i saw a videolan.org website and found that there is > no support for marathi language.* > *I want to support VLC by creating a translation for VLC in Marathi. I > have read the instruction on to creating translation.* > *And also I have downloaded the Poedit Software. And next I need for a > translation is a localiztion file so PLS provide me that. you can also > contact me via email or mobile phone(if needed ask for mobile no. via > Email). * > *If possible PLS provide the technical help and assistance to translate.* > ** > *Thanking You!!! * > > Abhijit Sonavane > Abhimail007 at gmail.com > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From barnamah at gmail.com Sat Jul 10 01:58:29 2010 From: barnamah at gmail.com (Ahmad Belal) Date: Fri, 9 Jul 2010 19:58:29 -0400 Subject: [vlc-devel] localization file Message-ID: Hi, Thank you for the wonderful player. I love. I would like to add the Persian translation for VLC player and need the localization file. Thank you Bar Namah -------------- next part -------------- An HTML attachment was scrubbed... URL: From rbh00 at netcom.com Sun Jul 11 22:36:13 2010 From: rbh00 at netcom.com (Richard Hitt) Date: Sun, 11 Jul 2010 13:36:13 -0700 Subject: [vlc-devel] Patch to qt4/main_interface.cpp Message-ID: <4C3A2B3D.2080404@netcom.com> Here is a patch to the modules/gui/qt4/main_interface.cpp function that operates (at least) during audio streaming and displays the title of a new tune. The display time had been 3 sec, annoyingly short; I barely notice the display and it's gone, and I have to mouseover the icon to recover it. The patched function is MainInterface::updateSystrayTooltipName(). This display time is set in a call to showMessage, see reference http://doc.trolltech.com/4.4/qsystemtrayicon.html#showMessage. If the millisecondsTimeoutHint argument is omitted, the default time is used; that amounts to 10 sec (10000 ms), and in my experience ten seconds is a perfect time. The preceding function, MainInterface::handleSystrayClick(), also calls showMessage() with a timeout of 3000 ms. But the data shown in that case is constant and short ("Control menu for the player"), and I think 3000ms is reasonable for it, so I have patched only the updateSystrayTooltipName(), whose text length, can be variable and long. I developed this patch on my Fedora 12 system. Thanks for considering it for your next release of vlc! Richard Hitt Here is the patch text: diff -urN ORIGvlc-1.0.6/modules/gui/qt4/main_interface.cpp NEWvlc-1.0.6/modules/gui/qt4/main_interface.cpp --- ORIGvlc-1.0.6/modules/gui/qt4/main_interface.cpp 2010-03-07 10:38:01.000000000 -0800 +++ NEWvlc-1.0.6/modules/gui/qt4/main_interface.cpp 2010-07-11 11:51:35.784196346 -0700 @@ -1073,7 +1073,7 @@ if( notificationEnabled&& ( isHidden() || isMinimized() ) ) { sysTray->showMessage( qtr( "VLC media player" ), name, - QSystemTrayIcon::NoIcon, 3000 ); + QSystemTrayIcon::NoIcon); } } From bdrung at ubuntu.com Mon Jul 12 22:28:59 2010 From: bdrung at ubuntu.com (Benjamin Drung) Date: Mon, 12 Jul 2010 22:28:59 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <201007122154.54917.remi@remlab.net> References: <201007122154.54917.remi@remlab.net> Message-ID: <1278966539.8257.15.camel@deep-thought> Am Montag, den 12.07.2010, 21:54 +0300 schrieb R?mi Denis-Courmont: > Hello, > > I think it is fair to say that there is increasing frustration from users and > developers w.r.t. the state of VLC in Debian & Ubuntu. I am left wondering > what is the best way forward... > > 1) Debian stable > > Some time ago, one of the Debian Security (testing or stable, I honestly don't > remember) complained that the VideoLAN project security update process was > less than optimal. Guess what? It's been almost 3 months since we released VLC > 1.0.6, and still Debian Stable ships the same security holes. If we are doing > less than optimal, Debian Stable is doing outright PATHETIC. > > 2) Ubuntu current version > > Sooner or later, someone will find a security hole in VLC 1.0.6. If not for > security, there are known critical bugs already. For a start, the Mozilla > plugin just crashes. Always. > > If I understand right, Reinhard considered making a PPA, whereas Benjamin > suggested VideoLAN make a PPA. Either way, I am concerned that this will cause > a flood of untraceable Apport crash reports. How are we supposed to fix that? My suggestion was to make the PPA under the videolan Launchpad team and add us packagers to the team. So that we can upload packages to the PPA, too. This PPA would make user who wants the latest version happy, but won't solve the security problem caused by the older version in the official repositories. > 3) Ubuntu LTS > > At this point in the spacetime continuum, LTS is the current version. But what > should be done in a few months when it's not the case anymore? > > 4) Ubuntu older versions > > Ubuntu happily ships VLC with known security holes. WTH? I doubt that we can pull a new upstream version into a stable Ubuntu release (e.g. vlc 1.1.0 in Ubuntu 10.04), because the new version breaks the ABI of the older version and therefore break applications that uses libvlc. The normal way for stable releases is to cherry-pick security fixes and apply them to the older version. How much manpower do you have to support this model? The process would be: 1. Open a bug report in Launchpad stating the security bug 2. Produce a patch that fixes the bug in the latest trunk version 3. Backport the patch against trunk to the older versions of vlc 4. Release the security update Looking at the Ubuntu bugs, there is only one security bug reported: https://bugs.launchpad.net/ubuntu/+source/vlc/+bug/295464 -- Benjamin Drung Ubuntu Developer (www.ubuntu.com) | Debian Maintainer (www.debian.org) -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Dies ist ein digital signierter Nachrichtenteil URL: From pankajdnapster at gmail.com Tue Jul 13 08:09:56 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Mon, 12 Jul 2010 23:09:56 -0700 Subject: [vlc-devel] SoC status Message-ID: Hi, Finalizing for commit is keeping me busy.I find "merging and maintaining so that code don't break" , the most tedious job.Please give me some time. -- Pankaj Yadav Open Source Enthusiast From remi at remlab.net Tue Jul 13 08:48:17 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 13 Jul 2010 08:48:17 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <1278966539.8257.15.camel@deep-thought> References: <201007122154.54917.remi@remlab.net> <1278966539.8257.15.camel@deep-thought> Message-ID: On Mon, 12 Jul 2010 22:28:59 +0200, Benjamin Drung wrote: > I doubt that we can pull a new upstream version into a stable Ubuntu > release (e.g. vlc 1.1.0 in Ubuntu 10.04), because the new version breaks > the ABI of the older version and therefore break applications that uses > libvlc. Not true for 9.10 which ships 1.0.2, while 1.0.6 has no known security issues. > The normal way for stable releases is to cherry-pick security > fixes and apply them to the older version. How much manpower do you have > to support this model? English is ambiguous here. *I* definitely won't spend time on 0.8 or 0.9, and I very much doubt anyone else will. As for 1.0, it all depends how hard specific fixes will be, which is undecidable until shit happens. > The process would be: > 1. Open a bug report in Launchpad stating the security bug > 2. Produce a patch that fixes the bug in the latest trunk version > 3. Backport the patch against trunk to the older versions of vlc > 4. Release the security update Someone needs to dig the security patches out of 1.0-bugfix from 1.0.2 to 1.0.6. That's not really difficult; it's just time consuming. The VideoLAN project is already doing that for the latest 1.0.x. We are not going to do that for all of the 1.0.x revisions individually. If distribution FOOBAR decides to fork the maintenance process, then that's FOOBAR's problem. And when FOOBAR does not stand up to its own process, you get pathetic results like VLC in Debian Stable. We are already sorting Ubuntu VLC bug reports, made 1.0.6 more or less only for Ubuntu LTS, report security issues in your bug tracker. Where does this stop? We're _not_ paid. > Looking at the Ubuntu bugs, there is only one security bug reported: > https://bugs.launchpad.net/ubuntu/+source/vlc/+bug/295464 -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From kim.geunhyung at gmail.com Tue Jul 13 09:06:55 2010 From: kim.geunhyung at gmail.com (Geunhyung Kim) Date: Tue, 13 Jul 2010 16:06:55 +0900 Subject: [vlc-devel] HTTP live streaming player Message-ID: Hello, Does the VLC support decoding of HTTP live streaming data that is specified by Apple ? Regards Geunhyung From jmenon86 at gmail.com Tue Jul 13 10:00:34 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Tue, 13 Jul 2010 13:30:34 +0530 Subject: [vlc-devel] [PATCH 1/2] MKV : Add support for parsing Matroska Tag elements and exporting them as metdata entries. Message-ID: <1279008035-29032-1-git-send-email-jmenon86@gmail.com> --- modules/demux/mkv/matroska_segment.cpp | 70 ++++++++++++++++++++++++++++++- modules/demux/mkv/matroska_segment.hpp | 1 + 2 files changed, 68 insertions(+), 3 deletions(-) diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp index aed2cfa..7ce4e29 100644 --- a/modules/demux/mkv/matroska_segment.cpp +++ b/modules/demux/mkv/matroska_segment.cpp @@ -205,6 +205,67 @@ void matroska_segment_c::LoadCues( KaxCues *cues ) } \ ep->Up(); } while( 0 ) +static const struct { + vlc_meta_type_t type; + const char *key; +} metadata_map[] = { {vlc_meta_Title, "TITLE"}, + {vlc_meta_Artist, "ARTIST"}, + {vlc_meta_Genre, "GENRE"}, + {vlc_meta_Copyright, "COPYRIGHT"}, + {vlc_meta_Description, "DESCRIPTION"}, + {vlc_meta_Publisher, "PUBLISHER"}, + {vlc_meta_URL, "URL"}, + {vlc_meta_Title, NULL}, +}; + +void matroska_segment_c::ParseSimpleTags( KaxTagSimple *tag ) +{ + EbmlElement *el; + EbmlParser *ep = new EbmlParser( &es, tag, &sys.demuxer ); + char *k = NULL, *v = NULL; + + if( !sys.meta ) + sys.meta = vlc_meta_New(); + + msg_Dbg( &sys.demuxer, "| + Simple Tag "); + while( ( el = ep->Get() ) != NULL ) + { + if( MKV_IS_ID( el, KaxTagName ) ) + { + KaxTagName &key = *(KaxTagName*)el; + key.ReadData( es.I_O(), SCOPE_ALL_DATA ); + k = strdup( UTFstring( key ).GetUTF8().c_str() ); + } + if( MKV_IS_ID( el, KaxTagString ) ) + { + KaxTagString &value = *(KaxTagString*)el; + value.ReadData( es.I_O(), SCOPE_ALL_DATA ); + v = strdup( UTFstring( value ).GetUTF8().c_str() ); + } + } + delete ep; + + if( !k || !v ) + { + msg_Warn( &sys.demuxer, "Invalid MKV SimpleTag found."); + return; + } + + for( int i = 0; metadata_map[i].key; i++ ) + { + if( !strcmp( k, metadata_map[i].key ) ) + { + vlc_meta_Set( sys.meta, metadata_map[i].type, v ); + goto done; + } + } + vlc_meta_AddExtra( sys.meta, k, v ); +done: + free( k ); + free( v ); + return; +} + void matroska_segment_c::LoadTags( KaxTags *tags ) { /* Master elements */ @@ -257,6 +318,8 @@ void matroska_segment_c::LoadTags( KaxTags *tags ) { msg_Dbg( &sys.demuxer, "| + Multi Title" ); } + else if( MKV_IS_ID( el, KaxTagSimple ) ) + ParseSimpleTags( static_cast( el ) ); else { msg_Dbg( &sys.demuxer, "| + LoadTag Unknown (%s)", typeid( *el ).name() ); @@ -280,6 +343,7 @@ void matroska_segment_c::LoadTags( KaxTags *tags ) *****************************************************************************/ void matroska_segment_c::InformationCreate( ) { +#if 0 sys.meta = vlc_meta_New(); if( psz_title ) @@ -290,7 +354,7 @@ void matroska_segment_c::InformationCreate( ) { vlc_meta_SetDate( sys.meta, psz_date_utc ); } -#if 0 + if( psz_segment_filename ) { fprintf( stderr, "***** WARNING: Unhandled meta - Use custom\n" ); @@ -558,11 +622,11 @@ bool matroska_segment_c::LoadSeekHeadItem( const EbmlCallbacks & ClassInfos, int ParseChapters( static_cast( el ) ); i_chapters_position = i_element_position; } - else if( MKV_IS_ID( el, KaxTag ) ) // FIXME + else if( MKV_IS_ID( el, KaxTags ) ) { msg_Dbg( &sys.demuxer, "| + Tags" ); if( i_tags_position < 0 ) - ;//LoadTags( static_cast( el ) ); + LoadTags( static_cast( el ) ); i_tags_position = i_element_position; } else diff --git a/modules/demux/mkv/matroska_segment.hpp b/modules/demux/mkv/matroska_segment.hpp index 3ac9b60..944e64b 100644 --- a/modules/demux/mkv/matroska_segment.hpp +++ b/modules/demux/mkv/matroska_segment.hpp @@ -146,6 +146,7 @@ public: void IndexAppendCluster( KaxCluster *cluster ); void LoadCues( KaxCues *cues ); void LoadTags( KaxTags *tags ); + void ParseSimpleTags( KaxTagSimple *tag ); void InformationCreate( ); void Seek( mtime_t i_date, mtime_t i_time_offset, int64_t i_global_position ); int BlockGet( KaxBlock * &, KaxSimpleBlock * &, bool *, bool *, int64_t *); -- 1.7.1.1 From jmenon86 at gmail.com Tue Jul 13 10:00:35 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Tue, 13 Jul 2010 13:30:35 +0530 Subject: [vlc-devel] [PATCH 2/2] MKV : Fix some memory leaks in the EBML parser. In-Reply-To: <1279008035-29032-1-git-send-email-jmenon86@gmail.com> References: <1279008035-29032-1-git-send-email-jmenon86@gmail.com> Message-ID: <1279008035-29032-2-git-send-email-jmenon86@gmail.com> --- modules/demux/mkv/Ebml_parser.cpp | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/modules/demux/mkv/Ebml_parser.cpp b/modules/demux/mkv/Ebml_parser.cpp index 355f9e5..2858736 100644 --- a/modules/demux/mkv/Ebml_parser.cpp +++ b/modules/demux/mkv/Ebml_parser.cpp @@ -47,7 +47,12 @@ EbmlParser::EbmlParser( EbmlStream *es, EbmlElement *el_start, demux_t *p_demux EbmlParser::~EbmlParser( void ) { - for( int i = 1; i < mi_level; i++ ) + if( !mi_level && m_el[1] ) + { + delete m_el[1]; + return; + } + for( int i = 1; i <= mi_level; i++ ) { if( !mb_keep ) { -- 1.7.1.1 From pdherbemont at free.fr Tue Jul 13 10:04:34 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Tue, 13 Jul 2010 10:04:34 +0200 Subject: [vlc-devel] libvlc_MediaMetaChanged event being sent too soon In-Reply-To: <4C3B7064.5080402@hcn-inc.com> References: <4C37AE0C.1030004@hcn-inc.com> <4C3B7064.5080402@hcn-inc.com> Message-ID: On Mon, Jul 12, 2010 at 9:43 PM, Jason Butler wrote: > I tried examining the meta_type field in libvlc_event_t->media_meta_changed > but it was almost always libvlc_meta_ArtworkURL and I never got a > libvlc_meta_Artist, ibvlc_meta_Title, or libvlc_meta_Album. Weird. Do you have a test app, and a sample test file? Pierre From remi at remlab.net Tue Jul 13 10:43:04 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 13 Jul 2010 10:43:04 +0200 Subject: [vlc-devel] HTTP live streaming player In-Reply-To: References: Message-ID: <6bbf7c32e18e3fcccfe3dda6d0181997@chewa.net> On Tue, 13 Jul 2010 16:06:55 +0900, Geunhyung Kim wrote: > Does the VLC support decoding of HTTP live streaming data that is > specified by Apple ? When I said NO, I meant NO. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From jb at videolan.org Tue Jul 13 13:12:32 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 13 Jul 2010 13:12:32 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <1278966539.8257.15.camel@deep-thought> References: <201007122154.54917.remi@remlab.net> <1278966539.8257.15.camel@deep-thought> Message-ID: <20100713111232.GA9518@videolan.org> On Mon, Jul 12, 2010 at 10:28:59PM +0200, Benjamin Drung wrote : > to support this model? The process would be: > > 1. Open a bug report in Launchpad stating the security bug > 2. Produce a patch that fixes the bug in the latest trunk version > 3. Backport the patch against trunk to the older versions of vlc > 4. Release the security update Are you implying that we should do it or ubuntu devs should do it? I am not sure I understand... -- Jean-Baptiste Kempf http://www.jbkempf.com/ From dmitrij.ledkov at ubuntu.com Tue Jul 13 00:22:11 2010 From: dmitrij.ledkov at ubuntu.com (Dmitrijs Ledkovs) Date: Mon, 12 Jul 2010 23:22:11 +0100 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <201007122154.54917.remi@remlab.net> References: <201007122154.54917.remi@remlab.net> Message-ID: 2010/7/12 R?mi Denis-Courmont : > ? ? ? ?Hello, > > I think it is fair to say that there is increasing frustration from users and > developers w.r.t. the state of VLC in Debian & Ubuntu. I am left wondering > what is the best way forward... > > 1) Debian stable > > Some time ago, one of the Debian Security (testing or stable, I honestly don't > remember) complained that the VideoLAN project security update process was > less than optimal. Guess what? It's been almost 3 months since we released VLC > 1.0.6, and still Debian Stable ships the same security holes. If we are doing > less than optimal, Debian Stable is doing outright PATHETIC. > Ping maintainers and debian security team. Indicate the security issue, the patch and or new tarball. Depending on severity it can either go to -security pocket or later as an update. To effectivly track the issue either a CVE number or DSA report should be filled. > 2) Ubuntu current version > > Sooner or later, someone will find a security hole in VLC 1.0.6. If not for > security, there are known critical bugs already. For a start, the Mozilla > plugin just crashes. Always. > Similar workflow. File a bug in launchpad against vlc package, mark it as security issue provide as much detail as you can. Ubuntu/Canonical security teams will review it and push to -security or -proposed updates -> -updates. > If I understand right, Reinhard considered making a PPA, whereas Benjamin > suggested VideoLAN make a PPA. Either way, I am concerned that this will cause > a flood of untraceable Apport crash reports. How are we supposed to fix that? > Currently apport crash reports can not be filed against packages from ppa. Apport will not do them =( So there won't be any apport crash reports from ppa. It doesn't matter who creates the ppa as long as it is maintained continiously users will pick it up and it will show up on the launchpad.net/ubuntu/+source/vlc page when clicking search for other versions. > 3) Ubuntu LTS > > At this point in the spacetime continuum, LTS is the current version. But what > should be done in a few months when it's not the case anymore? > Security issues should be filed as described before. To include of the bat a new version of vlc with features make sure new vlc is in newer release and then propose a backport as described on https://help.ubuntu.com/community/UbuntuBackports Then newer version of vlc will be included in e.g. Lucid. Alternativly you can provide a ppa for all releases you seem fit. In the near future there are plans to allow post-release updates via "blessed" ppa's via Software Centre..... but these are vague plans right now =) wait until 10.10 or 11.04 to see how that will turn out. PPA is the quickest of the two delivery methods. > 4) Ubuntu older versions > > Ubuntu happily ships VLC with known security holes. WTH? > In the same security bug add affects multiple ubuntu series. You can see the currently supported releases here https://wiki.ubuntu.com/Releases and you should target the security bug against all currently supported releases on the desktop. All of these still qualify for security updates. > -- > R?mi Denis-Courmont > http://www.remlab.net/ > http://fi.linkedin.com/in/remidenis > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > _______________________________________________ > pkg-multimedia-maintainers mailing list > pkg-multimedia-maintainers at lists.alioth.debian.org > http://lists.alioth.debian.org/mailman/listinfo/pkg-multimedia-maintainers > From siretart at tauware.de Tue Jul 13 00:59:22 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Mon, 12 Jul 2010 18:59:22 -0400 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <201007122154.54917.remi@remlab.net> (=?utf-8?Q?=22R=C3=A9mi?= Denis-Courmont"'s message of "Mon, 12 Jul 2010 21:54:53 +0300") References: <201007122154.54917.remi@remlab.net> Message-ID: <874og4s3w5.fsf@faui44a.informatik.uni-erlangen.de> On Mon, Jul 12, 2010 at 14:54:53 (EDT), R?mi Denis-Courmont wrote: > Hello, > > I think it is fair to say that there is increasing frustration from users and > developers w.r.t. the state of VLC in Debian & Ubuntu. I am left wondering > what is the best way forward... Thanks for bringing this up. This has also bugged me for quite some time. > 1) Debian stable > > Some time ago, one of the Debian Security (testing or stable, I honestly don't > remember) complained that the VideoLAN project security update process was > less than optimal. Guess what? It's been almost 3 months since we released VLC > 1.0.6, and still Debian Stable ships the same security holes. If we are doing > less than optimal, Debian Stable is doing outright PATHETIC. Well, small focused bugfixes would be ok for a security upload, and I guess even for a point release, but something like updating from 0.8.6 to the 1.1 series would cause an unacceptable risk for regressions. What we could do however is to ask the release team what they prefer: either (of possible, lenny's ffmpeg is pretty dated) updating vlc in stable to 1.0 or 1.1, or have it removed from stable. I guess the release team has done that in a couple of cases so far. > 2) Ubuntu current version > > Sooner or later, someone will find a security hole in VLC 1.0.6. If not for > security, there are known critical bugs already. For a start, the Mozilla > plugin just crashes. Always. > > If I understand right, Reinhard considered making a PPA, whereas Benjamin > suggested VideoLAN make a PPA. Either way, I am concerned that this will cause > a flood of untraceable Apport crash reports. How are we supposed to fix that? Is there some 1.0 release branch that has these security fixes in? In that case, we could (and should!) prepare uploads to the security pockets ASAP! > 3) Ubuntu LTS > > At this point in the spacetime continuum, LTS is the current version. But what > should be done in a few months when it's not the case anymore? Apply focused bug and security patches on a best efford basis. > 4) Ubuntu older versions > > Ubuntu happily ships VLC with known security holes. WTH? I think the answer is the same here: If there was some focused release branch, there is no problem in uploading to the either -security or -proposed. If not, we can always provide some PPA and point people at it. -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From siretart at tauware.de Tue Jul 13 14:40:09 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Tue, 13 Jul 2010 08:40:09 -0400 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <8f3d1bdc2794bb3513bbc775bf0e5c28@chewa.net> (=?utf-8?Q?=22R?= =?utf-8?Q?=C3=A9mi?= Denis-Courmont"'s message of "Tue, 13 Jul 2010 08:49:15 +0200") References: <8f3d1bdc2794bb3513bbc775bf0e5c28@chewa.net> Message-ID: <87zkxvr1w6.fsf@faui44a.informatik.uni-erlangen.de> On Tue, Jul 13, 2010 at 02:49:15 (EDT), R?mi Denis-Courmont wrote: > Hello, > > On Mon, 12 Jul 2010 22:28:59 +0200, Benjamin Drung > wrote: >> I doubt that we can pull a new upstream version into a stable Ubuntu >> release (e.g. vlc 1.1.0 in Ubuntu 10.04), because the new version breaks >> the ABI of the older version and therefore break applications that uses >> libvlc. > > Not true for 9.10 which ships 1.0.2, while 1.0.6 has no known security > issues. So let's check: | vlc | 0.8.6.release.e+x264svn20071224+faad2.6.1-0ubuntu3.3 | hardy-updates/universe | source | vlc | 0.9.9a-2ubuntu1 | jaunty/multiverse | source, amd64, i386 | vlc | 1.0.2-1ubuntu2 | karmic/universe | source, amd64, i386 | vlc | 1.0.2-1ubuntu2.1 | karmic-updates/universe | source, amd64, i386 | vlc | 1.0.6-1ubuntu1 | lucid/universe | source, amd64, i386 | vlc | 1.0.6-1ubuntu1.1 | lucid-updates/universe | source, amd64, i386 | vlc | 1.1.0-2ubuntu1 | maverick/universe | source, amd64, i386 so in hardy we have basically the same situation as in debian/stable. We could argue that it is unsupportable and try to get it removed. As for karmic, I guess we could and probably should work on preparing an upload to either karmic-updates or karmic-security. But this would involve following a rather strict process. R?mi, is there a list of bugs fixed between 1.0.2 - 1.0.6? the SRU team will most likely require some kind of risk analysis and some proof that it's really worth. I of course believe you because I know vlc and what incredible work you are doing, but having something more solid like in CVE references would be really beneficial here. Moreover, it seems that there has been at least one update to vlc in karmic-updates. > >> The normal way for stable releases is to cherry-pick security >> fixes and apply them to the older version. How much manpower do you have >> to support this model? > > English is ambiguous here. *I* definitely won't spend time on 0.8 or 0.9, > and I very much doubt anyone else will. > > As for 1.0, it all depends how hard specific fixes will be, which is > undecidable until shit happens. > >> The process would be: > >> 1. Open a bug report in Launchpad stating the security bug >> 2. Produce a patch that fixes the bug in the latest trunk version >> 3. Backport the patch against trunk to the older versions of vlc >> 4. Release the security update > > Someone needs to dig the security patches out of 1.0-bugfix from 1.0.2 to > 1.0.6. That's not really difficult; it's just time consuming. The VideoLAN > project is already doing that for the latest 1.0.x. We are not going to do > that for all of the 1.0.x revisions individually. If distribution FOOBAR > decides to fork the maintenance process, then that's FOOBAR's problem. And > when FOOBAR does not stand up to its own process, you get pathetic results > like VLC in Debian Stable. I tend to agree here. This answers my question from above pretty much. So if I understand you correctly, there is a 1.0-bugfix branch, from which we can try to cherry-pick individial changes to existing releases. I guess it is this repository: http://git.videolan.org/?p=vlc/vlc-1.0.git;a=summary correct? Hm, I see that the amount of work you're doing here is incredible. I really think we should get this packaged. > We are already sorting Ubuntu VLC bug reports, made 1.0.6 more or less only > for Ubuntu LTS, report security issues in your bug tracker. Where does this > stop? We're _not_ paid. > >> Looking at the Ubuntu bugs, there is only one security bug reported: >> https://bugs.launchpad.net/ubuntu/+source/vlc/+bug/295464 and AFAIUI, it doesn't affect the versions of vlc we're talking right now. So from a ubuntu bugtracker POV, there are no known security issues, and as the commit logs don't reference CVE or similar security trackers either, I guess we need to be somewhat more convincing here. -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 _______________________________________________ pkg-multimedia-maintainers mailing list pkg-multimedia-maintainers at lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/pkg-multimedia-maintainers From remi at remlab.net Tue Jul 13 16:01:13 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 13 Jul 2010 16:01:13 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: References: <201007122154.54917.remi@remlab.net> Message-ID: <3531d4581a3c6378e4d5777c25cf826c@chewa.net> On Mon, 12 Jul 2010 23:22:11 +0100, Dmitrijs Ledkovs wrote: > 2010/7/12 R?mi Denis-Courmont : >> ? ? ? ?Hello, >> >> I think it is fair to say that there is increasing frustration from >> users and developers w.r.t. the state of VLC in Debian & Ubuntu. I am >> left wondering what is the best way forward... >> >> 1) Debian stable >> >> Some time ago, one of the Debian Security (testing or stable, I honestly > don't >> remember) complained that the VideoLAN project security update process > was >> less than optimal. Guess what? It's been almost 3 months since we > released VLC >> 1.0.6, and still Debian Stable ships the same security holes. If we are > doing >> less than optimal, Debian Stable is doing outright PATHETIC. >> > > Ping maintainers and debian security team. Indicate the security > issue, the patch and or new tarball. It's not like it's not known: http://security-tracker.debian.org/tracker/status/release/stable It's more like nobody cares. > Depending on severity it can either go to -security pocket or later as > an update. > To effectivly track the issue either a CVE number or DSA report should > be filled. >> 2) Ubuntu current version >> >> Sooner or later, someone will find a security hole in VLC 1.0.6. If not > for >> security, there are known critical bugs already. For a start, the > Mozilla >> plugin just crashes. Always. >> > > Similar workflow. File a bug in launchpad against vlc package, mark it > as security issue provide as much detail as you can. Ubuntu/Canonical > security teams will review it and push to -security or -proposed > updates -> -updates. That solution straight from the text book does simply not work. I don't buy the Debian/Ubuntu PR, at least not anymore. >> 4) Ubuntu older versions >> >> Ubuntu happily ships VLC with known security holes. WTH? >> > > In the same security bug add affects multiple ubuntu series. You can > see the currently supported releases here > https://wiki.ubuntu.com/Releases and you should target the security > bug against all currently supported releases on the desktop. All of > these still qualify for security updates. Some of those bugs have been open just for many months. Nobody cares. Look at this old example: https://bugs.launchpad.net/ubuntu/+source/vlc/+bug/295464 -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Tue Jul 13 16:13:22 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 13 Jul 2010 16:13:22 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <87zkxvr1w6.fsf@faui44a.informatik.uni-erlangen.de> References: <8f3d1bdc2794bb3513bbc775bf0e5c28@chewa.net> <87zkxvr1w6.fsf@faui44a.informatik.uni-erlangen.de> Message-ID: <9dee015f56af299a9ed606cd005dcff4@chewa.net> On Tue, 13 Jul 2010 08:40:09 -0400, Reinhard Tartler wrote: > So let's check: > > | vlc | 0.8.6.release.e+x264svn20071224+faad2.6.1-0ubuntu3.3 | > hardy-updates/universe | source > | vlc | 0.9.9a-2ubuntu1 | jaunty/multiverse | source, amd64, i386 > | vlc | 1.0.2-1ubuntu2 | karmic/universe | source, amd64, i386 > | vlc | 1.0.2-1ubuntu2.1 | karmic-updates/universe | source, amd64, i386 > | vlc | 1.0.6-1ubuntu1 | lucid/universe | source, amd64, i386 > | vlc | 1.0.6-1ubuntu1.1 | lucid-updates/universe | source, amd64, i386 > | vlc | 1.1.0-2ubuntu1 | maverick/universe | source, amd64, i386 > > so in hardy we have basically the same situation as in > debian/stable. We could argue that it is unsupportable and try to get it > removed. > > As for karmic, I guess we could and probably should work on preparing an > upload to either karmic-updates or karmic-security. But this would > involve following a rather strict process. R?mi, is there a list of bugs > fixed between 1.0.2 - 1.0.6? Generally, git gives you that. In -bugfix branches we normally don't do architectural changes or risky cleanups. With that in mind, it should be easy to make out bug fixes, from administrative updates and new features. Security-wise: http://www.videolan.org/security/sa1003.html >>> The process would be: >> >>> 1. Open a bug report in Launchpad stating the security bug >>> 2. Produce a patch that fixes the bug in the latest trunk version >>> 3. Backport the patch against trunk to the older versions of vlc >>> 4. Release the security update >> >> Someone needs to dig the security patches out of 1.0-bugfix from 1.0.2 >> to 1.0.6. That's not really difficult; it's just time consuming. The >> VideoLAN project is already doing that for the latest 1.0.x. We are >> not going to do that for all of the 1.0.x revisions individually. If >> distribution FOOBAR decides to fork the maintenance process, then >> that's FOOBAR's problem. And when FOOBAR does not stand up to its own >> process, you get pathetic results like VLC in Debian Stable. > I tend to agree here. This answers my question from above pretty much. > So if I understand you correctly, there is a 1.0-bugfix branch, from > which we can try to cherry-pick individial changes to existing > releases. I guess it is this repository: > > http://git.videolan.org/?p=vlc/vlc-1.0.git;a=summary > > correct? Yes. > Hm, I see that the amount of work you're doing here is incredible. I > really think we should get this packaged. > >> We are already sorting Ubuntu VLC bug reports, made 1.0.6 more or less >> only for Ubuntu LTS, report security issues in your bug tracker. Where >> does this stop? We're _not_ paid. >> >>> Looking at the Ubuntu bugs, there is only one security bug reported: >>> https://bugs.launchpad.net/ubuntu/+source/vlc/+bug/295464 > > and AFAIUI, it doesn't affect the versions of vlc we're talking right > now. So from a ubuntu bugtracker POV, there are no known security > issues, and as the commit logs don't reference CVE or similar security > trackers either, I guess we need to be somewhat more convincing here. Safe for a major speed up in CVE numbers assignment, this is unlikely to improve. Besides, I fear I sense a chick-and-egg problem here. I mean, MITRE won't give me numbers just for my smile, will they? -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From sean at startide.org Tue Jul 13 16:15:24 2010 From: sean at startide.org (sean) Date: Tue, 13 Jul 2010 15:15:24 +0100 Subject: [vlc-devel] vout.m Message-ID: <4C3C74FC.7040304@startide.org> Hi trying to get the plugin to compile on osx 10.6.3 fixed URI problem in ~/vlc/modules/gui/macosx/intf.m ~/vlc/modules/gui/macosx/open.m ~/vlc/modules/gui/macosx/playlist.m added the NULL argument to make_URI eg make_URI([[o_values objectAtIndex:i] UTF8String],NULL); but I'm stuck with; (make errors) make all-am OBJC libmacosx_plugin_la-vout.lo vout.m: In function ?-[VLCVoutView voutSizeForFactor:]?: vout.m:359: error: ?vout_thread_t? has no member named ?render? etc and then vout.m:380: error: ?vout_thread_t? has no member named ?b_fullscreen? vout.m:410: error: ?vout_thread_t? has no member named ?i_changes? vout.m:410: error: ?VOUT_SIZE_CHANGE? undeclared (first use in this function) and more in this theme from the source code; line 359 if( p_vout->render.height * p_vout->render.i_aspect > p_vout->render.i_width * VOUT_ASPECT_FACTOR ) looks like something is not defined, could somone point me in the right direction? I'm lost! Thank Sean From remi at remlab.net Tue Jul 13 16:17:30 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 13 Jul 2010 16:17:30 +0200 Subject: [vlc-devel] vout.m In-Reply-To: <4C3C74FC.7040304@startide.org> References: <4C3C74FC.7040304@startide.org> Message-ID: On Tue, 13 Jul 2010 15:15:24 +0100, sean wrote: > if( p_vout->render.height * p_vout->render.i_aspect > > p_vout->render.i_width * VOUT_ASPECT_FACTOR ) > > looks like something is not defined, could somone point me in the right > direction? I'm lost! vout.m uses the old now removed video output API. It needs to be replaced with something else, or ported to the new API. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From sean at startide.org Tue Jul 13 18:19:39 2010 From: sean at startide.org (sean) Date: Tue, 13 Jul 2010 17:19:39 +0100 Subject: [vlc-devel] vout.m In-Reply-To: References: <4C3C74FC.7040304@startide.org> Message-ID: <4C3C921B.2070809@startide.org> On 13/07/2010 3:17PM, R?mi Denis-Courmont wrote: > vout.m uses the old now removed video output API. It needs to be replaced > with something else, or ported to the new API Thanks I'm not sure I've got the skills (a couple of objc projects, lots of c but no video codecs etc) but I'll see if I can get anywhere. is the api that I'd need to port to in; src/video_output Sean From pdherbemont at free.fr Tue Jul 13 18:36:02 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Tue, 13 Jul 2010 18:36:02 +0200 Subject: [vlc-devel] vout.m In-Reply-To: <4C3C921B.2070809@startide.org> References: <4C3C74FC.7040304@startide.org> <4C3C921B.2070809@startide.org> Message-ID: On Tue, Jul 13, 2010 at 6:19 PM, sean wrote: > On 13/07/2010 3:17PM, R?mi Denis-Courmont wrote: >> >> vout.m uses the old now removed video output API. It needs to be replaced >> with something else, or ported to the new API > > Thanks > I'm not sure I've got the skills (a couple of objc projects, lots of c but > no video codecs etc) > but I'll see if I can get anywhere. > > is the api that I'd need to port to in; > src/video_output macosx.m in video_output is what you want. You need to use this one. Pierre. From sean at startide.org Tue Jul 13 18:43:51 2010 From: sean at startide.org (sean) Date: Tue, 13 Jul 2010 17:43:51 +0100 Subject: [vlc-devel] vout.m In-Reply-To: References: <4C3C74FC.7040304@startide.org> <4C3C921B.2070809@startide.org> Message-ID: <4C3C97C7.8020700@startide.org> Thanks From xant at xant.net Tue Jul 13 18:43:56 2010 From: xant at xant.net (Andrea Guzzo) Date: Tue, 13 Jul 2010 18:43:56 +0200 Subject: [vlc-devel] vout.m In-Reply-To: <4C3C921B.2070809@startide.org> References: <4C3C74FC.7040304@startide.org> <4C3C921B.2070809@startide.org> Message-ID: I think that modules/video_output/macosx.m is already a working implementation using the new API . But as far as I saw, the code in modules/gui/macosx/ must be (perhaps heavily) changed to rely on that new implementation. I tried putting some effort in porting that but not enough to obtain some decent results. I hope this will save you from wasting time writing something which has been already (or at least partially) done in modules/video_output/macosx.m . Check yourself since I could be wrong, but I think it should be a good starting point Cheers, Andrea. On Jul 13, 2010, at 6:19 PM, sean wrote: > On 13/07/2010 3:17PM, R?mi Denis-Courmont wrote: >> vout.m uses the old now removed video output API. It needs to be replaced >> with something else, or ported to the new API > Thanks > I'm not sure I've got the skills (a couple of objc projects, lots of c but no video codecs etc) > but I'll see if I can get anywhere. > > is the api that I'd need to port to in; > src/video_output > > Sean > > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel From jb at videolan.org Tue Jul 13 18:46:43 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 13 Jul 2010 18:46:43 +0200 Subject: [vlc-devel] vout.m In-Reply-To: References: <4C3C74FC.7040304@startide.org> <4C3C921B.2070809@startide.org> Message-ID: <20100713164643.GA10447@videolan.org> On Tue, Jul 13, 2010 at 06:43:56PM +0200, Andrea Guzzo wrote : > I think that modules/video_output/macosx.m is already a working implementation using the new API . > But as far as I saw, the code in modules/gui/macosx/ must be (perhaps heavily) changed to rely on that new implementation. This is exact. This is the way we should do it, IMVHO. Moreover doing this correctly would allow using this video output in Qt4 interface. > I tried putting some effort in porting that but not enough to obtain some decent results. This is difficult, indeed. Juho had some code working, in the right direction that wshould be merged, IIRC. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From naresh at tlen.pl Tue Jul 13 14:05:07 2010 From: naresh at tlen.pl (Kamil Klimek) Date: Tue, 13 Jul 2010 14:05:07 +0200 Subject: [vlc-devel] Seek support in imem access module Message-ID: A non-text attachment was scrubbed... Name: 0002-seek-support-in-imem-access-module.patch Type: application/octet-stream Size: 46176 bytes Desc: not available URL: From siretart at tauware.de Tue Jul 13 15:32:41 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Tue, 13 Jul 2010 09:32:41 -0400 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <201007122154.54917.remi@remlab.net> References: <201007122154.54917.remi@remlab.net> Message-ID: <874og4s3w5.fsf@faui44a.informatik.uni-erlangen.de> [sorry for the resent, it seems the CC line was wrong in the previous mail] On Mon, Jul 12, 2010 at 14:54:53 (EDT), R?mi Denis-Courmont wrote: > Hello, > > I think it is fair to say that there is increasing frustration from users and > developers w.r.t. the state of VLC in Debian & Ubuntu. I am left wondering > what is the best way forward... Thanks for bringing this up. This has also bugged me for quite some time. > 1) Debian stable > > Some time ago, one of the Debian Security (testing or stable, I honestly don't > remember) complained that the VideoLAN project security update process was > less than optimal. Guess what? It's been almost 3 months since we released VLC > 1.0.6, and still Debian Stable ships the same security holes. If we are doing > less than optimal, Debian Stable is doing outright PATHETIC. Well, small focused bugfixes would be ok for a security upload, and I guess even for a point release, but something like updating from 0.8.6 to the 1.1 series would cause an unacceptable risk for regressions. What we could do however is to ask the release team what they prefer: either (of possible, lenny's ffmpeg is pretty dated) updating vlc in stable to 1.0 or 1.1, or have it removed from stable. I guess the release team has done that in a couple of cases so far. > 2) Ubuntu current version > > Sooner or later, someone will find a security hole in VLC 1.0.6. If not for > security, there are known critical bugs already. For a start, the Mozilla > plugin just crashes. Always. > > If I understand right, Reinhard considered making a PPA, whereas Benjamin > suggested VideoLAN make a PPA. Either way, I am concerned that this will cause > a flood of untraceable Apport crash reports. How are we supposed to fix that? Is there some 1.0 release branch that has these security fixes in? In that case, we could (and should!) prepare uploads to the security pockets ASAP! > 3) Ubuntu LTS > > At this point in the spacetime continuum, LTS is the current version. But what > should be done in a few months when it's not the case anymore? Apply focused bug and security patches on a best efford basis. > 4) Ubuntu older versions > > Ubuntu happily ships VLC with known security holes. WTH? I think the answer is the same here: If there was some focused release branch, there is no problem in uploading to the either -security or -proposed. If not, we can always provide some PPA and point people at it. -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From goetz.waschk at gmail.com Tue Jul 13 23:20:54 2010 From: goetz.waschk at gmail.com (=?ISO-8859-1?Q?G=F6tz_Waschk?=) Date: Tue, 13 Jul 2010 23:20:54 +0200 Subject: [vlc-devel] [PATCH] fix build with taglib 1.6 Message-ID: Hi everyone, here is a patch against vlc git that modifies the taglib check. The header mp4coverart.h was added after taglib 1.6. taglib 1.6 and older had support for mp4, but not for the cover art, so the build would fail. Regards, G?tz -- AL I:40: Do what thou wilt shall be the whole of the Law. -------------- next part -------------- A non-text attachment was scrubbed... Name: vlc-build-with-taglib-1.6.patch Type: application/octet-stream Size: 1464 bytes Desc: not available URL: From invite+o=oidd6z at facebookmail.com Wed Jul 14 08:19:35 2010 From: invite+o=oidd6z at facebookmail.com (Arvind Gopalakrishnan) Date: Tue, 13 Jul 2010 23:19:35 -0700 Subject: [vlc-devel] Check out my photos on Facebook Message-ID: Hi, I set up a Facebook profile where I can post my pictures, videos and events and I want to add you as a friend so you can see it. First, you need to join Facebook! Once you join, you can also create your own profile. Thanks, Arvind To sign up for Facebook, follow the link below: http://www.facebook.com/p.php?i=668155123&k=4YM432VYVTXDY1LAWFZVPVVZS4K1Z4&r Already have an account? Add this email address to your account: http://www.facebook.com/n/?merge_accounts.php&e=vlc-devel%40videolan.org&c=e8db95274fb998e9dfb06cdf045e789f ======================================= vlc-devel at videolan.org was invited to join Facebook by Arvind Gopalakrishnan. If you do not wish to receive this type of email from Facebook in the future, please click on the link below to unsubscribe. http://www.facebook.com/o.php?k=d5f1fd&u=636281645&mid=2a75425G25ece32dG0G8 Facebook, Inc. P.O. Box 10005, Palo Alto, CA 94303 -------------- next part -------------- An HTML attachment was scrubbed... URL: From ileoo at videolan.org Wed Jul 14 10:16:44 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Wed, 14 Jul 2010 11:16:44 +0300 Subject: [vlc-devel] Seek support in imem access module In-Reply-To: References: Message-ID: <20100714081643.GA16410@linux-3azp> On Tue, Jul 13, 2010 at 02:05:07PM +0200, Kamil Klimek wrote: > From dee6a5cc96d19d43313c2bfddfb66402465880c7 Mon Sep 17 00:00:00 2001 > From: unknown > Date: Tue, 13 Jul 2010 13:52:35 +0200 > Subject: [PATCH 2/2] seek support in imem access module I think you did something wrong when creating this patch in general (as basicly this removes the old file and replaces it with new one). Few comments below even if I'm not really familiar with imem and those stuff. > --- > modules/access/imem.c | 1504 +++++++++++++++++++++++++------------------------ > 1 files changed, 764 insertions(+), 740 deletions(-) > + ah theres the reason, tell git not to bother with those (maybe git-config core.autocrlf true and git-config code.safecrlf true helps in here, not sure). > + tmp = var_InheritString(object, "imem-seek"); > + if (tmp) > + sys->source.seek = (imem_seek_t)(intptr_t)strtoll(tmp, NULL, 0); > + free(tmp); > +static int ControlAccess(access_t *access, int i_query, va_list args) > +{ > + imem_sys_t *sys = (imem_sys_t*)access->p_sys; > + > + switch (i_query) > + { > + case ACCESS_CAN_SEEK: > + case ACCESS_CAN_FASTSEEK: { > + bool *b = va_arg( args, bool* ); > + *b = true; > + return VLC_SUCCESS; as sys->source.seek is by default NULL, shouldn't this one check it and return true/false based on that. > +static int Seek(access_t *access, uint64_t seekTo) > +{ > + imem_sys_t * sys = (imem_sys_t*)access->p_sys; > + > + if(sys->source.seek) > + return sys->source.seek(sys->source.data, seekTo); > + > + return -1; -1 ? how about VLC_E* > + memcpy(block->p_buffer, buffer, buffer_size); > + > + es_out_Control(demux->out, ES_OUT_SET_PCR, block->i_dts); > + es_out_Send(demux->out, sys->es, block); > + } > + } > + > + sys->dts = dts; > + > + sys->source.release(sys->source.data, sys->source.cookie, > + buffer_size, buffer); > + } > + sys->deadline = VLC_TS_INVALID; > + return 1; Here VLC_SUCCESS would be better too? -- Ilkka Ollakka The years of peak mental activity are undoubtedly between the ages of four and eighteen. At four we know all the questions, at eighteen all the answers. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From naresh at tlen.pl Wed Jul 14 10:20:49 2010 From: naresh at tlen.pl (Kamil Klimek) Date: Wed, 14 Jul 2010 10:20:49 +0200 Subject: [vlc-devel] Seek support in imem access module In-Reply-To: <20100714081643.GA16410@linux-3azp> References: <20100714081643.GA16410@linux-3azp> Message-ID: <7D8387F7-4DBB-43EE-90C7-2B9A5A9C2C90@tlen.pl> Wiadomo?? napisana przez Ilkka Ollakka w dniu 2010-07-14, o godz. 10:16: > On Tue, Jul 13, 2010 at 02:05:07PM +0200, Kamil Klimek wrote: >> From dee6a5cc96d19d43313c2bfddfb66402465880c7 Mon Sep 17 00:00:00 2001 >> From: unknown >> Date: Tue, 13 Jul 2010 13:52:35 +0200 >> Subject: [PATCH 2/2] seek support in imem access module > > I think you did something wrong when creating this patch in general (as > basicly this removes the old file and replaces it with new one). Few > comments below even if I'm not really familiar with imem and those > stuff. Sry, I didn't notice that one. I'll fix that >> --- >> modules/access/imem.c | 1504 +++++++++++++++++++++++++------------------------ >> 1 files changed, 764 insertions(+), 740 deletions(-) > >> + > > ah theres the reason, tell git not > to bother with those (maybe git-config core.autocrlf true and git-config > code.safecrlf true helps in here, not sure). > >> + tmp = var_InheritString(object, "imem-seek"); >> + if (tmp) >> + sys->source.seek = (imem_seek_t)(intptr_t)strtoll(tmp, NULL, 0); >> + free(tmp); > >> +static int ControlAccess(access_t *access, int i_query, va_list args) >> +{ >> + imem_sys_t *sys = (imem_sys_t*)access->p_sys; >> + >> + switch (i_query) >> + { >> + case ACCESS_CAN_SEEK: >> + case ACCESS_CAN_FASTSEEK: { >> + bool *b = va_arg( args, bool* ); >> + *b = true; >> + return VLC_SUCCESS; > > as sys->source.seek is by default NULL, shouldn't this one check it and > return true/false based on that. Good point. I'll Fix that. >> +static int Seek(access_t *access, uint64_t seekTo) >> +{ >> + imem_sys_t * sys = (imem_sys_t*)access->p_sys; >> + >> + if(sys->source.seek) >> + return sys->source.seek(sys->source.data, seekTo); >> + >> + return -1; > > -1 ? how about VLC_E* I'm not so familiar with VLC api, I'll get on it. >> + memcpy(block->p_buffer, buffer, buffer_size); >> + >> + es_out_Control(demux->out, ES_OUT_SET_PCR, block->i_dts); >> + es_out_Send(demux->out, sys->es, block); >> + } >> + } >> + >> + sys->dts = dts; >> + >> + sys->source.release(sys->source.data, sys->source.cookie, >> + buffer_size, buffer); >> + } >> + sys->deadline = VLC_TS_INVALID; >> + return 1; > > Here VLC_SUCCESS would be better too? This one is actually not mine. But I can replace it also From ileoo at videolan.org Wed Jul 14 10:52:25 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Wed, 14 Jul 2010 11:52:25 +0300 Subject: [vlc-devel] [PATCH] move msg_Subscription filterting to core Message-ID: <20100714085225.GA17211@linux-3azp> These patches move msg_Subscription based message-level filterting to core per subscription. -- Ilkka Ollakka Some don't prefer the pursuit of happiness to the happiness of pursuit. -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-add-msg_SubscriptionVerbosity-call-so-core-filter-me.patch Type: text/x-patch Size: 3582 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Qt4-change-messages-dialog-to-use-msg_Verbosity.patch Type: text/x-patch Size: 2348 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From naresh at tlen.pl Wed Jul 14 11:37:31 2010 From: naresh at tlen.pl (Kamil Klimek) Date: Wed, 14 Jul 2010 11:37:31 +0200 Subject: [vlc-devel] Seek support in imem access module In-Reply-To: <20100714081643.GA16410@linux-3azp> References: <20100714081643.GA16410@linux-3azp> Message-ID: Here is fixed patch. I didn't touch "not my part" as I'm not sure what intention author had. -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Seek-support-in-imem-access-module.patch Type: application/octet-stream Size: 3847 bytes Desc: not available URL: From parveenjain at live.com Wed Jul 14 12:50:02 2010 From: parveenjain at live.com (Parveen Jain) Date: Wed, 14 Jul 2010 16:20:02 +0530 Subject: [vlc-devel] VLC deadlock at libvlc_media_player_stop(Even in latest release 1.1.0) Message-ID: Hi All, I had created an video application(using libVLC) which streams video files.But somehow after 3-4 hours of testing the application freezes.The application always gets deadlocked at "libvlc_media_player_stop (mp)". I read in several of the threads that issue is resolved in latest releases ,and I installed even the latest VLC_1.1.0(installed today only), but the issue is still there.Are we able to fix it on any other way ?Or someone can provide any way out for this ? Regards,Parveen Jain _________________________________________________________________ See the news as it happens on MSN videos http://video.in.msn.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Wed Jul 14 12:53:34 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 14 Jul 2010 12:53:34 +0200 Subject: [vlc-devel] vout.m In-Reply-To: <20100713164643.GA10447@videolan.org> References: <4C3C74FC.7040304@startide.org> <4C3C921B.2070809@startide.org> <20100713164643.GA10447@videolan.org> Message-ID: <0bd05079de1e3e8a7d82fbf929766230@chewa.net> On Tue, 13 Jul 2010 18:46:43 +0200, Jean-Baptiste Kempf wrote: > On Tue, Jul 13, 2010 at 06:43:56PM +0200, Andrea Guzzo wrote : >> I think that modules/video_output/macosx.m is already a working >> implementation using the new API. So I heard. >> But as far as I saw, the code in modules/gui/macosx/ must be (perhaps >> heavily) changed to rely on that new implementation. Considering the scary number of crash bug reports in VLC 1.1, the ever increasing feature gap to the Windows & Linux ports and the obvious lack of a regular maintainer, I think we should get rid of the MacOS GUI altogether and use Qt4. Oh it won't be as "cool" as a MacOS-specific interface. But at least it has a chance of working properly, keeping up with the LibVLC features, not break the build every second week, and be written in a well-known programming language (_not_ Objective C). > This is exact. > This is the way we should do it, IMVHO. > Moreover doing this correctly would allow using this video output in Qt4 > interface. Unfortunately, it's not completely straight forward. The Qt4 "window provider" would need to be extended to native MacOS widgets. In fact, as of now, LibVLC's vout_window_t structure only supports X11 (X window ID) and Win32 (HWND). -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 14 12:54:42 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 14 Jul 2010 12:54:42 +0200 Subject: [vlc-devel] =?utf-8?q?VLC_deadlock_at_libvlc=5Fmedia=5Fplayer=5Fs?= =?utf-8?q?top=28Even_in_latest_release_1=2E1=2E0=29?= In-Reply-To: References: Message-ID: <07ec4d8fa48cb425cedd3511d00b3f6b@chewa.net> On Wed, 14 Jul 2010 16:20:02 +0530, Parveen Jain wrote: > > Hi All, I had created an video application(using libVLC) which streams > video files.But somehow after 3-4 hours of testing the application > freezes.The application always gets deadlocked at "libvlc_media_player_stop > (mp)". > I read in several of the threads that issue is resolved in latest releases > ,and I installed even the latest VLC_1.1.0(installed today only), but the > issue is still there.Are we able to fix it on any other way ?Or someone can > provide any way out for this ? Can you provide some simple C code test case? Can you provide a threads stack trace of the deadlock? Is it Windows-specific? -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From fenrir at elivagar.org Wed Jul 14 12:59:23 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 14 Jul 2010 12:59:23 +0200 Subject: [vlc-devel] Seek support in imem access module In-Reply-To: References: <20100714081643.GA16410@linux-3azp> Message-ID: <20100714105923.GA22383@elivagar.org> Hi, Just a few remarks, On Wed, Jul 14, 2010 at 11:37:31AM +0200, Kamil Klimek wrote: > Here is fixed patch. I didn't touch "not my part" as I'm not sure what intention author had. > @@ -321,7 +335,7 @@ static int OpenAccess(vlc_object_t *object) > access->pf_control = ControlAccess; > access->pf_read = NULL; > access->pf_block = Block; > - access->pf_seek = NULL; > + access->pf_seek = (sys->source.seek == NULL ? NULL : Seek); sys->source.seek ? Seek : NULL Shorter and easier to read. > access->p_sys = (access_sys_t*)sys; > > // we've got size as string, becouse we have no (u)int64_t var functions > @@ -354,7 +368,7 @@ static int ControlAccess(access_t *access, int i_query, va_list args) > case ACCESS_CAN_SEEK: > case ACCESS_CAN_FASTSEEK: { > bool *b = va_arg( args, bool* ); > - *b = false; > + *b = (sys->source.seek != NULL); Useless parenthesis. > return VLC_SUCCESS; > } > case ACCESS_CAN_PAUSE: > @@ -384,6 +398,19 @@ static int ControlAccess(access_t *access, int i_query, va_list args) > } > > /** > + * It seeks through the stream using the seek() callback > + */ > +static int Seek(access_t *access, uint64_t seekTo) No camel case for variable, 'offset' for example. > +{ > + imem_sys_t * sys = (imem_sys_t*)access->p_sys; imem_sys_t *sys = access->p_sys No space and no need to cast. > + > + if(sys->source.seek) No need to test, as Seek() cannot be called if NULL. > + return sys->source.seek(sys->source.data, seekTo); > + > + return VLC_EGENERIC; > +} Regards, -- fenrir From jmenon86 at gmail.com Wed Jul 14 13:44:14 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Wed, 14 Jul 2010 17:14:14 +0530 Subject: [vlc-devel] [PATCH] MKV : Add MJPEG codec ID. Message-ID: <1279107854-17583-1-git-send-email-jmenon86@gmail.com> --- modules/demux/mkv/matroska_segment.cpp | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp index 7ce4e29..581d7f9 100644 --- a/modules/demux/mkv/matroska_segment.cpp +++ b/modules/demux/mkv/matroska_segment.cpp @@ -938,6 +938,10 @@ bool matroska_segment_c::Select( mtime_t i_start_time ) } stream_Delete( p_mp4_stream ); } + else if( !strcmp( p_tk->psz_codec, "V_MJPEG" ) ) + { + p_tk->fmt.i_codec = VLC_CODEC_MJPG; + } else if( !strcmp( p_tk->psz_codec, "A_MS/ACM" ) ) { if( p_tk->i_extra_data < (int)sizeof( WAVEFORMATEX ) ) -- 1.7.1.1 From parveenjain at live.com Wed Jul 14 13:58:16 2010 From: parveenjain at live.com (Parveen Jain) Date: Wed, 14 Jul 2010 17:28:16 +0530 Subject: [vlc-devel] VLC deadlock at libvlc_media_player_stop(Even in latest release 1.1.0) In-Reply-To: <07ec4d8fa48cb425cedd3511d00b3f6b@chewa.net> References: , <07ec4d8fa48cb425cedd3511d00b3f6b@chewa.net> Message-ID: I am running this in Linux. code for play and stop media is as: Here I am creating inst only once in this function.createLibVLCInst(){ const char * const vlc_args[] = { "-I", "dummy", /* Don't use any interface */ "--ignore-config" /* Don't use VLC's config */ };// libvlc_exception_init (&ex); inst = libvlc_new (sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args);} int PlayVideo(fileToPlay,char *ipAddr,int videoRtpPort,int videoRtcpPort,int audioRtpPort,int audioRtcpPort,void *userData) { char vlcOption[500]; memset(vlcOption,0,500); DP_LOG(TRACE_DEBUG,DP_INFO,"[videoStream::PlayVideo]->Entering"); //const char * file ="h263_alaw.mov"; libvlc_instance_t * inst = sSipVideoMgr.getInstance(); m = libvlc_media_new_path (inst, fileToPlay.c_str()); mp = libvlc_media_player_new_from_media (m); // Create an event manager for the player for handling e.g. time change events m_pEvtManager=libvlc_media_player_event_manager(mp); SetEventHandler(handleVideoEventsCB,userData); sprintf(vlcOption,"sout=#transcode{acodec=alaw,channels=1,samplerate=8000}:rtp{dst=%s,port-audio=%d,port-video=%d}",ipAddr,audioRtpPort,videoRtpPort); libvlc_media_add_option(m,vlcOption); libvlc_media_release (m); libvlc_media_player_play (mp); DP_LOG(TRACE_DEBUG,DP_INFO,"[videoStream::PlayVideo]->Exiting"); return 0; // only to prevent compiler warning} int videoStream::stopVideo(){ /* Stop playing */ libvlc_media_player_stop (mp); /* Free the media_player */ libvlc_media_player_release (mp);} Running this flow for almost 30 "H263 video" calls per second; and It freezes after every 3-4 hours of testing. Let me know if you need any more info for reproducing it. Regards,Parveen Jain > To: vlc-devel at videolan.org > Date: Wed, 14 Jul 2010 12:54:42 +0200 > From: remi at remlab.net > Subject: Re: [vlc-devel] VLC deadlock at libvlc_media_player_stop(Even in latest release 1.1.0) > > > On Wed, 14 Jul 2010 16:20:02 +0530, Parveen Jain > wrote: > > > > Hi All, I had created an video application(using libVLC) which streams > > video files.But somehow after 3-4 hours of testing the application > > freezes.The application always gets deadlocked at > "libvlc_media_player_stop > > (mp)". > > I read in several of the threads that issue is resolved in latest > releases > > ,and I installed even the latest VLC_1.1.0(installed today only), but the > > issue is still there.Are we able to fix it on any other way ?Or someone > can > > provide any way out for this ? > > Can you provide some simple C code test case? > Can you provide a threads stack trace of the deadlock? > Is it Windows-specific? > > -- > R?mi Denis-Courmont > http://www.remlab.net > http://fi.linkedin.com/in/remidenis > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel _________________________________________________________________ Bollywood This Decade http://entertainment.in.msn.com/bollywoodthisdecade/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From beauze.h at gmail.com Wed Jul 14 14:05:16 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Wed, 14 Jul 2010 14:05:16 +0200 Subject: [vlc-devel] VLC deadlock at libvlc_media_player_stop(Even in latest release 1.1.0) In-Reply-To: References: <07ec4d8fa48cb425cedd3511d00b3f6b@chewa.net> Message-ID: On Wed, Jul 14, 2010 at 1:58 PM, Parveen Jain wrote: > I am running this in Linux. > code for play and stop media is as: > Here I am creating inst only once in this function. > createLibVLCInst() > { > ?const char * const vlc_args[] = { > ?? ? ? ? ? ? ? "-I", "dummy", /* Don't use any interface */ > ?? ? ? ? ? ? ? "--ignore-config" /* Don't use VLC's config */ > ?? ? ? ? ? ? ? ?}; > // libvlc_exception_init (&ex); > inst = libvlc_new (sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args); > } > int PlayVideo(fileToPlay,char *ipAddr,int videoRtpPort,int videoRtcpPort,int > audioRtpPort,int audioRtcpPort,void *userData) > { > > char vlcOption[500]; > ?? ?memset(vlcOption,0,500); > DP_LOG(TRACE_DEBUG,DP_INFO,"[videoStream::PlayVideo]->Entering"); > ?? ?//const char * file ="h263_alaw.mov"; > libvlc_instance_t * inst = sSipVideoMgr.getInstance(); > > m = libvlc_media_new_path (inst, fileToPlay.c_str()); > mp = libvlc_media_player_new_from_media (m); > ?? ?// Create an event manager for the player for handling e.g. time change > events > ?? ?m_pEvtManager=libvlc_media_player_event_manager(mp); > SetEventHandler(handleVideoEventsCB,userData); > sprintf(vlcOption,"sout=#transcode{acodec=alaw,channels=1,samplerate=8000}:rtp{dst=%s,port-audio=%d,port-video=%d}",ipAddr,audioRtpPort,videoRtpPort); > libvlc_media_add_option(m,vlcOption); > libvlc_media_release (m); > libvlc_media_player_play (mp); > DP_LOG(TRACE_DEBUG,DP_INFO,"[videoStream::PlayVideo]->Exiting"); > ?? return 0; // only to prevent compiler warning > } > int videoStream::stopVideo() > { > /* Stop playing */ > libvlc_media_player_stop (mp); > /* Free the media_player */ > libvlc_media_player_release (mp); > } > Running this flow for almost 30 "H263 video" calls per second; and It > freezes after every 3-4 hours of testing. > Let me know if you need any more info for reproducing it. > Regards, > Parveen Jain >> To: vlc-devel at videolan.org >> Date: Wed, 14 Jul 2010 12:54:42 +0200 >> From: remi at remlab.net >> Subject: Re: [vlc-devel] VLC deadlock at libvlc_media_player_stop(Even in >> latest release 1.1.0) >> >> >> On Wed, 14 Jul 2010 16:20:02 +0530, Parveen Jain >> wrote: >> > >> > Hi All, I had created an video application(using libVLC) which streams >> > video files.But somehow after 3-4 hours of testing the application >> > freezes.The application always gets deadlocked at >> "libvlc_media_player_stop >> > (mp)". >> > I read in several of the threads that issue is resolved in latest >> releases >> > ,and I installed even the latest VLC_1.1.0(installed today only), but >> > the >> > issue is still there.Are we able to fix it on any other way ?Or someone >> can >> > provide any way out for this ? >> >> Can you provide some simple C code test case? >> Can you provide a threads stack trace of the deadlock? >> Is it Windows-specific? >> I'd say your sample lacks the call to videoStream::stopVideo() -- Hugo Beauz?e-Luyssen From naresh at tlen.pl Wed Jul 14 14:18:24 2010 From: naresh at tlen.pl (Kamil Klimek) Date: Wed, 14 Jul 2010 14:18:24 +0200 Subject: [vlc-devel] Seek support in imem access module In-Reply-To: <20100714105923.GA22383@elivagar.org> References: <20100714081643.GA16410@linux-3azp> <20100714105923.GA22383@elivagar.org> Message-ID: <6A8B6C04-E737-4381-A396-CD8537F8AE4F@tlen.pl> Wiadomo?? napisana przez Laurent Aimar w dniu 2010-07-14, o godz. 12:59: >> +{ >> + imem_sys_t * sys = (imem_sys_t*)access->p_sys; > imem_sys_t *sys = access->p_sys > No space and no need to cast. without cast compiler complains (warning) From fenrir at elivagar.org Wed Jul 14 14:24:06 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 14 Jul 2010 14:24:06 +0200 Subject: [vlc-devel] Seek support in imem access module In-Reply-To: <6A8B6C04-E737-4381-A396-CD8537F8AE4F@tlen.pl> References: <20100714081643.GA16410@linux-3azp> <20100714105923.GA22383@elivagar.org> <6A8B6C04-E737-4381-A396-CD8537F8AE4F@tlen.pl> Message-ID: <20100714122406.GA27217@elivagar.org> On Wed, Jul 14, 2010 at 02:18:24PM +0200, Kamil Klimek wrote: > > Wiadomo?? napisana przez Laurent Aimar w dniu 2010-07-14, o godz. 12:59: > > >> +{ > >> + imem_sys_t * sys = (imem_sys_t*)access->p_sys; > > imem_sys_t *sys = access->p_sys > > No space and no need to cast. > > without cast compiler complains (warning) Ah, my bad. You are right. -- fenrir From remi at remlab.net Wed Jul 14 14:21:24 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 14 Jul 2010 14:21:24 +0200 Subject: [vlc-devel] Seek support in imem access module In-Reply-To: <6A8B6C04-E737-4381-A396-CD8537F8AE4F@tlen.pl> References: <20100714081643.GA16410@linux-3azp> <20100714105923.GA22383@elivagar.org> <6A8B6C04-E737-4381-A396-CD8537F8AE4F@tlen.pl> Message-ID: <2209819bf07e48212b08a0d8432abded@chewa.net> On Wed, 14 Jul 2010 14:18:24 +0200, Kamil Klimek wrote: > > Wiadomo?? napisana przez Laurent Aimar w dniu 2010-07-14, o godz. 12:59: > >>> +{ >>> + imem_sys_t * sys = (imem_sys_t*)access->p_sys; >> imem_sys_t *sys = access->p_sys >> No space and no need to cast. > > without cast compiler complains (warning) ...because the structure is not called access_sys_t - as it probably should. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From naresh at tlen.pl Wed Jul 14 14:23:00 2010 From: naresh at tlen.pl (Kamil Klimek) Date: Wed, 14 Jul 2010 14:23:00 +0200 Subject: [vlc-devel] Seek support in imem access module In-Reply-To: <2209819bf07e48212b08a0d8432abded@chewa.net> References: <20100714081643.GA16410@linux-3azp> <20100714105923.GA22383@elivagar.org> <6A8B6C04-E737-4381-A396-CD8537F8AE4F@tlen.pl> <2209819bf07e48212b08a0d8432abded@chewa.net> Message-ID: Wiadomo?? napisana przez R?mi Denis-Courmont w dniu 2010-07-14, o godz. 14:21: > > > > On Wed, 14 Jul 2010 14:18:24 +0200, Kamil Klimek wrote: >> >> Wiadomo?? napisana przez Laurent Aimar w dniu 2010-07-14, o godz. > 12:59: >> >>>> +{ >>>> + imem_sys_t * sys = (imem_sys_t*)access->p_sys; >>> imem_sys_t *sys = access->p_sys >>> No space and no need to cast. >> >> without cast compiler complains (warning) > > ...because the structure is not called access_sys_t - as it probably > should. That's right. IMEM is using it's own structure there. BUT that's not my part of code, I've just adjusted to it From remi at remlab.net Wed Jul 14 14:23:55 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 14 Jul 2010 14:23:55 +0200 Subject: [vlc-devel] =?utf-8?q?VLC_deadlock_at_libvlc=5Fmedia=5Fplayer=5Fs?= =?utf-8?q?top=28Even_in_latest_release_1=2E1=2E0=29?= In-Reply-To: References: , <07ec4d8fa48cb425cedd3511d00b3f6b@chewa.net> Message-ID: On Wed, 14 Jul 2010 17:28:16 +0530, Parveen Jain wrote: > > I am running this in Linux. > code for play and stop media is as: > Here I am creating inst only once in this function. I can't see the SetEvents function and the video callback functions. > Running this flow for almost 30 "H263 video" calls per second; and It > freezes after every 3-4 hours of testing. Make sure you have the LibVLC debug symbols installed (or an unstripped LibVLC installation), and run your application under gdb. Once you get the deadlock, just press Ctrl+Z and "threads apply all bt" then Enter. > Let me know if you need any more info for reproducing it. We can't reproduce it with incomplete code. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From fenrir at elivagar.org Wed Jul 14 14:33:13 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 14 Jul 2010 14:33:13 +0200 Subject: [vlc-devel] Seek support in imem access module In-Reply-To: <2209819bf07e48212b08a0d8432abded@chewa.net> References: <20100714081643.GA16410@linux-3azp> <20100714105923.GA22383@elivagar.org> <6A8B6C04-E737-4381-A396-CD8537F8AE4F@tlen.pl> <2209819bf07e48212b08a0d8432abded@chewa.net> Message-ID: <20100714123313.GA27554@elivagar.org> On Wed, Jul 14, 2010 at 02:21:24PM +0200, R?mi Denis-Courmont wrote: > On Wed, 14 Jul 2010 14:18:24 +0200, Kamil Klimek wrote: > > > > Wiadomo???? napisana przez Laurent Aimar w dniu 2010-07-14, o godz. > 12:59: > > > >>> +{ > >>> + imem_sys_t * sys = (imem_sys_t*)access->p_sys; > >> imem_sys_t *sys = access->p_sys > >> No space and no need to cast. > > > > without cast compiler complains (warning) > > ...because the structure is not called access_sys_t - as it probably > should. In fact it cannot, imem is both an access_t and demux_t. So the private structure type will be wrong for at least one of the module. -- fenrir From remi at remlab.net Wed Jul 14 14:59:35 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 14 Jul 2010 14:59:35 +0200 Subject: [vlc-devel] Seek support in imem access module In-Reply-To: <20100714123313.GA27554@elivagar.org> References: <20100714081643.GA16410@linux-3azp> <20100714105923.GA22383@elivagar.org> <6A8B6C04-E737-4381-A396-CD8537F8AE4F@tlen.pl> <2209819bf07e48212b08a0d8432abded@chewa.net> <20100714123313.GA27554@elivagar.org> Message-ID: <7eed2344a6b5b844f03adde817f96dfd@chewa.net> On Wed, 14 Jul 2010 14:33:13 +0200, Laurent Aimar wrote: >> ...because the structure is not called access_sys_t - as it probably >> should. > In fact it cannot, imem is both an access_t and demux_t. So the private > structure type will be wrong for at least one of the module. I don't see that. You can make both struct just contain an imem_sys_t then. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From frank.enderle at anamica.de Wed Jul 14 16:36:11 2010 From: frank.enderle at anamica.de (Frank Enderle) Date: Wed, 14 Jul 2010 16:36:11 +0200 Subject: [vlc-devel] [PATCH] statistics for libvlc Message-ID: <4C3DCB5B.9040100@anamica.de> hi, i want to submit the following patch. comments are welcome. cheers frank ---------------------------------------------- Add libvlc_media_player_get_statistics() This patch gives libvlc users access to the statistics data which vlc internally provides. The data is well known from the MediaInfo dialogs of the gui applications and has some useful information about the playback state (e.g. played samples, read input bytes, demuxing, etc.). Additionally a new event is added to signal libvlc applications that the statistics had been updated (exposes INPUT_EVENT_STATISTICS). This function has been implemented to give applications using libvlc the ability to check if everything's going well (watchdog function) and being able to detect when the input is dying or the decoder is not working correctly. Of course it can also be used for displaying statistic data. ---------------------------------------------- -- Dipl.-Ing. (FH) Frank Enderle anamica UG (haftungsbeschr?nkt) Beinsteinerstr. 6 71334 Waiblingen Telefon: +49 151 14981091 Telefax: +49 7151 1335770 E-Mail: frank.enderle at anamica.de Internet: www.anamica.de Handelsregister: AG Stuttgart HRB 732357 Gesch?ftsf?hrer: Yvonne Holzwarth, Frank Enderle -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: libvlc_media_player_get_statistics-git.diff URL: From ileoo at videolan.org Wed Jul 14 17:45:47 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Wed, 14 Jul 2010 18:45:47 +0300 Subject: [vlc-devel] [PATCH] statistics for libvlc In-Reply-To: <4C3DCB5B.9040100@anamica.de> References: <4C3DCB5B.9040100@anamica.de> Message-ID: <20100714154547.GA3874@linux-3azp> On Wed, Jul 14, 2010 at 04:36:11PM +0200, Frank Enderle wrote: > /************************************************************************** > + * Returns the statistics > + **************************************************************************/ > +int libvlc_media_player_get_statistics( libvlc_media_player_t *p_mi, libvlc_statistics_t *p_stats ) > +{ > + assert( p_mi != NULL && p_stats != NULL ); > + > + input_thread_t * p_input_thread = libvlc_get_input_thread( p_mi ); > + if( !p_input_thread ) > + return 0; > + > + input_item_t *p_item = input_GetItem( p_input_thread ); > + if( !p_item ) > + { > + vlc_object_release( p_input_thread ); > + return 0; > + } That mutex lock and stat-copying could be replaced with just stats_ComputeInputStats( p_input_thread, p_stats ); > + vlc_mutex_lock( &p_item->p_stats->lock ); > + > + /* Input */ > + p_stats->i_read_packets = p_item->p_stats->i_read_packets; > + p_stats->i_read_bytes = p_item->p_stats->i_read_bytes; > + p_stats->f_input_bitrate = p_item->p_stats->f_input_bitrate; > + p_stats->f_average_input_bitrate = p_item->p_stats->f_average_input_bitrate; > + > + /* Demux */ > + p_stats->i_demux_read_packets = p_item->p_stats->i_demux_read_packets; > + p_stats->i_demux_read_bytes = p_item->p_stats->i_demux_read_bytes; > + p_stats->f_demux_bitrate = p_item->p_stats->f_demux_bitrate; > + p_stats->f_average_demux_bitrate = p_item->p_stats->f_average_demux_bitrate; > + p_stats->i_demux_corrupted = p_item->p_stats->i_demux_corrupted; > + p_stats->i_demux_discontinuity = p_item->p_stats->i_demux_discontinuity; > + > + /* Decoders */ > + p_stats->i_decoded_audio = p_item->p_stats->i_decoded_audio; > + p_stats->i_decoded_video = p_item->p_stats->i_decoded_video; > + > + /* Vout */ > + p_stats->i_displayed_pictures = p_item->p_stats->i_displayed_pictures; > + p_stats->i_lost_pictures = p_item->p_stats->i_lost_pictures; > + > + /* Sout */ > + p_stats->i_sent_packets = p_item->p_stats->i_sent_packets; > + p_stats->i_sent_bytes = p_item->p_stats->i_sent_bytes; > + p_stats->f_send_bitrate = p_item->p_stats->f_send_bitrate; > + > + /* Aout */ > + p_stats->i_played_abuffers = p_item->p_stats->i_played_abuffers; > + p_stats->i_lost_abuffers = p_item->p_stats->i_lost_abuffers; > + > + vlc_mutex_unlock( &p_item->p_stats->lock ); -- Ilkka Ollakka If I traveled to the end of the rainbow As Dame Fortune did intend, Murphy would be there to tell me The pot's at the other end. -- Bert Whitney -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From frank.enderle at anamica.de Wed Jul 14 18:04:41 2010 From: frank.enderle at anamica.de (Frank Enderle) Date: Wed, 14 Jul 2010 18:04:41 +0200 Subject: [vlc-devel] [PATCH] statistics for libvlc In-Reply-To: <20100714154547.GA3874@linux-3azp> References: <4C3DCB5B.9040100@anamica.de> <20100714154547.GA3874@linux-3azp> Message-ID: <4C3DE019.3000408@anamica.de> i see. i didn't know that there's such a function. do you think it would be a better idea to return the stats structure directly without copying? - i wanted to hide the mutex from the user, but maybe this is not necessary at all? it might be a better ide to provide get_statistics which does a stats_NewInputStats() followed by stats_ComputeInputStats() and return the stats structure. a second free_statistics function could be used to clean up. comments? frank.. Am 14.07.2010 17:45, schrieb Ilkka Ollakka: > On Wed, Jul 14, 2010 at 04:36:11PM +0200, Frank Enderle wrote: > >> /************************************************************************** >> + * Returns the statistics >> + **************************************************************************/ >> +int libvlc_media_player_get_statistics( libvlc_media_player_t *p_mi, libvlc_statistics_t *p_stats ) >> +{ >> + assert( p_mi != NULL && p_stats != NULL ); >> + >> + input_thread_t * p_input_thread = libvlc_get_input_thread( p_mi ); >> + if( !p_input_thread ) >> + return 0; >> + >> + input_item_t *p_item = input_GetItem( p_input_thread ); >> + if( !p_item ) >> + { >> + vlc_object_release( p_input_thread ); >> + return 0; >> + } > > That mutex lock and stat-copying could be replaced with just > stats_ComputeInputStats( p_input_thread, p_stats ); > >> + vlc_mutex_lock( &p_item->p_stats->lock ); >> + >> + /* Input */ >> + p_stats->i_read_packets = p_item->p_stats->i_read_packets; >> + p_stats->i_read_bytes = p_item->p_stats->i_read_bytes; >> + p_stats->f_input_bitrate = p_item->p_stats->f_input_bitrate; >> + p_stats->f_average_input_bitrate = p_item->p_stats->f_average_input_bitrate; >> + >> + /* Demux */ >> + p_stats->i_demux_read_packets = p_item->p_stats->i_demux_read_packets; >> + p_stats->i_demux_read_bytes = p_item->p_stats->i_demux_read_bytes; >> + p_stats->f_demux_bitrate = p_item->p_stats->f_demux_bitrate; >> + p_stats->f_average_demux_bitrate = p_item->p_stats->f_average_demux_bitrate; >> + p_stats->i_demux_corrupted = p_item->p_stats->i_demux_corrupted; >> + p_stats->i_demux_discontinuity = p_item->p_stats->i_demux_discontinuity; >> + >> + /* Decoders */ >> + p_stats->i_decoded_audio = p_item->p_stats->i_decoded_audio; >> + p_stats->i_decoded_video = p_item->p_stats->i_decoded_video; >> + >> + /* Vout */ >> + p_stats->i_displayed_pictures = p_item->p_stats->i_displayed_pictures; >> + p_stats->i_lost_pictures = p_item->p_stats->i_lost_pictures; >> + >> + /* Sout */ >> + p_stats->i_sent_packets = p_item->p_stats->i_sent_packets; >> + p_stats->i_sent_bytes = p_item->p_stats->i_sent_bytes; >> + p_stats->f_send_bitrate = p_item->p_stats->f_send_bitrate; >> + >> + /* Aout */ >> + p_stats->i_played_abuffers = p_item->p_stats->i_played_abuffers; >> + p_stats->i_lost_abuffers = p_item->p_stats->i_lost_abuffers; >> + >> + vlc_mutex_unlock( &p_item->p_stats->lock ); > > > > > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel -- Dipl.-Ing. (FH) Frank Enderle anamica UG (haftungsbeschr?nkt) Beinsteinerstr. 6 71334 Waiblingen Telefon: +49 151 14981091 Telefax: +49 7151 1335770 E-Mail: frank.enderle at anamica.de Internet: www.anamica.de Handelsregister: AG Stuttgart HRB 732357 Gesch?ftsf?hrer: Yvonne Holzwarth, Frank Enderle From fcvlcdev at free.fr Wed Jul 14 18:29:32 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Wed, 14 Jul 2010 18:29:32 +0200 Subject: [vlc-devel] [PATCH 1/3] Qt: sprefs_input fix layout Message-ID: <1279124974-30083-1-git-send-email-fcvlcdev@free.fr> --- modules/gui/qt4/ui/sprefs_input.ui | 72 +++++++++++++++++++++++++++-------- 1 files changed, 55 insertions(+), 17 deletions(-) diff --git a/modules/gui/qt4/ui/sprefs_input.ui b/modules/gui/qt4/ui/sprefs_input.ui index b391373..fbb2140 100644 --- a/modules/gui/qt4/ui/sprefs_input.ui +++ b/modules/gui/qt4/ui/sprefs_input.ui @@ -60,8 +60,14 @@ Codecs - + + + + 250 + 0 + + Skip H.264 in-loop deblocking filter @@ -70,11 +76,17 @@ - + - + + + + 250 + 0 + + x264 profile and level selection @@ -83,14 +95,14 @@ - - - - - - - + + + + 250 + 0 + + x264 preset and tuning selection @@ -99,10 +111,17 @@ - - + + + + + 0 + 0 + + + - + @@ -121,14 +140,14 @@ - + Use GPU acceleration (experimental) - + Skip frames @@ -140,6 +159,12 @@ + + + 50 + 16777215 + + Qt::AlignRight @@ -154,20 +179,33 @@ - + Use system codecs if available (better quality, but dangerous) - + Qt::Horizontal + + + + + + + + 0 + 0 + + + + -- 1.6.4.4 From fcvlcdev at free.fr Wed Jul 14 18:29:33 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Wed, 14 Jul 2010 18:29:33 +0200 Subject: [vlc-devel] [PATCH 2/3] Qt: sprefs_subtitles fix layout In-Reply-To: <1279124974-30083-1-git-send-email-fcvlcdev@free.fr> References: <1279124974-30083-1-git-send-email-fcvlcdev@free.fr> Message-ID: <1279124974-30083-2-git-send-email-fcvlcdev@free.fr> --- modules/gui/qt4/ui/sprefs_subtitles.ui | 42 ++++++++++++++++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-) diff --git a/modules/gui/qt4/ui/sprefs_subtitles.ui b/modules/gui/qt4/ui/sprefs_subtitles.ui index 8963784..f578c23 100644 --- a/modules/gui/qt4/ui/sprefs_subtitles.ui +++ b/modules/gui/qt4/ui/sprefs_subtitles.ui @@ -55,6 +55,12 @@ + + + 250 + 0 + + Preferred subtitles language @@ -75,6 +81,12 @@ + + + 250 + 0 + + Default encoding @@ -97,6 +109,12 @@ + + + 250 + 0 + + Effect @@ -110,6 +128,12 @@ + + + 250 + 0 + + Font color @@ -123,6 +147,12 @@ + + + 250 + 0 + + Font size @@ -136,6 +166,12 @@ + + + 250 + 0 + + Font @@ -162,6 +198,12 @@ + + + 250 + 0 + + Force subtitle position -- 1.6.4.4 From fcvlcdev at free.fr Wed Jul 14 18:29:34 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Wed, 14 Jul 2010 18:29:34 +0200 Subject: [vlc-devel] [PATCH 3/3] Qt: video_effects fix logo ui In-Reply-To: <1279124974-30083-1-git-send-email-fcvlcdev@free.fr> References: <1279124974-30083-1-git-send-email-fcvlcdev@free.fr> Message-ID: <1279124974-30083-3-git-send-email-fcvlcdev@free.fr> --- modules/gui/qt4/ui/video_effects.ui | 183 +++++++++++++++++++++++++++++------ 1 files changed, 153 insertions(+), 30 deletions(-) diff --git a/modules/gui/qt4/ui/video_effects.ui b/modules/gui/qt4/ui/video_effects.ui index 70d81d0..1c4375f 100644 --- a/modules/gui/qt4/ui/video_effects.ui +++ b/modules/gui/qt4/ui/video_effects.ui @@ -1100,56 +1100,131 @@ + + + 0 + 0 + + + + + 50 + 0 + + Transparency - + + + + 50 + 0 + + Left - + + + + 50 + 0 + + Top - - - - 255 - - - Qt::Horizontal - - - QSlider::TicksBothSides + + + + + 50 + 0 + - - 32 + + Logo + + + - - + + - Logo + pixels - - + + + + pixels + + + + + + + + + 255 + + + Qt::Horizontal + + + QSlider::TicksBothSides + + + 32 + + + + + + + + 8 + + + + none + + + + + + + + 8 + + + + full + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + @@ -1168,6 +1243,12 @@ + + + 50 + 0 + + Top @@ -1175,6 +1256,12 @@ + + + 50 + 0 + + Left @@ -1186,16 +1273,52 @@ - + + + + 50 + 0 + + Mask + + + + pixels + + + + + + + pixels + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 40 + + + + @@ -1254,16 +1377,16 @@ + logoEnable + logoFileText + logoYSpin + logoXSpin + logoOpacitySlider eraseEnable eraseMaskText eraseYSpin eraseXSpin - saturationSlider - gammaSlider - brightnessThresholdCheck sharpenEnable - sharpenSigmaSlider - transformEnable transformTypeCombo cropTopPx cropLeftPx @@ -1325,11 +1448,11 @@ subpictureFilterText voutFilterText adjustEnable - logoEnable - logoFileText - logoYSpin - logoXSpin - logoOpacitySlider + transformEnable + brightnessThresholdCheck + gammaSlider + sharpenSigmaSlider + saturationSlider -- 1.6.4.4 From ileoo at videolan.org Wed Jul 14 19:13:59 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Wed, 14 Jul 2010 20:13:59 +0300 Subject: [vlc-devel] [PATCH] statistics for libvlc In-Reply-To: <4C3DE019.3000408@anamica.de> References: <4C3DCB5B.9040100@anamica.de> <20100714154547.GA3874@linux-3azp> <4C3DE019.3000408@anamica.de> Message-ID: <20100714171358.GB3874@linux-3azp> On Wed, Jul 14, 2010 at 06:04:41PM +0200, Frank Enderle wrote: > i see. i didn't know that there's such a function. do you think it would > be a better idea to return the stats structure directly without copying? > - i wanted to hide the mutex from the user, but maybe this is not > necessary at all? stats_ComputeInputStats sets values to given p_stat structure. NewInputStats() resets stats to 0, so I don't think it should be used in this case. ComputeInputStats needs input_stats_t * as second parameter, but what I quickly looked you made libvlc_statistics_t same structure as input_stats_t so it should be problem. -- Ilkka Ollakka When Marriage is Outlawed, Only Outlaws will have Inlaws. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From frank.enderle at anamica.de Wed Jul 14 19:32:15 2010 From: frank.enderle at anamica.de (Frank Enderle) Date: Wed, 14 Jul 2010 19:32:15 +0200 Subject: [vlc-devel] [PATCH] statistics for libvlc In-Reply-To: <20100714171358.GB3874@linux-3azp> References: <4C3DCB5B.9040100@anamica.de> <20100714154547.GA3874@linux-3azp> <4C3DE019.3000408@anamica.de> <20100714171358.GB3874@linux-3azp> Message-ID: <4C3DF49F.5070107@anamica.de> > but what I quickly looked you made libvlc_statistics_t same structure > as input_stats_t so it should be problem. i did this because input_stats_t is not public (at least its not anywhere in /usr/include/vlc/*, so i suppose it's private). the structures are almost the same. the only thing missing in libvlc_statistics_t is the mutex since it's just a snapshot anyway. Am 14.07.2010 19:13, schrieb Ilkka Ollakka: > On Wed, Jul 14, 2010 at 06:04:41PM +0200, Frank Enderle wrote: >> i see. i didn't know that there's such a function. do you think it would >> be a better idea to return the stats structure directly without copying? >> - i wanted to hide the mutex from the user, but maybe this is not >> necessary at all? > > stats_ComputeInputStats sets values to given p_stat structure. > NewInputStats() resets stats to 0, so I don't think it should be used in > this case. ComputeInputStats needs input_stats_t * as second parameter, > > > > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel -- Dipl.-Ing. (FH) Frank Enderle anamica UG (haftungsbeschr?nkt) Beinsteinerstr. 6 71334 Waiblingen Telefon: +49 151 14981091 Telefax: +49 7151 1335770 E-Mail: frank.enderle at anamica.de Internet: www.anamica.de Handelsregister: AG Stuttgart HRB 732357 Gesch?ftsf?hrer: Yvonne Holzwarth, Frank Enderle From jmenon86 at gmail.com Wed Jul 14 19:33:32 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Wed, 14 Jul 2010 23:03:32 +0530 Subject: [vlc-devel] [PATCH 2/2] MKV : Fix some memory leaks in the EBML parser. In-Reply-To: <1279008035-29032-2-git-send-email-jmenon86@gmail.com> References: <1279008035-29032-1-git-send-email-jmenon86@gmail.com> <1279008035-29032-2-git-send-email-jmenon86@gmail.com> Message-ID: On Tue, Jul 13, 2010 at 1:30 PM, Jai Menon wrote: [...] Updated patch after some comments from ivoire. -- Jai Menon -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-MKV-Fix-some-memory-leaks-in-the-EBML-parser.patch Type: text/x-patch Size: 842 bytes Desc: not available URL: From ileoo at videolan.org Wed Jul 14 19:55:08 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Wed, 14 Jul 2010 20:55:08 +0300 Subject: [vlc-devel] [PATCH] statistics for libvlc In-Reply-To: <4C3DF49F.5070107@anamica.de> References: <4C3DCB5B.9040100@anamica.de> <20100714154547.GA3874@linux-3azp> <4C3DE019.3000408@anamica.de> <20100714171358.GB3874@linux-3azp> <4C3DF49F.5070107@anamica.de> Message-ID: <20100714175508.GC3874@linux-3azp> On Wed, Jul 14, 2010 at 07:32:15PM +0200, Frank Enderle wrote: > > but what I quickly looked you made libvlc_statistics_t same structure > > as input_stats_t so it should be problem. > i did this because input_stats_t is not public (at least its not > anywhere in /usr/include/vlc/*, so i suppose it's private). the > structures are almost the same. the only thing missing in > libvlc_statistics_t is the mutex since it's just a snapshot anyway. ComputeInputStats uses that mutex, so it needs to be there if you use that to generate stats. But I'm not really that familiar with stats code either, so maybe courmisch/nefrir/* can comment on more? -- Ilkka Ollakka Please, won't somebody tell me what diddie-wa-diddie means? -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From ivoire at videolan.org Wed Jul 14 20:00:50 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Wed, 14 Jul 2010 20:00:50 +0200 Subject: [vlc-devel] [PATCH 2/2] MKV : Fix some memory leaks in the EBML parser. In-Reply-To: References: <1279008035-29032-1-git-send-email-jmenon86@gmail.com> <1279008035-29032-2-git-send-email-jmenon86@gmail.com> Message-ID: <20100714180049.GB21762@dinauz.org> Both applied. Thanks ! -- R?mi Duraffort | ivoire From ivoire at videolan.org Wed Jul 14 20:11:46 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Wed, 14 Jul 2010 20:11:46 +0200 Subject: [vlc-devel] [PATCH] MKV : Add MJPEG codec ID. In-Reply-To: <1279107854-17583-1-git-send-email-jmenon86@gmail.com> References: <1279107854-17583-1-git-send-email-jmenon86@gmail.com> Message-ID: <20100714181146.GA22351@dinauz.org> Applied thanks. -- R?mi Duraffort | ivoire From fenrir at elivagar.org Wed Jul 14 20:33:50 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 14 Jul 2010 20:33:50 +0200 Subject: [vlc-devel] [PATCH 2/4] Adds the compressor module to VLC In-Reply-To: <1278014780.3893.12.camel@localhost> References: <1277973182-26616-1-git-send-email-logiconcepts819@gmail.com> <1277973182-26616-2-git-send-email-logiconcepts819@gmail.com> <20100701181026.GA29130@elivagar.org> <1278014780.3893.12.camel@localhost> Message-ID: <20100714183350.GA13169@elivagar.org> Hi, On Thu, Jul 01, 2010 at 10:06:20PM +0200, Laurent Aimar wrote: > > But then, how can you tell if the equalizer will go before or after > > the compressor on instantiation? Priority is important when it comes > > to dynamic range compressors, as there is a significant difference > > between equalization before compression and compression before > > equalization. Read the blue box at > > http://www.soundonsound.com/sos/jan01/articles/advanced.asp. > > > > It's almost like asking yourself, given two distinct functions f(x) > > and g(x), is f(g(x)) really equal to g(f(x))? The answer is obvious: > > not always, since the composition of functions is not commutative. > > This means that the audio controls in a certain order will exhibit > > behavior that changes when the order is swapped. > > > > Here is an example. Assume the older patches are used to compile VLC. > > Also assume that the parametric equalizer, main equalizer, and > > compressor are enabled. Because the equalizers and compressor have > > score 0, there are six different ways for the audio to be processed, > > and four of these ways will have a major impact as to how the audio is > > output. If the ordering is not explicit, then the compressor is not > > suitable for use with either equalizer. > > > > Considering the information that I have just mentioned, if you can > > help me find a better way to implement the equalization part (without > > changing the scores in the other modules), let me know. My most > > reasonable guess is that my module belongs in a category other than > > audio filters. (Is it possible that I need to add a new module > > category known as "audio_processors"?) > The order in which the filter are inserted is defined by the value of > the aout variable "audio-filter". > For example "audio-filter" == "compressor:equalizer" will insert the > compressor first and then the equalizer (whatever are the modules > priority). > > This variable is updated when you call aout_EnableFilter() which then > calls AoutChangeFilterString() defined in > src/audio_output/aout_internal.h. > If you want to impose an order, you can simply modify this function. I have done the modification on the aout part. To impose the order of the insertion of your module, you simply have to define the order associated to it in FilterOrder in src/audio_output/common.c. If you give an explicit order, it will always be inserted before any other module. Regards, -- fenrir From fenrir at elivagar.org Wed Jul 14 20:57:36 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 14 Jul 2010 20:57:36 +0200 Subject: [vlc-devel] [vlc-commits] commit: input: Fill in the input_item es. (Pierre d'Herbemont ) In-Reply-To: <20100714184153.CCFE21067FD@albiero.videolan.org> References: <20100714184153.CCFE21067FD@albiero.videolan.org> Message-ID: <20100714185736.GA14326@elivagar.org> Hi, On Wed, Jul 14, 2010 at 08:41:53PM +0200, git at videolan.org wrote: > vlc/vlc-1.1 | branch: master | Pierre d'Herbemont | Mon Feb 22 17:20:27 2010 +0100| [91d9a74630aa4ff9baaca6830887fd39c1141277] | committer: Pierre d'Herbemont ----------- > struct input_item_t > { > VLC_GC_MEMBERS > @@ -73,6 +102,9 @@ struct input_item_t > int i_es; /**< Number of es format descriptions */ > es_format_t **es; /**< Es formats */ > > + int i_tracks; /**< Number of track info descriptions */ > + input_item_track_t **tracks; /**< Tracks Info */ > + This breaks the ABI and so I don't think it can be accepted in vlc 1.1 branch. Anyway, if you really want 'tracks' to be usefull, I don't think that you can really cut down a lot of field from es_format_t, and so you could probably simply use the already present 'es' field (for master and 1.1, and it will avoid the ABI breakage)... -- fenrir From mapei_ at hotmail.com Wed Jul 14 21:30:55 2010 From: mapei_ at hotmail.com (Michael McEll) Date: Wed, 14 Jul 2010 20:30:55 +0100 Subject: [vlc-devel] [PATCH] Fix typo in the new VMem API which is preventing pitch from being applied. Message-ID: This fixes a problem with the pitch not being ignored when set via libvlc_video_set_format(). _________________________________________________________________ http://clk.atdmt.com/UKM/go/195013117/direct/01/ We want to hear all your funny, exciting and crazy Hotmail stories. Tell us now -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: media_player.c.patch Type: application/octet-stream Size: 731 bytes Desc: not available URL: From remi at remlab.net Wed Jul 14 22:19:43 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 14 Jul 2010 23:19:43 +0300 Subject: [vlc-devel] [vlc-commits] commit: input: Fill in the input_item es. (Pierre d'Herbemont ) In-Reply-To: <20100714184153.CCFE21067FD@albiero.videolan.org> References: <20100714184153.CCFE21067FD@albiero.videolan.org> Message-ID: <201007142319.44121.remi@remlab.net> Le mercredi 14 juillet 2010 21:41:53 git at videolan.org, vous avez ?crit : > vlc/vlc-1.1 | branch: master | Pierre d'Herbemont | > Mon Feb 22 17:20:27 2010 +0100| [91d9a74630aa4ff9baaca6830887fd39c1141277] > | committer: Pierre d'Herbemont > > input: Fill in the input_item es. > > Instead of using es_format_t we use a custom structure to limit the memory > footprint. This allow libvlc_media_get_es() to properly work after > libvlc_media_parse(). Do you dare pretend you don't know that changes are supposed to go to master first? What the heck is this? And don't pretend you're not aware that we don't break the libvlccore ABI within a stable branch. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 14 22:28:50 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Wed, 14 Jul 2010 23:28:50 +0300 Subject: [vlc-devel] [PATCH] Fix typo in the new VMem API which is preventing pitch from being applied. In-Reply-To: References: Message-ID: <201007142328.50774.remi@remlab.net> Le mercredi 14 juillet 2010 22:30:55 Michael McEll, vous avez ?crit : > This fixes a problem with the pitch not being ignored when set via > libvlc_video_set_format(). Yeah, this is already fixed, thanks. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 14 22:29:50 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Wed, 14 Jul 2010 23:29:50 +0300 Subject: [vlc-devel] [PATCH] fix build with taglib 1.6 In-Reply-To: References: Message-ID: <201007142329.50990.remi@remlab.net> Le mercredi 14 juillet 2010 00:20:54 G?tz Waschk, vous avez ?crit : > Hi everyone, > > here is a patch against vlc git that modifies the taglib check. The > header mp4coverart.h was added after taglib 1.6. taglib 1.6 and older > had support for mp4, but not for the cover art, so the build would > fail. I wonder if this should not be a taglib version check rather than a manual header check? -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 14 22:30:40 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Wed, 14 Jul 2010 23:30:40 +0300 Subject: [vlc-devel] [PATCH] move msg_Subscription filterting to core In-Reply-To: <20100714085225.GA17211@linux-3azp> References: <20100714085225.GA17211@linux-3azp> Message-ID: <201007142330.41252.remi@remlab.net> Le mercredi 14 juillet 2010 11:52:25 Ilkka Ollakka, vous avez ?crit : > These patches move msg_Subscription based message-level filterting to > core per subscription. Seems fine but did you not merge them already? -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From ileoo at videolan.org Wed Jul 14 22:59:33 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Wed, 14 Jul 2010 23:59:33 +0300 Subject: [vlc-devel] [PATCH] move msg_Subscription filterting to core In-Reply-To: <201007142330.41252.remi@remlab.net> References: <20100714085225.GA17211@linux-3azp> <201007142330.41252.remi@remlab.net> Message-ID: <20100714205933.GD3874@linux-3azp> On Wed, Jul 14, 2010 at 11:30:40PM +0300, R?mi Denis-Courmont wrote: > Le mercredi 14 juillet 2010 11:52:25 Ilkka Ollakka, vous avez ?crit : > > These patches move msg_Subscription based message-level filterting to > > core per subscription. > Seems fine but did you not merge them already? Yes, pushed them in hour os so ago. -- Ilkka Ollakka I took a course in speed reading and was able to read War and Peace in twenty minutes. It's about Russia. -- Woody Allen -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From pankajdnapster at gmail.com Thu Jul 15 06:04:01 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Thu, 15 Jul 2010 09:34:01 +0530 Subject: [vlc-devel] Stats to INT64 Message-ID: Some Platforms have int64_t typedefed to long long. This patch prevents illegal implicit conversion from long long * to int * -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-some-platforms-can-have-int64_t-typedefed-to-long-lo.patch Type: text/x-patch Size: 852 bytes Desc: not available URL: From pankajdnapster at gmail.com Thu Jul 15 06:31:36 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Thu, 15 Jul 2010 10:01:36 +0530 Subject: [vlc-devel] GSoC Status Message-ID: Hi, I am finally done with finalization of merging and managed to divide the complete merge into two separate patches.Patch one includes all modifications to the code and second patch include the symbian project directory. First patch is sent to the vlc-devel mailing list for review and should be merged as soon as possible if there are no objections. Second patch does not disturb the code and thus I plan to merge it without preview to all. -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: From ileoo at videolan.org Thu Jul 15 07:14:29 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Thu, 15 Jul 2010 08:14:29 +0300 Subject: [vlc-devel] Stats to INT64 In-Reply-To: References: Message-ID: <20100715051428.GE3874@linux-3azp> On Thu, Jul 15, 2010 at 09:34:01AM +0530, Pankaj yadav wrote: > Some Platforms have int64_t typedefed to long long. > This patch prevents illegal implicit conversion from long long * to int * Thanks, applied -- Ilkka Ollakka If there are epigrams, there must be meta-epigrams. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From ileoo at videolan.org Thu Jul 15 08:08:31 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Thu, 15 Jul 2010 09:08:31 +0300 Subject: [vlc-devel] [vlc-commits] commit: some platforms can have int64_t typedefed to long long .. This patch prevents illegal implicit conversion from long long * to int * ( pk@pk-desktop.(none) ) In-Reply-To: <20100715051407.F35E6104096@albiero.videolan.org> References: <20100715051407.F35E6104096@albiero.videolan.org> Message-ID: <20100715060830.GA15853@linux-3azp> On Thu, Jul 15, 2010 at 07:14:07AM +0200, git at videolan.org wrote: > vlc | branch: master | pk at pk-desktop.(none) | Fri Jul 16 00:38:40 2010 +0530| [12a85b8a32922fe28a2d67fd42a592baae8e0dce] | committer: Ilkka Ollakka My bad, missed that incorrect author/email field on patch. -- Ilkka Ollakka Omnibiblious, adj.: Indifferent to type of drink. "Oh, you can get me anything. I'm omnibiblious." -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From pdherbemont at free.fr Thu Jul 15 10:30:15 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Thu, 15 Jul 2010 10:30:15 +0200 Subject: [vlc-devel] [vlc-commits] commit: input: Fill in the input_item es. (Pierre d'Herbemont ) In-Reply-To: <201007142319.44121.remi@remlab.net> References: <20100714184153.CCFE21067FD@albiero.videolan.org> <201007142319.44121.remi@remlab.net> Message-ID: 2010/7/14 R?mi Denis-Courmont : > Le mercredi 14 juillet 2010 21:41:53 git at videolan.org, vous avez ?crit : >> vlc/vlc-1.1 | branch: master | Pierre d'Herbemont | >> Mon Feb 22 17:20:27 2010 +0100| [91d9a74630aa4ff9baaca6830887fd39c1141277] >> | committer: Pierre d'Herbemont >> >> input: Fill in the input_item es. >> >> Instead of using es_format_t we use a custom structure to limit the memory >> footprint. This allow libvlc_media_get_es() to properly work after >> libvlc_media_parse(). > > Do you dare pretend you don't know that changes are supposed to go to master > first? What the heck is this? > > And don't pretend you're not aware that we don't break the libvlccore ABI > within a stable branch. Dooh. That's a dumb git mistake. Pierre From pdherbemont at free.fr Thu Jul 15 10:35:04 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Thu, 15 Jul 2010 10:35:04 +0200 Subject: [vlc-devel] [vlc-commits] commit: input: Fill in the input_item es. (Pierre d'Herbemont ) In-Reply-To: References: <20100714184153.CCFE21067FD@albiero.videolan.org> <201007142319.44121.remi@remlab.net> Message-ID: On Thu, Jul 15, 2010 at 10:30 AM, Pierre d'Herbemont wrote: > Dooh. That's a dumb git mistake. Thanks for reverting it. Please put justification in revert commit. Pierre. From xtophe at chewa.net Thu Jul 15 10:42:11 2010 From: xtophe at chewa.net (Christophe Mutricy) Date: Thu, 15 Jul 2010 09:42:11 +0100 Subject: [vlc-devel] [vlc-commits] commit: some platforms can have int64_t typedefed to long long .. This patch prevents illegal implicit conversion from long long * to int * ( pk@pk-desktop.(none) ) In-Reply-To: <20100715051407.F35E6104096@albiero.videolan.org> References: <20100715051407.F35E6104096@albiero.videolan.org> Message-ID: <1279183331.16226.2.camel@Tuiga> Hello ----- Message d'origine ----- > vlc | branch: master | pk at pk-desktop.(none) | Fri Jul 16 Please configure your git correctly with your name and e-mail address -- Xtophe From pdherbemont at free.fr Thu Jul 15 10:42:07 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Thu, 15 Jul 2010 10:42:07 +0200 Subject: [vlc-devel] [vlc-commits] commit: input: Fill in the input_item es. (Pierre d'Herbemont ) In-Reply-To: <20100714185736.GA14326@elivagar.org> References: <20100714184153.CCFE21067FD@albiero.videolan.org> <20100714185736.GA14326@elivagar.org> Message-ID: On Wed, Jul 14, 2010 at 8:57 PM, Laurent Aimar wrote: > Hi, > > On Wed, Jul 14, 2010 at 08:41:53PM +0200, git at videolan.org wrote: >> vlc/vlc-1.1 | branch: master | Pierre d'Herbemont | Mon Feb 22 17:20:27 2010 +0100| [91d9a74630aa4ff9baaca6830887fd39c1141277] | committer: Pierre d'Herbemont > ?----------- > >> ?struct input_item_t >> ?{ >> ? ? ?VLC_GC_MEMBERS >> @@ -73,6 +102,9 @@ struct input_item_t >> ? ? ?int ? ? ? ? i_es; ? ? ? ? ? ? ? ?/**< Number of es format descriptions */ >> ? ? ?es_format_t **es; ? ? ? ? ? ? ? ?/**< Es formats */ >> >> + ? ?int i_tracks; ? ? ? ? ? ? ? ? ? ?/**< Number of track info descriptions */ >> + ? ?input_item_track_t **tracks; ? ? /**< Tracks Info */ >> + > ?This breaks the ABI and so I don't think it can be accepted in vlc 1.1 branch. Yes, that's a mistake. I wanted to push this patch that we had pre-vlc 1.1 release in master before it went completely forgotten. > ?Anyway, if you really want 'tracks' to be usefull, I don't think that you can really > cut down a lot of field from es_format_t, and so you could probably simply use the > already present 'es' field (for master and 1.1, and it will avoid the ABI breakage)... I don't think we need this for 1.1, because it breaks also libvlc documented behaviour. That said I don't remember why I didn't reuse the es field, and it seems to make sense. Pierre. From m.g.srinidhidevang at gmail.com Thu Jul 15 11:15:08 2010 From: m.g.srinidhidevang at gmail.com (Srinidhi Devang) Date: Thu, 15 Jul 2010 14:45:08 +0530 Subject: [vlc-devel] Adding funtionality to VLC source code (version 1.0.2) Message-ID: Hi VLC developers, I'm a newbie to VLC source code compilation. I'm tring to add some *additional functionalites* to the existing VLC source code of version 1.0.2 .My aim is to display the PSNR values to the OSD using marquee string. Current work flow: *)with a funtion i'm calculating PSNR values in X264.c module of existing vlc source code and that calculated value i need to send to OSD using marq marquee string command. I'm opening a socket in my program and in vlc GUI i enabled RC interface,set the IP and port number. *) now i'm writing below a function to take the PSNR value which i was calculating earlier as an argument to this function and by making use of marq command i'm trying to send to OSD.This function i'm writing in the same X264.c module. (both PSNR calculation function and the below function both i'm writing in the same X264.c module.) //write_psnr_to_rc() to write PSNR into OSD #include //these are the header files required for my function #include #include #include #include #include #include #include #include #include void write_psnr_to_rc(int PSNR_val) { static int sock; int i=0; char send_data[1024]="\0",*end; static struct hostent *host; addrinfo_sri server_addr; char line[128] = {0}; static int index = 1; if(index == 1) { host = gethostbyname("XXX.XXX.XXX.XXX"); if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("Socket"); exit(1); } server_addr.sin_family = AF_INET; server_addr.sin_port = htons(5555); server_addr.sin_addr = *((struct in_addr *)host->h_addr); bzero(&(server_addr.sin_zero),8); if (connect(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)) == -1) { perror("Connect"); exit(1); } } snprintf(line, 128, "%d",PSNR_val); bzero(send_data, 1024); strcpy(send_data,"@marq marq-marquee PSNR="); //only marq-marquee for 0.9 below and @marq marq-marquee for above 0.9 versions strcat(send_data,line); write(sock,&send_data[0], sizeof(send_data));//for writing into the socket sleep(1); bzero(line,128); ++index; } Need suggestions for the below: *)Is there anything has to be changed in the above function so that my function can work smoothly ?? *)May be i'm asking you a silly things but go easy on me..i'm a newbie to this...:) i added the code and tried to compile but got the below errors. could you explain y these errors are occuring??To compile i'm using cygwin. x264.c: In function `write_psnr_to_rc': x264.c:477: error: `SOCKET' undeclared (first use in this function) x264.c:477: error: (Each undeclared identifier is reported only once x264.c:477: error: for each function it appears in.) x264.c:477: error: parse error before "n" x264.c:478: error: implicit declaration of function `socket' x264.c:478: error: `AF_INET' undeclared (first use in this function) x264.c:478: error: `SOCK_STREAM' undeclared (first use in this function) x264.c:484: error: structure has no member named `sin_family' x264.c:485: error: structure has no member named `sin_port' x264.c:485: error: implicit declaration of function `htons' x264.c:486: error: structure has no member named `sin_addr' x264.c:486: error: dereferencing pointer to incomplete type x264.c:487: error: implicit declaration of function `bzero' x264.c:487: error: structure has no member named `sin_zero' x264.c:489: error: implicit declaration of function `connect' x264.c:490: error: invalid application of `sizeof' to incomplete type `sockaddr' thanking you in advance, with regards, Srinidhi -------------- next part -------------- An HTML attachment was scrubbed... URL: From siretart at tauware.de Tue Jul 13 16:14:52 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Tue, 13 Jul 2010 10:14:52 -0400 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <3531d4581a3c6378e4d5777c25cf826c@chewa.net> (=?utf-8?Q?=22R?= =?utf-8?Q?=C3=A9mi?= Denis-Courmont"'s message of "Tue, 13 Jul 2010 16:01:13 +0200") References: <201007122154.54917.remi@remlab.net> <3531d4581a3c6378e4d5777c25cf826c@chewa.net> Message-ID: <87bpabqxib.fsf@faui44a.informatik.uni-erlangen.de> On Tue, Jul 13, 2010 at 10:01:13 (EDT), R?mi Denis-Courmont wrote: >> Ping maintainers and debian security team. Indicate the security >> issue, the patch and or new tarball. > > It's not like it's not known: > http://security-tracker.debian.org/tracker/status/release/stable it lists 4 CVEs: CVE-2010-1441 - 1445, all of them only affecting the 0.8 series and without any details. So this piece of information is pretty useless for identifying missing changes in 0.8.x. A tad more insightful is http://www.videolan.org/security/sa1003.html, which at least mentions: - Heap buffer overflow vulnerability in A/52, DTS and MPEG Audio decoders - Invalid memory access in AVI, ASF, Matroska (MKV) demuxers - Invalid memory access in XSPF playlist parser - Invalid memory access in ZIP archive decompressor - Heap buffer overflow in RTMP access I guess each of them match to the respective CVE number. BTW, this is only half the story you mentioned in the beginning of this thread. > It's more like nobody cares. I dont't think that's accurate. I'd rather guess that there is no one in the distro camp that knows how to match these 5 issues to patches that fix them. -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From siretart at tauware.de Tue Jul 13 23:50:47 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Tue, 13 Jul 2010 17:50:47 -0400 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <9dee015f56af299a9ed606cd005dcff4@chewa.net> (=?utf-8?Q?=22R?= =?utf-8?Q?=C3=A9mi?= Denis-Courmont"'s message of "Tue, 13 Jul 2010 16:13:22 +0200") References: <8f3d1bdc2794bb3513bbc775bf0e5c28@chewa.net> <87zkxvr1w6.fsf@faui44a.informatik.uni-erlangen.de> <9dee015f56af299a9ed606cd005dcff4@chewa.net> Message-ID: <87iq4joxu0.fsf@faui44a.informatik.uni-erlangen.de> On Tue, Jul 13, 2010 at 10:13:22 (EDT), R?mi Denis-Courmont wrote: > On Tue, 13 Jul 2010 08:40:09 -0400, Reinhard Tartler > wrote: >> So let's check: >> >> | vlc | 0.8.6.release.e+x264svn20071224+faad2.6.1-0ubuntu3.3 | >> hardy-updates/universe | source >> | vlc | 0.9.9a-2ubuntu1 | jaunty/multiverse | source, amd64, i386 >> | vlc | 1.0.2-1ubuntu2 | karmic/universe | source, amd64, i386 >> | vlc | 1.0.2-1ubuntu2.1 | karmic-updates/universe | source, amd64, i386 >> | vlc | 1.0.6-1ubuntu1 | lucid/universe | source, amd64, i386 >> | vlc | 1.0.6-1ubuntu1.1 | lucid-updates/universe | source, amd64, i386 >> | vlc | 1.1.0-2ubuntu1 | maverick/universe | source, amd64, i386 >> >> so in hardy we have basically the same situation as in >> debian/stable. We could argue that it is unsupportable and try to get it >> removed. >> >> As for karmic, I guess we could and probably should work on preparing an >> upload to either karmic-updates or karmic-security. But this would >> involve following a rather strict process. R?mi, is there a list of bugs >> fixed between 1.0.2 - 1.0.6? > > Generally, git gives you that. In -bugfix branches we normally don't do > architectural changes or risky cleanups. > With that in mind, it should be easy to make out bug fixes, from > administrative updates and new features. > > Security-wise: http://www.videolan.org/security/sa1003.html as indicated in my other mail, still seems rather non-trivial to me. >>>> The process would be: >>> >>>> 1. Open a bug report in Launchpad stating the security bug >>>> 2. Produce a patch that fixes the bug in the latest trunk version >>>> 3. Backport the patch against trunk to the older versions of vlc >>>> 4. Release the security update >>> >>> Someone needs to dig the security patches out of 1.0-bugfix from 1.0.2 >>> to 1.0.6. That's not really difficult; it's just time consuming. The >>> VideoLAN project is already doing that for the latest 1.0.x. We are >>> not going to do that for all of the 1.0.x revisions individually. If >>> distribution FOOBAR decides to fork the maintenance process, then >>> that's FOOBAR's problem. And when FOOBAR does not stand up to its own >>> process, you get pathetic results like VLC in Debian Stable. > >> I tend to agree here. This answers my question from above pretty much. >> So if I understand you correctly, there is a 1.0-bugfix branch, from >> which we can try to cherry-pick individial changes to existing >> releases. I guess it is this repository: >> >> http://git.videolan.org/?p=vlc/vlc-1.0.git;a=summary >> >> correct? > > Yes. > >> Hm, I see that the amount of work you're doing here is incredible. I >> really think we should get this packaged. >> >>> We are already sorting Ubuntu VLC bug reports, made 1.0.6 more or less >>> only for Ubuntu LTS, report security issues in your bug tracker. Where >>> does this stop? We're _not_ paid. >>> >>>> Looking at the Ubuntu bugs, there is only one security bug reported: >>>> https://bugs.launchpad.net/ubuntu/+source/vlc/+bug/295464 >> >> and AFAIUI, it doesn't affect the versions of vlc we're talking right >> now. So from a ubuntu bugtracker POV, there are no known security >> issues, and as the commit logs don't reference CVE or similar security >> trackers either, I guess we need to be somewhat more convincing here. > > Safe for a major speed up in CVE numbers assignment, this is unlikely to > improve. That's sad to hear. > Besides, I fear I sense a chick-and-egg problem here. I mean, > MITRE won't give me numbers just for my smile, will they? Well, I don't know what went wrong with the CVE numbers in VLC SA 1003, but AFAIUI they handed out the number reservations fairly quickly. I'm not sure what the exact process is for getting proper CVE reports but me it looks like this process somehow got stalled. -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From pankajdnapster at gmail.com Thu Jul 15 06:13:56 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Thu, 15 Jul 2010 09:43:56 +0530 Subject: [vlc-devel] Symbian VLC Merge Message-ID: I have divided complete merge into two patches. First one is envelopes all Modifications to the existing code. Second patch is for Directory /extras/package/symbian/* First Patch is attached for review and must be merged if no objections arise. Second patch is little bigger [around 1.6MB] but as it is just about addition of a symbian project directory, I dont think it will raise any objections so i plan to merge it on my own. -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Symbian-VLC-Patch-1-2-Modifications-to-existing-VLC-.patch Type: text/x-patch Size: 67345 bytes Desc: not available URL: From goetz.waschk at gmail.com Thu Jul 15 12:25:24 2010 From: goetz.waschk at gmail.com (=?ISO-8859-1?Q?G=F6tz_Waschk?=) Date: Thu, 15 Jul 2010 12:25:24 +0200 Subject: [vlc-devel] [PATCH] fix build with taglib 1.6 Message-ID: R?mi Denis-Courmont wrote: > I wonder if this should not be a taglib version check rather than a manual > header check? Hi, this could be done with pkg-config, however, I have taglib 1.6.2 in Mandriva 2010.1 and the pkgconfig file contains version: 1.6.1. Regards, G?tz -- AL I:40: Do what thou wilt shall be the whole of the Law. From ivoire at videolan.org Thu Jul 15 19:35:36 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Thu, 15 Jul 2010 19:35:36 +0200 Subject: [vlc-devel] [PATCH] fix build with taglib 1.6 In-Reply-To: References: Message-ID: <20100715173535.GB4631@dinauz.org> > > I wonder if this should not be a taglib version check rather than a manual > > header check? > Hi, > > this could be done with pkg-config, however, I have taglib 1.6.2 in > Mandriva 2010.1 and the pkgconfig file contains version: 1.6.1. I think we will go on with the header check as: * taglib.pc declare version 1.6 for taglib versions 1.6.(0,1,2) (only the latest one declare the right version) * I found TAGLIB_MAJOR_VERSION, TAGLIB_MINOR_VERSION and TAGLIB_PATCH_VERSION in taglib.h but the are identical in 1.6.(0,1,2) releases (only the latest one is correct). So I guess the right way is to add a test based on the header (I will do it as the patch was not completelly correct) -- R?mi Duraffort | ivoire From remi at remlab.net Thu Jul 15 20:00:03 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Thu, 15 Jul 2010 21:00:03 +0300 Subject: [vlc-devel] Symbian VLC Merge In-Reply-To: References: Message-ID: <201007152100.04058.remi@remlab.net> Hello, Comments inline... diff --git a/bin/vlc.c b/bin/vlc.c index 40fa96f..6f42197 100644 --- a/bin/vlc.c +++ b/bin/vlc.c @@ -44,6 +44,22 @@ #include #endif +#ifdef SYMBIAN +#include +static vlc_mutex_t exit_lock = VLC_STATIC_MUTEX; +static vlc_cond_t exiting = VLC_STATIC_COND; You probably need a static boolean variable here... +void symbian_libvlc_Wait( libvlc_int_t *p_libvlc ); +void symbian_libvlc_Wait( libvlc_int_t *p_libvlc ) +{ + vlc_mutex_lock( &exit_lock ); + /*while( vlc_object_alive( p_libvlc ) ) ...to replace this condition... + {*/ + vlc_cond_wait( &exiting, &exit_lock ); ...otherwise this might break in case of spurious wake-up. + //printf("out\n"); Please leave out your old debug statements. + /*}*/ + vlc_mutex_unlock( &exit_lock ); +} +#endif /* Explicit HACK */ extern void LocaleFree (const char *); @@ -69,9 +85,15 @@ static bool signal_ignored (int signum) static void vlc_kill (void *data) { +#ifndef SYMBIAN pthread_t *ps = data; pthread_kill (*ps, SIGTERM); +#else + vlc_mutex_lock( &exit_lock ); + vlc_cond_broadcast( &exiting ); Set the missing boolean variable here. + vlc_mutex_unlock( &exit_lock ); +#endif } @@ -80,6 +102,7 @@ static void vlc_kill (void *data) *****************************************************************************/ int main( int i_argc, const char *ppsz_argv[] ) { +#ifndef SYMBIAN /* The so-called POSIX-compliant MacOS X reportedly processes SIGPIPE even * if it is blocked in all thread. Also some libraries want SIGPIPE blocked * as they have no clue about signal masks. @@ -164,7 +187,7 @@ int main( int i_argc, const char *ppsz_argv[] ) #endif /* Block all these signals */ pthread_sigmask (SIG_BLOCK, &set, NULL); - +#endif I would really keep the empty line for readability. /* Note that FromLocale() can be used before libvlc is initialized */ const char *argv[i_argc + 3]; int argc = 0; @@ -190,9 +213,9 @@ int main( int i_argc, const char *ppsz_argv[] ) if ((argv[argc++] = FromLocale (ppsz_argv[i])) == NULL) return 1; // BOOM! argv[argc] = NULL; - +#ifndef SYMBIAN vlc_enable_override (); - +#endif This looks wrong. Why you can't call the dummy vlc_enable_override() from bin/override.c ? diff --git a/include/vlc_codecs.h b/include/vlc_codecs.h index 6c087da..c5f132f 100644 --- a/include/vlc_codecs.h +++ b/include/vlc_codecs.h @@ -42,15 +42,20 @@ typedef struct _GUID uint8_t Data4[8]; } GUID, *REFGUID, *LPGUID; #endif /* GUID_DEFINED */ - Please keep the empty line. +#ifndef __WINSCW__ Should not be required... #ifdef HAVE_ATTRIBUTE_PACKED # define ATTR_PACKED __attribute__((__packed__)) #elif defined(__SUNPRO_C) # pragma pack(1) # define ATTR_PACKED +#elif defined(__WINSCW__) +# define ATTR_PACKED ...as you already have this. #else # error FIXME #endif +#else +#define ATTR_PACKED +#endif #ifndef _WAVEFORMATEX_ #define _WAVEFORMATEX_ diff --git a/include/vlc_common.h b/include/vlc_common.h index 9a5617c..9407e18 100644 --- a/include/vlc_common.h +++ b/include/vlc_common.h @@ -56,6 +56,10 @@ # include #endif +#if defined(SYMBIAN) && !defined(__cplusplus) +typedef int bool; +#endif Maybe this should be in vlc_fixups.h instead? /* Try to fix format strings for all versions of mingw and mingw64 */ #if defined( _WIN32 ) && defined( __USE_MINGW_ANSI_STDIO ) #undef PRId64 @@ -499,6 +503,10 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *, /* variable's object */ #else # define LIBVLC_EXPORT #endif +#ifdef SYMBIAN +#undef LIBVLC_EXPORT +#define LIBVLC_EXPORT __declspec(dllexport) +#endif Please use #elif defined in the previous #if block, so you won't need #undef. #define VLC_EXPORT( type, name, args ) \ LIBVLC_EXTERN LIBVLC_EXPORT type name args @@ -906,7 +914,7 @@ VLC_EXPORT( const char *, VLC_Compiler, ( void ) LIBVLC_USED ); #include "vlc_main.h" #include "vlc_configuration.h" -#if defined( WIN32 ) || defined( UNDER_CE ) +#if defined( WIN32 ) || defined( UNDER_CE ) || defined(SYMBIAN) # define DIR_SEP_CHAR '\\' # define DIR_SEP "\\" # define PATH_SEP_CHAR ';' diff --git a/include/vlc_messages.h b/include/vlc_messages.h index 15ce936..911c5f6 100644 --- a/include/vlc_messages.h +++ b/include/vlc_messages.h @@ -31,7 +31,9 @@ * \file * This file defines structures and functions to handle messages and statistics gathering */ - +#if defined(SYMBIAN) && defined(__LIBVLC__) +#define MODULE_STRING "main" +#endif Is there really no way to define MODULE_STRING as a precompiler constant from the project configuration files? That would cut this patch size a LOT. #include /** diff --git a/include/vlc_threads.h b/include/vlc_threads.h index 3770e2f..b47769e 100644 --- a/include/vlc_threads.h +++ b/include/vlc_threads.h @@ -110,7 +110,19 @@ typedef pthread_mutex_t vlc_mutex_t; #define VLC_STATIC_MUTEX PTHREAD_MUTEX_INITIALIZER typedef pthread_cond_t vlc_cond_t; #define VLC_STATIC_COND PTHREAD_COND_INITIALIZER +#ifndef SYMBIAN typedef pthread_rwlock_t vlc_rwlock_t; +#else +typedef struct +{ + vlc_mutex_t mutex; + vlc_cond_t read_wait; + vlc_cond_t write_wait; + unsigned long readers; + unsigned long writers; + unsigned long writer; +} vlc_rwlock_t; +#endif typedef pthread_key_t vlc_threadvar_t; typedef struct vlc_timer *vlc_timer_t; @@ -216,7 +228,7 @@ VLC_EXPORT( void, vlc_timer_destroy, (vlc_timer_t) ); VLC_EXPORT( void, vlc_timer_schedule, (vlc_timer_t, bool, mtime_t, mtime_t) ); VLC_EXPORT( unsigned, vlc_timer_getoverrun, (vlc_timer_t) LIBVLC_USED ); -#ifndef LIBVLC_USE_PTHREAD_CANCEL +#if !defined(LIBVLC_USE_PTHREAD_CANCEL) || defined(SYMBIAN) No! Please don't define LIBVLC_USE_PTHREAD_CANCEL at the beginning of vlc_thread.h instead. enum { VLC_CLEANUP_PUSH, VLC_CLEANUP_POP, @@ -227,7 +239,7 @@ VLC_EXPORT( int, vlc_savecancel, (void) ); VLC_EXPORT( void, vlc_restorecancel, (int state) ); VLC_EXPORT( void, vlc_testcancel, (void) ); -#if defined (LIBVLC_USE_PTHREAD_CANCEL) +#if defined (LIBVLC_USE_PTHREAD_CANCEL) &&!defined(SYMBIAN) Same here. diff --git a/modules/control/rc.c b/modules/control/rc.c index fe10a0c..cec9a71 100644 --- a/modules/control/rc.c +++ b/modules/control/rc.c @@ -778,7 +787,9 @@ static void Run( intf_thread_t *p_intf ) /* Command processed */ i_size = 0; p_buffer[0] = 0; } - +#ifdef SYMBIAN + config_SaveConfigFile( p_intf, NULL ); +#endif Is this really intended?? Also please keep the empty line. msg_rc( STATUS_CHANGE "( stop state: 0 )" ); msg_rc( STATUS_CHANGE "( quit )" ); @@ -1555,12 +1566,12 @@ static int VolumeMove( vlc_object_t *p_this, char const *psz_cmd, if ( !strcmp(psz_cmd, "volup") ) { - if ( aout_VolumeUp( p_this, i_nb_steps, &i_volume ) < 0 ) + if ( aout_VolumeUp( p_intf->p_sys->p_playlist, i_nb_steps, &i_volume ) < 0 ) I don't understand why you need that hack. @@ -2005,6 +2016,13 @@ bool ReadCommand( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) 0 /*STDIN_FILENO*/ : p_intf->p_sys->i_socket, NULL, (uint8_t *)p_buffer + *pi_size, 1, false ) ) > 0 ) { +#ifdef SYMBIAN + /*RC Interface needs some work for Other Platforms also.Here is What Symbian Non-Qwerty Keyboards Demand.*/ + if((*(p_buffer+(*pi_size)))=='\b') + { + *pi_size-=2; + } +#endif Mind the indentation. What happens if pi_size equals 1 ?? diff --git a/src/audio_output/intf.c b/src/audio_output/intf.c index 017ece2..cab2b4a 100644 --- a/src/audio_output/intf.c +++ b/src/audio_output/intf.c @@ -346,7 +346,9 @@ int aout_VolumeSoftGet( aout_instance_t * p_aout, audio_volume_t * pi_volume ) /* Placeholder for pf_volume_set(). */ int aout_VolumeSoftSet( aout_instance_t * p_aout, audio_volume_t i_volume ) { +#ifndef SYMBIAN aout_MixerMultiplierSet( p_aout, (float)i_volume / AOUT_VOLUME_DEFAULT ); +#endif I am not sure this is a good idea. diff --git a/src/config/cmdline.c b/src/config/cmdline.c index d01c133..0f89a24 100644 --- a/src/config/cmdline.c +++ b/src/config/cmdline.c @@ -200,7 +200,7 @@ int config_LoadCmdLine( vlc_object_t *p_this, int i_argc, * Parse the command line options */ vlc_getopt_t state; - state.optind = 0 ; /* set to 0 to tell GNU getopt to reinitialize */ + state.opt_optind = 0 ; /* set to 0 to tell GNU getopt to reinitialize */ I second-guess that optind and optarg are evil macros on Symbian. In my opinion, it would be nicer to rename the members to 'ind' or 'opt_ind' than 'opt_optind' and the like, in this case. I would also suggest making that change as a separate patch for clarity. diff --git a/src/control/core.c b/src/control/core.c index 942212d..56292fb 100644 --- a/src/control/core.c +++ b/src/control/core.c @@ -48,14 +48,21 @@ libvlc_instance_t * libvlc_new( int argc, const char *const *argv ) const char *my_argv[argc + 2]; my_argv[0] = "libvlc"; /* dummy arg0, skipped by getopt() et al */ for( int i = 0; i < argc; i++ ) +#ifndef __WINSCW__ my_argv[i + 1] = argv[i]; +#else + my_argv[i + 1] = (char *) argv[i]; +#endif I don't understand the problem here. my_argv is declared as const char*[] right above. { +#ifndef SYMBIAN return vlc_threadvar_get(queue(p_em)->is_asynch_dispatch_thread_var); +#else + return (bool)vlc_threadvar_get(queue(p_em)- >is_asynch_dispatch_thread_var); +#endif } Just compare: != NULL on all platforms. No need to make an ifdef here. diff --git a/src/input/es_out_timeshift.c b/src/input/es_out_timeshift.c index 3ac19d5..82965a2 100644 --- a/src/input/es_out_timeshift.c +++ b/src/input/es_out_timeshift.c @@ -55,7 +55,9 @@ *****************************************************************************/ /* XXX attribute_packed is (and MUST be) used ONLY to reduce memory usage */ -#ifdef HAVE_ATTRIBUTE_PACKED +/*WINSCW is a Nokia Compiler For Running Symbian C++ Code on x86 Machines*/ + +#if defined(HAVE_ATTRIBUTE_PACKED) && !defined(__WINSCW__) # define attribute_packed __attribute__((__packed__)) You should not define HAVE_ATTRIBUTE_PACKED if you don't have it. diff --git a/src/input/input_internal.h b/src/input/input_internal.h index 7cd39f7..3d6649a 100644 --- a/src/input/input_internal.h +++ b/src/input/input_internal.h @@ -32,8 +32,11 @@ #include #include #include +#ifndef SYMBIAN #include "input_interface.h" - +#else +#include "input/input_interface.h" +#endif Shouldn't this be corrected in the project file instead? diff --git a/src/libvlc.c b/src/libvlc.c index 68fa418..2360f69 100644 --- a/src/libvlc.c +++ b/src/libvlc.c @@ -667,7 +673,10 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, priv->i_verbose = -1; } vlc_threads_setup( p_libvlc ); - +#ifdef SYMBIAN + /*This is the Best Place to Start a Thread Controller.As We Init a Libvlc */ + ret=pthread_create(&threadid,NULL,ThreadController,&dead); +#endif Probably the really best place is system_Init() or system_Configure(), and then system_End() not libvlc_InternalInit(). diff --git a/src/libvlc.h b/src/libvlc.h index 69996de..4cd02c8 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -26,7 +26,9 @@ # define LIBVLC_LIBVLC_H 1 #include - +#ifdef SYMBIAN +void * ThreadController (void * );/*Symbian Needs a Thread Controller Thread.This is the Entry Routine of Thread*/ +#endif typedef struct variable_t variable_t; This shouldn't (need to) be defined in a common header. diff --git a/src/misc/messages.c b/src/misc/messages.c index 063ae60..9ae783a 100644 --- a/src/misc/messages.c +++ b/src/misc/messages.c @@ -510,7 +510,7 @@ static void PrintMsg ( vlc_object_t * p_this, msg_item_t * p_item ) libvlc_priv_t *priv = libvlc_priv (p_this->p_libvlc); msg_bank_t *bank = priv->msg_bank; int i_type = p_item->i_type; - +#ifndef SYMBIAN Please leave the empty lines. diff --git a/src/network/udp.c b/src/network/udp.c index 5af1c0b..22afddf 100644 --- a/src/network/udp.c +++ b/src/network/udp.c @@ -90,6 +90,10 @@ # define UDPLITE_RECV_CSCOV 11 #endif +#ifdef SYMBIAN + extern const struct in6_addr in6addr_any=IN6ADDR_ANY_INIT; +#endif + Don't indent here. diff --git a/src/playlist/playlist_internal.h b/src/playlist/playlist_internal.h index 959b8e3..1a22d87 100644 --- a/src/playlist/playlist_internal.h +++ b/src/playlist/playlist_internal.h @@ -37,9 +37,15 @@ #include "input/input_interface.h" #include +#ifndef INCLUDED_FROM_LIBVLC_C #include "art.h" #include "fetcher.h" #include "preparser.h" +#else +#include "playlist/art.h" +#include "playlist/fetcher.h" +#include "playlist/preparser.h" +#endif Should really change the include path in the project file. diff --git a/src/text/unicode.c b/src/text/unicode.c index 77b7684..d5cc0c1 100644 --- a/src/text/unicode.c +++ b/src/text/unicode.c @@ -42,7 +42,7 @@ #endif #include -#if defined (__APPLE__) || defined (HAVE_MAEMO) +#if defined (__APPLE__) || defined (HAVE_MAEMO) || defined (SYMBIAN) /* Define this if the OS always use UTF-8 internally */ # define ASSUME_UTF8 1 #endif Hmm... is this really so=?? diff --git a/src/video_output/display.c b/src/video_output/display.c index af73be8..4dbc401 100644 --- a/src/video_output/display.c +++ b/src/video_output/display.c @@ -1210,8 +1210,8 @@ static vout_display_t *DisplayNew(vout_thread_t *vout, cfg_windowed.is_fullscreen = false; cfg_windowed.display.width = 0; cfg_windowed.display.height = 0; - vout_display_GetDefaultDisplaySize(&osys->width_saved, - &osys->height_saved, + vout_display_GetDefaultDisplaySize((unsigned *)&osys->width_saved, + (unsigned *)&osys->height_saved, source_org, &cfg_windowed); Not Symbian specific. Also, this is not the correct way to solve the real problem. Just slap Laurent until he fixes the code :P diff --git a/src/video_output/snapshot.c b/src/video_output/snapshot.c index 0f2c938..c844801 100644 --- a/src/video_output/snapshot.c +++ b/src/video_output/snapshot.c @@ -42,8 +42,11 @@ void vout_snapshot_Init(vout_snapshot_t *snap) { vlc_mutex_init(&snap->lock); +#ifndef SYMBIAN vlc_cond_init(&snap->wait); - +#else + vlc_cond_init(&snap->snapshot_wait); +#endif Renaming the whole thing on all platforms, say to 'wake' or 'cond' would be far simpler and less ugly. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From ivoire at videolan.org Thu Jul 15 20:16:43 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Thu, 15 Jul 2010 20:16:43 +0200 Subject: [vlc-devel] [PATCH] fix build with taglib 1.6 In-Reply-To: References: Message-ID: <20100715181643.GD4631@dinauz.org> Applied with one modification (I prefer to also check for TAGLIB_WITH_MP4) best regards -- R?mi Duraffort | ivoire From rafael.carre at gmail.com Thu Jul 15 23:59:56 2010 From: rafael.carre at gmail.com (=?UTF-8?B?UmFmYcOrbCBDYXJyw6k=?=) Date: Thu, 15 Jul 2010 23:59:56 +0200 Subject: [vlc-devel] Symbian VLC Merge In-Reply-To: References: Message-ID: <20100715235956.41bec96a@kru> On Thu, 15 Jul 2010 09:43:56 +0530 Pankaj yadav wrote: Hi, > From c15dc43e76d85baff057a88b91123b95c7751f52 Mon Sep 17 00:00:00 2001 > From: pk ^^^^^^^^^^^^^^^^^^^^^^^^ Please setup your git correctly for next patches -- ? Rafa?l Carr? ? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: not available URL: From xtophe at chewa.net Fri Jul 16 00:27:41 2010 From: xtophe at chewa.net (Christophe Mutricy) Date: Fri, 16 Jul 2010 00:27:41 +0200 Subject: [vlc-devel] Permission And Help For Translating or Localisation of Marathi Language In-Reply-To: References: Message-ID: <20100715222741.GA27619@chewa.net> Hello, On Fri, Jul 02, 10 at 09:50 +0530, Abhijit Sonavane wrote: > *My Name is Abhijit Sonavane and I am a student studying computer science.* > *as per above subject i saw a videolan.org website and found that there is > no support for marathi language.* > *I want to support VLC by creating a translation for VLC in Marathi. I have > read the instruction on to creating translation.* > *And also I have downloaded the Poedit Software. And next I need for a > translation is a localiztion file so PLS provide me that. you can also > contact me via email or mobile phone(if needed ask for mobile no. via > Email). * > *If possible PLS provide the technical help and assistance to translate.* You can find the file to translate there: http://people.videolan.org/~xtophe/l10n/mr.po You can use poEdit or loKalize to translate. Make sure that you use UTF-8 as encoding. If you have question you can ask them on irc #videolan on irc.freenode.net or on the mailing-list vlc-devel at videolan.org When you have done a part of it you can send it to me or put it online and send us the link. There is a mailing list dedicated to translators. You can subscribe at http://mailman.videolan.org/listinfo/translators Thanks -- Xtophe From frenchgrey at mail.ru Fri Jul 16 08:56:29 2010 From: frenchgrey at mail.ru (Sergey Karapetyan) Date: Fri, 16 Jul 2010 10:56:29 +0400 Subject: [vlc-devel] VLC produces broken AVI files, bugfix needed... Can make donation ~ 40$ Message-ID: Hello, Gyus 1)here is a video file: http://dl.dropbox.com/u/8383371/demo.avi 2)here vlc messages http://dl.dropbox.com/u/8383371/vlc%20messages.txt 3)here vlc run script http://dl.dropbox.com/u/8383371/PPTP-320x240.bat demo.avi open's only in VLC player another players shows error when trying open that file. I need open that file in Avid liquid 7.20 4296 SP1 without rendering. VLC_Help, say try use ffmpeg -i demo.avi -vcodec copy -acodec copy outputdemo.avi http://forum.videolan.org/viewtopic.php?f=14&t=79039 but after i use it: - avid liquid don't understand fixed file like a native *.avi and rendering needed :( - if duration time source file 1 minute after fix it ffmpeg shows 3 or 4 minutes. (this is error...) is it possible fix bug with avi container and do that i can open *.avi (dvsd file) in avid liquid like a native without rendering? i can pay 40$ is it possible? thanks From jmenon86 at gmail.com Fri Jul 16 08:59:25 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Fri, 16 Jul 2010 12:29:25 +0530 Subject: [vlc-devel] VLC produces broken AVI files, bugfix needed... Can make donation ~ 40$ In-Reply-To: References: Message-ID: On Fri, Jul 16, 2010 at 12:26 PM, Sergey Karapetyan wrote: > Hello, Gyus > > 1)here is a video file: > http://dl.dropbox.com/u/8383371/demo.avi > 2)here vlc messages > http://dl.dropbox.com/u/8383371/vlc%20messages.txt > 3)here vlc run script > http://dl.dropbox.com/u/8383371/PPTP-320x240.bat > > demo.avi open's only in VLC player another players shows error when trying open that file. > I need open that file in Avid liquid 7.20 4296 SP1 without rendering. could you try using the avformat mux instead -- Jai Menon From frenchgrey at mail.ru Fri Jul 16 09:08:32 2010 From: frenchgrey at mail.ru (Sergey Karapetyan) Date: Fri, 16 Jul 2010 11:08:32 +0400 Subject: [vlc-devel] =?koi8-r?b?VkxDIHByb2R1Y2VzIGJyb2tlbiBBVkkgZmlsZXMs?= =?koi8-r?b?YnVnZml4IG5lZWRlZC4uLiBDYW4gCW1ha2UgZG9uYXRpb24gfiA0?= =?koi8-r?b?MCQ=?= In-Reply-To: References: Message-ID: Jay, could you explain me please how to use avformat mux? or give me a link to documentation? thanks. From jmenon86 at gmail.com Fri Jul 16 09:25:09 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Fri, 16 Jul 2010 12:55:09 +0530 Subject: [vlc-devel] VLC produces broken AVI files, bugfix needed... Can make donation ~ 40$ In-Reply-To: References: Message-ID: On Fri, Jul 16, 2010 at 12:38 PM, Sergey Karapetyan wrote: > Jay, could you explain me please how to use avformat mux? > or give me a link to documentation? > thanks. it should be as simple as replacing mux=avi with mux=ffmpeg or [access]/avi with [access]/ffmpeg -- Jai Menon From pdherbemont at free.fr Fri Jul 16 09:35:04 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Fri, 16 Jul 2010 09:35:04 +0200 Subject: [vlc-devel] [Patch] Correctly fill out input_item's es info, and slim down input_item_es_t. Message-ID: This is for vlc-master. Because of the previous fiasco with this patch. Please review and merge if you like. Pierre. -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-input-Fill-in-the-input_item-es.patch Type: application/octet-stream Size: 10686 bytes Desc: not available URL: From frenchgrey at mail.ru Fri Jul 16 09:52:45 2010 From: frenchgrey at mail.ru (Sergey Karapetyan) Date: Fri, 16 Jul 2010 11:52:45 +0400 Subject: [vlc-devel] =?koi8-r?b?VkxDIHByb2R1Y2VzIGJyb2tlbiBBVkkgZmlsZXMs?= =?koi8-r?b?YnVnZml4IG5lZWRlZC4uLiBDYW4gCW1ha2UgZG9uYXRpb24gfiA0?= =?koi8-r?b?MCQ=?= In-Reply-To: References: Message-ID: ok, i replace mux=avi -> mux=ffmpeg but now VLC shows errors: Streaming / Transcoding failed: VLC could not open the encoder From jb at videolan.org Fri Jul 16 10:46:55 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Fri, 16 Jul 2010 10:46:55 +0200 Subject: [vlc-devel] GSoC Status In-Reply-To: References: Message-ID: <20100716084655.GA16384@videolan.org> Hello, On Thu, Jul 15, 2010 at 10:01:36AM +0530, Pankaj yadav wrote : > Second patch does not disturb the code and thus I plan to merge it without > preview to all. You should send us this patch too :D At the end, it will go through this mailing list anyway. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From remi at remlab.net Fri Jul 16 10:55:02 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Fri, 16 Jul 2010 10:55:02 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <87bpabqxib.fsf@faui44a.informatik.uni-erlangen.de> References: <201007122154.54917.remi@remlab.net> <3531d4581a3c6378e4d5777c25cf826c@chewa.net> <87bpabqxib.fsf@faui44a.informatik.uni-erlangen.de> Message-ID: On Tue, 13 Jul 2010 10:14:52 -0400, Reinhard Tartler wrote: > On Tue, Jul 13, 2010 at 10:01:13 (EDT), R?mi Denis-Courmont wrote: > >>> Ping maintainers and debian security team. Indicate the security >>> issue, the patch and or new tarball. >> >> It's not like it's not known: >> http://security-tracker.debian.org/tracker/status/release/stable > > it lists 4 CVEs: CVE-2010-1441 - 1445, all of them only affecting the > 0.8 series and without any details. My point was, the Debian Security team already knows about this, since they have put in their tracker. That is all. > So this piece of information is > pretty useless for identifying missing changes in 0.8.x. That's not my problem (anymore). We have made about twenty releases, from four different branches since Debian Stable has last updated. The VideoLAN does not have the resources to maintain four branches at a time. But, in fact, that is irrelevant because Debian does _not_ follow our updates anyway. Otherwise they would at least have 0.8.6i. So keeping the 0.8-bugfix branch alive would have been a pure waste of time. I am not aware of any entity (in general) following any of the older branches, 0.8, 0.9 and 1.0. I only know: - entities not updating (at all), and - entities following the very latest version. And indeed, polls for interested parties in maintaining each of the older branches have all been left without answers this far. Canonical puts VLC in universe, wash their hands as far support is concerned. But Debian pretends to support VLC except it does not. (...) >> It's more like nobody cares. > > I dont't think that's accurate. I'd rather guess that there is no one > in the distro camp that knows how to match these 5 issues to patches > that fix them. Maybe people care but don't have time. But they why pretend that VLC is supported (in Debian stable)? -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From ileoo at videolan.org Fri Jul 16 09:59:53 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Fri, 16 Jul 2010 10:59:53 +0300 Subject: [vlc-devel] VLC produces broken AVI files, bugfix needed... Can make donation ~ 40$ In-Reply-To: References: Message-ID: <20100716075953.GF3874@linux-3azp> On Fri, Jul 16, 2010 at 12:55:09PM +0530, Jai Menon wrote: > On Fri, Jul 16, 2010 at 12:38 PM, Sergey Karapetyan wrote: > > Jay, could you explain me please how to use avformat mux? > > or give me a link to documentation? > > thanks. > it should be as simple as replacing mux=avi with mux=ffmpeg or > [access]/avi with [access]/ffmpeg Actually syntax is more like mux=avi -> mux=ffmpeg{mux=avi} -- Ilkka Ollakka Man is a rational animal who always loses his temper when he is called upon to act in accordance with the dictates of reason. -- Oscar Wilde -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From jmenon86 at gmail.com Fri Jul 16 11:39:47 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Fri, 16 Jul 2010 15:09:47 +0530 Subject: [vlc-devel] VLC produces broken AVI files, bugfix needed... Can make donation ~ 40$ In-Reply-To: <20100716075953.GF3874@linux-3azp> References: <20100716075953.GF3874@linux-3azp> Message-ID: On Fri, Jul 16, 2010 at 1:29 PM, Ilkka Ollakka wrote: > On Fri, Jul 16, 2010 at 12:55:09PM +0530, Jai Menon wrote: >> On Fri, Jul 16, 2010 at 12:38 PM, Sergey Karapetyan wrote: >> > Jay, could you explain me please how to use avformat mux? >> > or give me a link to documentation? >> > thanks. > >> it should be as simple as replacing mux=avi with mux=ffmpeg or >> [access]/avi with [access]/ffmpeg > > Actually syntax is more like mux=avi -> mux=ffmpeg{mux=avi} is that really needed? assuming the extension is set correctly. -- Jai Menon From ileoo at videolan.org Fri Jul 16 11:44:16 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Fri, 16 Jul 2010 12:44:16 +0300 Subject: [vlc-devel] VLC produces broken AVI files, bugfix needed... Can make donation ~ 40$ In-Reply-To: References: <20100716075953.GF3874@linux-3azp> Message-ID: <20100716094415.GA4905@linux-3azp> On Fri, Jul 16, 2010 at 03:09:47PM +0530, Jai Menon wrote: > On Fri, Jul 16, 2010 at 1:29 PM, Ilkka Ollakka wrote: > > On Fri, Jul 16, 2010 at 12:55:09PM +0530, Jai Menon wrote: > >> On Fri, Jul 16, 2010 at 12:38 PM, Sergey Karapetyan wrote: > >> > Jay, could you explain me please how to use avformat mux? > >> > or give me a link to documentation? > >> > thanks. > >> it should be as simple as replacing mux=avi with mux=ffmpeg or > >> [access]/avi with [access]/ffmpeg > > Actually syntax is more like mux=avi -> mux=ffmpeg{mux=avi} > is that really needed? assuming the extension is set correctly. Our standard extension-matching uses our native avi-muxer, and there isn't currently code to do generic 'try extension as muxer', just predefined list in modules/stream_output/standard.c:243 -- Ilkka Ollakka You are only young once, but you can stay immature indefinitely. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From pankajdnapster at gmail.com Fri Jul 16 12:39:38 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Fri, 16 Jul 2010 16:09:38 +0530 Subject: [vlc-devel] GSoC Status In-Reply-To: <20100716084655.GA16384@videolan.org> References: <20100716084655.GA16384@videolan.org> Message-ID: On Fri, Jul 16, 2010 at 2:16 PM, Jean-Baptiste Kempf wrote: > Hello, > > On Thu, Jul 15, 2010 at 10:01:36AM +0530, Pankaj yadav wrote : > > Second patch does not disturb the code and thus I plan to merge it > without > > preview to all. > You should send us this patch too :D > > At the end, it will go through this mailing list anyway. > > Ok then i will send both of them after making some corrections suggested by courmisch. the second patch is around 2 MB.Be prepaired :) > > Best Regards, > > -- > Jean-Baptiste Kempf > http://www.jbkempf.com/ > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: From frenchgrey at mail.ru Fri Jul 16 13:06:16 2010 From: frenchgrey at mail.ru (Sergey Karapetyan) Date: Fri, 16 Jul 2010 15:06:16 +0400 Subject: [vlc-devel] =?koi8-r?b?VkxDIHByb2R1Y2VzIGJyb2tlbiBBVkkgZmlsZXMs?= =?koi8-r?b?YnVnZml4IG5lZWRlZC4uLiBDYW4gCW1ha2UgZG9uYXRpb24gfiA0?= =?koi8-r?b?MCQ=?= In-Reply-To: <20100716094415.GA4905@linux-3azp> References: <20100716094415.GA4905@linux-3azp> Message-ID: i try "C:\Program Files\VideoLAN\VLC\vlc.exe" dshow:// :dshow-vdev="HD Video WebCam" :aspect-ratio=16x9 :sout=#duplicate{dst={transcode{vcodec=h264,deinterlace,vb=280,width=320,height=240,fps=20,scale=1,acodec=none}:std{access=http,mux=ts,dst=xx.xx.xx.xx:6666,ttl=200}},dst={transcode{vcodec=dvsd}:std{access=file,mux=ffmpeg{mux=avi},dst=C:\\outputvideo\\1.avi}} have same error From jb at videolan.org Fri Jul 16 13:09:41 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Fri, 16 Jul 2010 13:09:41 +0200 Subject: [vlc-devel] GSoC Status In-Reply-To: References: <20100716084655.GA16384@videolan.org> Message-ID: <20100716110941.GA12881@videolan.org> On Fri, Jul 16, 2010 at 04:09:38PM +0530, Pankaj yadav wrote : > the second patch is around 2 MB.Be prepaired :) Can you split it? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From juhovh at iki.fi Fri Jul 16 13:50:51 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Fri, 16 Jul 2010 14:50:51 +0300 Subject: [vlc-devel] [PATCH 1/3] asf: Fix packet length handling to be correct Message-ID: <1279281053-27833-1-git-send-email-juhovh@iki.fi> --- modules/demux/asf/asf.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/demux/asf/asf.c b/modules/demux/asf/asf.c index e408296..9294d22 100644 --- a/modules/demux/asf/asf.c +++ b/modules/demux/asf/asf.c @@ -466,11 +466,17 @@ static int DemuxPacket( demux_t *p_demux ) goto loop_error_recovery; } + if( i_packet_length < i_data_packet_min ) + { + /* if packet length too short, there is extra padding */ + i_packet_padding_length += i_data_packet_min - i_packet_length; + i_packet_length = i_data_packet_min; + } + i_packet_send_time = GetDWLE( p_peek + i_skip ); i_skip += 4; i_packet_duration = GetWLE( p_peek + i_skip ); i_skip += 2; - /* FIXME I have to do that for some file, I don't known why */ - i_packet_size_left = i_data_packet_min /*i_packet_length*/ ; + i_packet_size_left = i_packet_length; if( b_packet_multiple_payload ) { -- 1.7.0.4 From juhovh at iki.fi Fri Jul 16 13:50:53 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Fri, 16 Jul 2010 14:50:53 +0300 Subject: [vlc-devel] [PATCH 3/3] input: With multiple video streams, select only one In-Reply-To: <1279281053-27833-1-git-send-email-juhovh@iki.fi> References: <1279281053-27833-1-git-send-email-juhovh@iki.fi> Message-ID: <1279281053-27833-3-git-send-email-juhovh@iki.fi> --- src/input/es_out.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/src/input/es_out.c b/src/input/es_out.c index a45f021..1b6f89c 100644 --- a/src/input/es_out.c +++ b/src/input/es_out.c @@ -1870,7 +1870,11 @@ static void EsOutSelect( es_out_t *out, es_out_id_t *es, bool b_force ) } else if( i_cat == VIDEO_ES ) { - i_wanted = es->i_channel; + /* FIXME there should be video priorities used for selection */ + if( !p_sys->p_es_video ) + { + i_wanted = es->i_channel; + } } if( i_wanted == es->i_channel && !EsIsSelected( es ) ) -- 1.7.0.4 From juhovh at iki.fi Fri Jul 16 13:50:52 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Fri, 16 Jul 2010 14:50:52 +0300 Subject: [vlc-devel] [PATCH 2/3] asf: Fix WLE->DWLE in codec list object parsing In-Reply-To: <1279281053-27833-1-git-send-email-juhovh@iki.fi> References: <1279281053-27833-1-git-send-email-juhovh@iki.fi> Message-ID: <1279281053-27833-2-git-send-email-juhovh@iki.fi> --- modules/demux/asf/libasf.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/modules/demux/asf/libasf.c b/modules/demux/asf/libasf.c index 803c849..28b6469 100644 --- a/modules/demux/asf/libasf.c +++ b/modules/demux/asf/libasf.c @@ -655,7 +655,7 @@ static int ASF_ReadObject_codec_list( stream_t *s, asf_object_t *p_obj ) return VLC_EGENERIC; ASF_GetGUID( &p_cl->i_reserved, p_peek + 24 ); - p_cl->i_codec_entries_count = GetWLE( p_peek + 40 ); + p_cl->i_codec_entries_count = GetDWLE( p_peek + 40 ); p_data = p_peek + 44; -- 1.7.0.4 From remi at remlab.net Fri Jul 16 14:49:35 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Fri, 16 Jul 2010 14:49:35 +0200 Subject: [vlc-devel] [PATCH 3/3] input: With multiple video streams, select only one In-Reply-To: <1279281053-27833-3-git-send-email-juhovh@iki.fi> References: <1279281053-27833-1-git-send-email-juhovh@iki.fi> <1279281053-27833-3-git-send-email-juhovh@iki.fi> Message-ID: On Fri, 16 Jul 2010 14:50:53 +0300, Juho V?h?-Herttua wrote: > --- > src/input/es_out.c | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/src/input/es_out.c b/src/input/es_out.c > index a45f021..1b6f89c 100644 > --- a/src/input/es_out.c > +++ b/src/input/es_out.c > @@ -1870,7 +1870,11 @@ static void EsOutSelect( es_out_t *out, es_out_id_t > *es, bool b_force ) > } > else if( i_cat == VIDEO_ES ) > { > - i_wanted = es->i_channel; > + /* FIXME there should be video priorities used for selection > */ > + if( !p_sys->p_es_video ) > + { > + i_wanted = es->i_channel; > + } That's a radical semantic change... Not sure it is such a great idea... -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Fri Jul 16 18:08:57 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Fri, 16 Jul 2010 18:08:57 +0200 Subject: [vlc-devel] [vlc-commits] commit: Wince: do not fail if locale/ is missing (Jean-Baptiste Kempf ) In-Reply-To: <20100716153603.47934107753@albiero.videolan.org> References: <20100716153603.47934107753@albiero.videolan.org> Message-ID: <55d47122a5b13ff516a084b7625280ea@chewa.net> On Fri, 16 Jul 2010 17:36:03 +0200 (CEST), git at videolan.org wrote: > - cp -r $(destdir)/share/locale $(win32_destdir) > + cp -r $(destdir)/share/locale $(win32_destdir) || true IMHO, this would have been more Make-ish: > + -cp -r -- "$(destdir)/share/locale" "$(win32_destdir)" -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From juhovh at gmail.com Fri Jul 16 19:48:15 2010 From: juhovh at gmail.com (=?ISO-8859-1?Q?Juho_V=E4h=E4=2DHerttua?=) Date: Fri, 16 Jul 2010 20:48:15 +0300 Subject: [vlc-devel] [PATCH 3/3] input: With multiple video streams, select only one In-Reply-To: References: <1279281053-27833-1-git-send-email-juhovh@iki.fi> <1279281053-27833-3-git-send-email-juhovh@iki.fi> Message-ID: 2010/7/16 R?mi Denis-Courmont > That's a radical semantic change... Not sure it is such a great idea... > I'll take that patch back for a while, since as Laurent mentioned on IRC the current mms plugin depends on having all video streams selected. I think it's a good discussion opener though. Better approach that would solve the ASF+MMS problem is to first signal MMS plugin every time a track is selected or unselected and it would signal the server accordingly. This would fix the bug #3797, but it doesn't remove the main problem though, which is that video streams should be selectable. (bug #3796) Currently if there are several video streams in a file, the GUI lets user select the wanted video track, but it has no effect whatsoever on the actual output. All video tracks are played in different windows anyway. What makes this worse is that with X11 and XVideo output only one of the windows can be accelerated, which causes a rather long delay and a lot of "open->close->open window" behavior, when the player is probing for each stream if XVideo can be used or not. To make it short, that patch shouldn't be merged now. But after the MMS is fixed to work properly, I think there should be video ES selection as well, radical or not. Juho -------------- next part -------------- An HTML attachment was scrubbed... URL: From jb at videolan.org Fri Jul 16 21:43:20 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Fri, 16 Jul 2010 21:43:20 +0200 Subject: [vlc-devel] [vlc-commits] commit: Wince: do not fail if locale/ is missing (Jean-Baptiste Kempf ) In-Reply-To: <55d47122a5b13ff516a084b7625280ea@chewa.net> References: <20100716153603.47934107753@albiero.videolan.org> <55d47122a5b13ff516a084b7625280ea@chewa.net> Message-ID: <20100716194320.GA14329@videolan.org> Hello, On Fri, Jul 16, 2010 at 06:08:57PM +0200, R?mi Denis-Courmont wrote : > IMHO, this would have been more Make-ish: > > > + -cp -r -- "$(destdir)/share/locale" "$(win32_destdir)" Thanks for the hint, I didn't know that syntax. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From remi at remlab.net Fri Jul 16 23:06:40 2010 From: remi at remlab.net (=?ISO-8859-1?Q?R=E9mi?= Denis-Courmont) Date: Sat, 17 Jul 2010 00:06:40 +0300 Subject: [vlc-devel] [PATCH 3/3] input: With multiple video streams, select only one In-Reply-To: References: <1279281053-27833-1-git-send-email-juhovh@iki.fi> <1279281053-27833-3-git-send-email-juhovh@iki.fi> Message-ID: <1279314400.8509.5.camel@Nokia-N900-51-1> ----- Message d'origine ----- > Currently if there are several video streams in a file, the GUI lets user > select the wanted video track, but it has no effect whatsoever on the actual > output. All video tracks are played in different windows anyway. What makes > this worse is that with X11 and XVideo output only one of the windows can be > accelerated, which causes a rather long delay and a lot of > "open->close->open window" behavior, when the player is probing for each > stream if XVideo can be used or not. That is totally untrue. Most GPUs provide more than one XV "port". From david.glaude at gmail.com Sat Jul 17 10:49:47 2010 From: david.glaude at gmail.com (David Glaude) Date: Sat, 17 Jul 2010 10:49:47 +0200 Subject: [vlc-devel] [PATCH 3/3] input: With multiple video streams, select only one In-Reply-To: References: <1279281053-27833-1-git-send-email-juhovh@iki.fi> <1279281053-27833-3-git-send-email-juhovh@iki.fi> Message-ID: 2010/7/16 Juho V?h?-Herttua > Currently if there are several video streams in a file, the GUI lets user > select the wanted video track, but it has no effect whatsoever on the actual > output. All video tracks are played in different windows anyway. What makes > this worse is that with X11 and XVideo output only one of the windows can be > accelerated, which causes a rather long delay and a lot of > "open->close->open window" behavior, when the player is probing for each > stream if XVideo can be used or not. > For the record, this behaviour of opening all video tracks is not specific to opening local ASF files. VLC does exactly the same thing with properly formated 3GPP file with multiple video track and the exclusion information. I might have to add an other ticket in track for the 3GPP version of the problem. I just want to make sure it is clear that beyond the ASF bug, there is something missing in the GUI to properly handle multiple video track. David Glaude PS: At first, I was told that it was a feature for VLC to open every video track... but when it was clear that there were excluding information in the file, then it became a bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jb at videolan.org Sat Jul 17 14:47:25 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sat, 17 Jul 2010 14:47:25 +0200 Subject: [vlc-devel] [PATCH 1/3] Qt: sprefs_input fix layout In-Reply-To: <1279124974-30083-1-git-send-email-fcvlcdev@free.fr> References: <1279124974-30083-1-git-send-email-fcvlcdev@free.fr> Message-ID: <20100717124725.GA10152@videolan.org> On Wed, Jul 14, 2010 at 06:29:32PM +0200, Francois Cartegnie wrote : > modules/gui/qt4/ui/sprefs_input.ui | 72 +++++++++++++++++++++++++++-------- Applied. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sat Jul 17 14:48:20 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sat, 17 Jul 2010 14:48:20 +0200 Subject: [vlc-devel] [PATCH 2/3] Qt: sprefs_subtitles fix layout In-Reply-To: <1279124974-30083-2-git-send-email-fcvlcdev@free.fr> References: <1279124974-30083-1-git-send-email-fcvlcdev@free.fr> <1279124974-30083-2-git-send-email-fcvlcdev@free.fr> Message-ID: <20100717124820.GB10152@videolan.org> On Wed, Jul 14, 2010 at 06:29:33PM +0200, Francois Cartegnie wrote : > modules/gui/qt4/ui/sprefs_subtitles.ui | 42 ++++++++++++++++++++++++++++++++ Applied. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sat Jul 17 14:50:44 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sat, 17 Jul 2010 14:50:44 +0200 Subject: [vlc-devel] [PATCH 3/3] Qt: video_effects fix logo ui In-Reply-To: <1279124974-30083-3-git-send-email-fcvlcdev@free.fr> References: <1279124974-30083-1-git-send-email-fcvlcdev@free.fr> <1279124974-30083-3-git-send-email-fcvlcdev@free.fr> Message-ID: <20100717125044.GA10705@videolan.org> On Wed, Jul 14, 2010 at 06:29:34PM +0200, Francois Cartegnie wrote : > modules/gui/qt4/ui/video_effects.ui | 183 +++++++++++++++++++++++++++++------ Applied. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sat Jul 17 14:54:15 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sat, 17 Jul 2010 14:54:15 +0200 Subject: [vlc-devel] [PATCH 1/3] asf: Fix packet length handling to be correct In-Reply-To: <1279281053-27833-1-git-send-email-juhovh@iki.fi> References: <1279281053-27833-1-git-send-email-juhovh@iki.fi> Message-ID: <20100717125415.GB10705@videolan.org> On Fri, Jul 16, 2010 at 02:50:51PM +0300, Juho V?h?-Herttua wrote : > modules/demux/asf/asf.c | 10 ++++++++-- Applied. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sat Jul 17 14:58:05 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sat, 17 Jul 2010 14:58:05 +0200 Subject: [vlc-devel] [PATCH 2/3] asf: Fix WLE->DWLE in codec list object parsing In-Reply-To: <1279281053-27833-2-git-send-email-juhovh@iki.fi> References: <1279281053-27833-1-git-send-email-juhovh@iki.fi> <1279281053-27833-2-git-send-email-juhovh@iki.fi> Message-ID: <20100717125805.GC10705@videolan.org> On Fri, Jul 16, 2010 at 02:50:52PM +0300, Juho V?h?-Herttua wrote : > modules/demux/asf/libasf.c | 2 +- Applied. MS specification agrees with you. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sat Jul 17 15:07:20 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sat, 17 Jul 2010 15:07:20 +0200 Subject: [vlc-devel] Patch to qt4/main_interface.cpp In-Reply-To: <4C3A2B3D.2080404@netcom.com> References: <4C3A2B3D.2080404@netcom.com> Message-ID: <20100717130720.GA13484@videolan.org> 'lo, On Sun, Jul 11, 2010 at 01:36:13PM -0700, Richard Hitt wrote : > tune. The display time had been 3 sec, annoyingly short; I barely notice 10 sec is definitively too long... 5? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From pankajdnapster at gmail.com Sat Jul 17 15:07:23 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Sat, 17 Jul 2010 18:37:23 +0530 Subject: [vlc-devel] [PATCH] Some platforms may have macros optind optarg and optopt so we dont use them as names of our variables Message-ID: [PATCH] Some platforms may have macros optind optarg and optopt so we dont use them as names of our variables -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Some-platforms-may-have-macros-optind-optarg-and-opt.patch Type: text/x-patch Size: 17317 bytes Desc: not available URL: From remi at remlab.net Sat Jul 17 15:14:58 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 17 Jul 2010 16:14:58 +0300 Subject: [vlc-devel] [PATCH] Some platforms may have macros optind optarg and optopt so we dont use them as names of our variables In-Reply-To: References: Message-ID: <201007171614.58859.remi@remlab.net> Le samedi 17 juillet 2010 16:07:23 Pankaj yadav, vous avez ?crit : > [PATCH] Some platforms may have macros optind optarg and optopt so we dont > use them as names of our variables Merged, thanks. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From pankajdnapster at gmail.com Sat Jul 17 15:21:59 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Sat, 17 Jul 2010 18:51:59 +0530 Subject: [vlc-devel] [PATCH 2/2] All other Interfaces already moved on.Only my oldrc was left :) Message-ID: Find_aout() or something like that needs p_playlist instead of p_intf.All other interfaces already modified this.RC interface has to be patched. -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-All-other-Interfaces-already-moved-on.Only-my-oldrc-.patch Type: text/x-patch Size: 1063 bytes Desc: not available URL: From remi at remlab.net Sat Jul 17 15:34:30 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 17 Jul 2010 16:34:30 +0300 Subject: [vlc-devel] [PATCH 2/2] All other Interfaces already moved on.Only my oldrc was left :) In-Reply-To: References: Message-ID: <201007171634.31113.remi@remlab.net> Le samedi 17 juillet 2010 16:21:59 Pankaj yadav, vous avez ?crit : > Find_aout() or something like that needs p_playlist instead of p_intf.All > other interfaces already modified this.RC interface has to be patched. Merged, thanks. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From pankajdnapster at gmail.com Sat Jul 17 16:20:23 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Sat, 17 Jul 2010 19:50:23 +0530 Subject: [vlc-devel] [PATCH] There may be macros named "wait". Message-ID: There may be macros named "wait". -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-There-may-be-macros-named-wait.patch Type: text/x-patch Size: 2190 bytes Desc: not available URL: From fenrir at elivagar.org Sat Jul 17 16:34:04 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Sat, 17 Jul 2010 16:34:04 +0200 Subject: [vlc-devel] [PATCH] There may be macros named "wait". In-Reply-To: References: Message-ID: <20100717143404.GA20057@elivagar.org> Hi, On Sat, Jul 17, 2010 at 07:50:23PM +0530, Pankaj yadav wrote: > There may be macros named "wait". 'wait' is used in a way lot more place than simply src/video_output/snapshot.c and as it is a pretty good name, it will be hard to maintain. Is it possible to add a "#undef wait" line in vlc_fixups.h (or another header if this one is not suitable) ? Regards, -- fenrir From remi at remlab.net Sat Jul 17 17:55:51 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sat, 17 Jul 2010 18:55:51 +0300 Subject: [vlc-devel] [PATCH] There may be macros named "wait". In-Reply-To: <20100717143404.GA20057@elivagar.org> References: <20100717143404.GA20057@elivagar.org> Message-ID: <201007171855.51557.remi@remlab.net> Le samedi 17 juillet 2010 17:34:04 Laurent Aimar, vous avez ?crit : > Hi, > > On Sat, Jul 17, 2010 at 07:50:23PM +0530, Pankaj yadav wrote: > > There may be macros named "wait". > > 'wait' is used in a way lot more place than simply As far as I can tell, POSIX reserves the 'wait' identifier. I am not sure identifiers reservation applies to structure members. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From fcvlcdev at free.fr Sat Jul 17 20:20:39 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Sat, 17 Jul 2010 20:20:39 +0200 Subject: [vlc-devel] [PATCH] luascripts: add pluzz.fr Message-ID: <1279390839-18160-1-git-send-email-fcvlcdev@free.fr> --- share/lua/playlist/pluzz.lua | 108 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 108 insertions(+), 0 deletions(-) create mode 100644 share/lua/playlist/pluzz.lua diff --git a/share/lua/playlist/pluzz.lua b/share/lua/playlist/pluzz.lua new file mode 100644 index 0000000..9bdcef4 --- /dev/null +++ b/share/lua/playlist/pluzz.lua @@ -0,0 +1,108 @@ +--[[ + Extracts video URL from Pluzz.fr video pages. + + $Id$ + + Copyright ?? 2008 the VideoLAN team + + 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 + (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. + + 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. +--]] + +-- Probe function. +function probe() + return vlc.access == "http" + and ( + string.match( vlc.path, "www.pluzz.fr" ) + or + string.match( vlc.path, "info.francetelevisions.fr" ) + ) +end + +-- Parse function. +function parse() + +-- the video's html page + if string.match( vlc.path, "www.pluzz.fr" ) then + while true + do + line = vlc.readline() + if not line then break end + + if string.match( line, " id=\"current_video\" " ) + then + _,_,path = string.find( line, " href=\"(.-)\" " ) + if path then + vlc.msg.dbg( "redirecting to resource " .. path ) + return { { path = "http://" .. path } } + else + vlc.msg.warn( "video resource url not found" ) + return { } + end + end + end + end + +-- the video's second html resource file + if string.match( vlc.path, "info.francetelevisions.fr" ) then + while true + do + line = vlc.readline() + if not line then break end + + if string.match( line, " name=\"urls%-url%-video\" " ) + then + _,_,path = string.find( line, " content=\"(.-)\"" ) + if path then + path = string.gsub(path, "geoloc/", "") + path = "mms://videozones.francetv.fr/" .. path + vlc.msg.dbg( "video url found " .. path ) + else + vlc.msg.warn( "video url not found" ) + return { } + end + end + + if string.match( line, " name=\"vignette%-titre%-court\" " ) + then + _,_,name = string.find( line, " content=\"(.-)\"" ) + name = vlc.strings.resolve_xml_special_chars( name ) + end + + if string.match( line, " name=\"description\" " ) + then + _,_,description = string.find( line, " content=\"(.-)\"" ) + description = vlc.strings.resolve_xml_special_chars( description ) + end + + if string.match( line, " name=\"vignette\" " ) + then + _,_,arturl = string.find( line, " content=\"(.-)\"" ) + if arturl then + arturl = "http://info.francetelevisions.fr" .. arturl + end + end + + if string.match( line, " name=\"vignette%-duree\" " ) + then + _,_,duration = string.find( line, " content=\"(.-)\"" ) + end + end + + return { { path = path; name = name; arturl = arturl; duration = duration; description = description } } + end + + vlc.msg.warn( "video resource parsing failed" ) + return { } +end -- 1.6.4.4 From mans at mansr.com Sat Jul 17 22:27:34 2010 From: mans at mansr.com (=?iso-8859-1?Q?M=E5ns_Rullg=E5rd?=) Date: Sat, 17 Jul 2010 21:27:34 +0100 Subject: [vlc-devel] [PATCH] There may be macros named "wait". References: <20100717143404.GA20057@elivagar.org> <201007171855.51557.remi@remlab.net> Message-ID: "R?mi Denis-Courmont" writes: > Le samedi 17 juillet 2010 17:34:04 Laurent Aimar, vous avez ?crit : >> Hi, >> >> On Sat, Jul 17, 2010 at 07:50:23PM +0530, Pankaj yadav wrote: >> > There may be macros named "wait". >> >> 'wait' is used in a way lot more place than simply > > As far as I can tell, POSIX reserves the 'wait' identifier. Only if the sys/wait.h header is included, and then only as a function, not a macro. > I am not sure identifiers reservation applies to structure members. Sometimes they do. For example, object-like macros obviously apply to everything. -- M?ns Rullg?rd mans at mansr.com From rohityadav89 at gmail.com Sat Jul 17 23:11:36 2010 From: rohityadav89 at gmail.com (Rohit Yadav) Date: Sat, 17 Jul 2010 23:11:36 +0200 Subject: [vlc-devel] VLC Mini Mode Controller Message-ID: Hello everyone, All most every popular media player has a mini-player mode but VLC; attached are few patches that implement a new Qt widget that implements such a mode :) *sigh* I've implemented an option in settings (so user has control to enable it or not...) which is set "true" by default. Whenever a user clicks the systray-icon, it will toggle between the main interface and the mini-mode controller; and when a user clicks the VLC *white* cone on the mini-mode widget, it hides itself and shows up the main interface. (Tested to work fine on Ubuntu Linux) Screenshot: http://rohityadav.in/projects/vlc/screenshots/mm-2010-2.png Cheers, Rohit Yadav -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Mini-Mode-Controller-for-VLC.patch Type: application/octet-stream Size: 16437 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Add-option-to-enable-disable-mini-mode-controller-vi.patch Type: application/octet-stream Size: 2816 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Add-new-mini-mode-pixmaps-and-file-paths-to-qt-resou.patch Type: application/octet-stream Size: 9192 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0004-Check-settings-and-create-mini-mode-widget.patch Type: application/octet-stream Size: 4572 bytes Desc: not available URL: From jb at videolan.org Sat Jul 17 23:21:38 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sat, 17 Jul 2010 23:21:38 +0200 Subject: [vlc-devel] VLC Mini Mode Controller In-Reply-To: References: Message-ID: <20100717212138.GA9648@videolan.org> On Sat, Jul 17, 2010 at 11:11:36PM +0200, Rohit Yadav wrote : Patch 1: - this code should be in a separate file. Patch 2: - ok-ish Patch 3: - ok Patch 4: - I am not too sure about this.... Shouldn't this mini-widget replace the systray menu? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sun Jul 18 00:03:01 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 00:03:01 +0200 Subject: [vlc-devel] [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. In-Reply-To: References: Message-ID: <20100717220301.GA15089@videolan.org> On Sat, Jul 10, 2010 at 03:51:36PM +0300, Daniel Tisza wrote : > Attached the new independent patch. > + unsigned int i; > + for ( i = 0; i < sizeof( rtmpdump_pars ) / sizeof( rtmpdump_param ); i++ ) You can use for ( unsigned int i = 0 ; .... > + p_sys->p_rtmp = RTMP_Alloc(); > + if ( !p_sys->p_rtmp ) return VLC_EGENERIC; VLC_ENOMEM maybe? Any other opinions on this patch? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From rohityadav89 at gmail.com Sun Jul 18 00:19:16 2010 From: rohityadav89 at gmail.com (Rohit Yadav) Date: Sun, 18 Jul 2010 00:19:16 +0200 Subject: [vlc-devel] VLC Mini Mode Controller In-Reply-To: References: Message-ID: Here are the new patches... In addition, if someone does n't want to build with the CSS, just disable the *USE_CSS in minimode.hpp file (But, CSS makes it cool...) Best Regards, Rohit Yadav -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Add-new-mini-mode-pixmaps-and-file-paths-to-qt-resou.patch Type: application/octet-stream Size: 9192 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Check-settings-and-create-mini-mode-widget.patch Type: application/octet-stream Size: 4572 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Mini-Mode-Controller-for-VLC.patch Type: application/octet-stream Size: 17599 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0004-add-minimode.hpp-includes-in-main_interface.patch Type: application/octet-stream Size: 884 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0005-Add-new-minimode-cpp-hpp-files-and-pixmaps.patch Type: application/octet-stream Size: 1794 bytes Desc: not available URL: From remi at remlab.net Sun Jul 18 00:26:48 2010 From: remi at remlab.net (=?UTF-8?q?R=C3=A9mi=20Denis-Courmont?=) Date: Sun, 18 Jul 2010 01:26:48 +0300 Subject: [vlc-devel] [PATCH 1/1] Prevent loading KDE plugins for Qt4 Message-ID: <1279405608-29349-1-git-send-email-remi@remlab.net> The KDE I/O library has some static C++ objects. Their destructor hook into the atexit() procedures, and crashes VLC all the time. This is filed as KDE bug #234484. But somewhat expectedly, nobody seems to care on the KDE side (VLC not being a KDE application, I guess). This patch simply makes dlopen() fail to load KDE plugins. Unfortunately, VLC then looks rather ugly inside KDE. This patch is already in the 1.1-bugfix branch. Fixes: LP#408719, Debian #580396. --- bin/override.c | 11 +++++++++++ bin/vlc.c | 9 --------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/bin/override.c b/bin/override.c index 02402d5..e19ed2b 100644 --- a/bin/override.c +++ b/bin/override.c @@ -280,6 +280,17 @@ int (*XSetIOErrorHandler (int (*handler) (Display *))) (Display *) return CALL(XSetIOErrorHandler, handler); } #endif + +/*** Buggy shared objects ***/ +#include + +void *dlopen (const char *path, int flag) +{ + if (strstr (path, "/gui_platform/libkde.so")) + return NULL; /* Oh no, not that one! */ + return CALL(dlopen, path, flag); +} + #else void vlc_enable_override (void) { diff --git a/bin/vlc.c b/bin/vlc.c index ab421f0..5b2259d 100644 --- a/bin/vlc.c +++ b/bin/vlc.c @@ -199,14 +199,5 @@ int main( int i_argc, const char *ppsz_argv[] ) for (int i = 2; i < argc; i++) LocaleFree (argv[i]); -#ifdef RTLD_NOLOAD - /* Avoid crash in KIO scheduler cleanup. */ - /* This is ugly, but we get way too many crash reports due to this. */ - if (dlopen ("libkfilemodule.so", RTLD_LAZY|RTLD_LOCAL|RTLD_NOLOAD) != NULL) - { - fprintf (stderr, "KFile plugin present. Unclean shutdown!\n"); - _exit (0); - } -#endif return 0; } -- 1.7.1 From remi at remlab.net Sun Jul 18 00:32:06 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sun, 18 Jul 2010 01:32:06 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5BPATCH=5D_Integrate_the_RTMPdump_lib?= =?iso-8859-1?q?rary_to_play=09rtmp_and_rtmpe_streams=2E?= In-Reply-To: <20100717220301.GA15089@videolan.org> References: <20100717220301.GA15089@videolan.org> Message-ID: <201007180132.07333.remi@remlab.net> Le dimanche 18 juillet 2010 01:03:01 Jean-Baptiste Kempf, vous avez ?crit : > Any other opinions on this patch? I still don't understand why this requires a new Makefile directory and three separate source code files. I am all for keeping files small, but... And then, it seems that the rtmpdump is mindboggingly broken by design as it uses white spaces in URL. I doubt that can work inside VLC. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From rohityadav89 at gmail.com Sun Jul 18 00:37:40 2010 From: rohityadav89 at gmail.com (Rohit Yadav) Date: Sun, 18 Jul 2010 00:37:40 +0200 Subject: [vlc-devel] VLC Mini Mode Controller In-Reply-To: References: Message-ID: Patches 2 and 4 merged into one... thanks... On Sun, Jul 18, 2010 at 12:19 AM, Rohit Yadav wrote: > Here are the new patches... > > In addition, if someone does n't want to build with the CSS, just disable > the *USE_CSS in minimode.hpp file > (But, CSS makes it cool...) > > Best Regards, > Rohit Yadav > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Check-settings-and-create-minimode-widget.patch Type: application/octet-stream Size: 4928 bytes Desc: not available URL: From man40dev at gmail.com Sun Jul 18 05:23:54 2010 From: man40dev at gmail.com (Manol Manolov) Date: Sat, 17 Jul 2010 23:23:54 -0400 Subject: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 Message-ID: <000601cb2628$a7bfbfe0$f73f3fa0$@com> Hello, This is my first patch, so please tell me if I do something wrong. Add US cable HD television support. I believe it will work only on Win 7. Preserved the old functionality of BDA, also made it to work under Win 7. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Add-support-for-Clear-QAM.patch Type: application/octet-stream Size: 12956 bytes Desc: not available URL: From jb at videolan.org Sun Jul 18 11:10:27 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 11:10:27 +0200 Subject: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 In-Reply-To: <000601cb2628$a7bfbfe0$f73f3fa0$@com> References: <000601cb2628$a7bfbfe0$f73f3fa0$@com> Message-ID: <20100718091027.GA10919@videolan.org> On Sat, Jul 17, 2010 at 11:23:54PM -0400, Manol Manolov wrote : > This is my first patch, so please tell me if I do something wrong. var_GetInteger returns int64, IIRC, and you are silently casting them to long (int32 on Win*). Normal? Else, it looks pretty fine if tested. > Add US cable HD television support. I believe it will work only on Win 7. Cool, do you have a MRL to play this back? > Preserved the old functionality of BDA, also made it to work under Win 7. Can you detail? Should we adapt the UI too ? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From d at vidblishen.com Sun Jul 18 12:42:40 2010 From: d at vidblishen.com (David Blishen) Date: Sun, 18 Jul 2010 11:42:40 +0100 Subject: [vlc-devel] Problems with libmodplug when compiling VLC 1.1 on Mac OS X Message-ID: <699DF9AD-8644-41B8-81C4-C9859FD72454@vidblishen.com> Hello, I've been working on a small app using VLCKit. I've never actually successfully built VLCKit, so the framework I am using at the moments was copied from inside the latest Lunettes.app. I'd like to update my VLCKit to the latest so I am having another go at building VLC and VLCKit. I am trying to follow http://wiki.videolan.org/OSXCompile, but having some trouble. The environment is: Mac OS 10.6.4 XCode 3.2.2 MacBook Pro 2.53 Here are my steps: cd ~/ export CC=/Developer/usr/bin/llvm-gcc-4.2 export CXX=/Developer/usr/bin/llvm-g++-4.2 export OBJC=/Developer/usr/bin/llvm-gcc-4.2 git clone git://git.videolan.org/vlc-1.1.git mv vlc-1.1 vlc cd vlc/extras/contrib ./bootstrap x86_64-apple-darwin10 make cd ../.. ./bootstrap Up to this point, everything looks fine, however when I run: ./configure --enable-debug --build=x86_64-apple-darwin10 It exits with this error: configure: error: libmodplug version 0.8.8 will not work. Please upgrade to 0.8.8.1 or later (or downgrade to 0.8.7)! I tried to get libmodplug from http://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.8.1/, but couldn't work out what to do next. Any suggestions? Thanks David -------------- next part -------------- An HTML attachment was scrubbed... URL: From jb at videolan.org Sun Jul 18 12:50:03 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 12:50:03 +0200 Subject: [vlc-devel] Problems with libmodplug when compiling VLC 1.1 on Mac OS X In-Reply-To: <699DF9AD-8644-41B8-81C4-C9859FD72454@vidblishen.com> References: <699DF9AD-8644-41B8-81C4-C9859FD72454@vidblishen.com> Message-ID: <20100718105003.GA28029@videolan.org> 'lo David, On Sun, Jul 18, 2010 at 11:42:40AM +0100, David Blishen wrote : > ./configure --enable-debug --build=x86_64-apple-darwin10 add --disable-mod to that line :D Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From siretart at tauware.de Sun Jul 18 11:00:47 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Sun, 18 Jul 2010 11:00:47 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: (=?utf-8?Q?=22R?= =?utf-8?Q?=C3=A9mi?= Denis-Courmont"'s message of "Fri, 16 Jul 2010 10:55:02 +0200") References: <201007122154.54917.remi@remlab.net> <3531d4581a3c6378e4d5777c25cf826c@chewa.net> <87bpabqxib.fsf@faui44a.informatik.uni-erlangen.de> Message-ID: <87d3ulkvuo.fsf@faui44a.informatik.uni-erlangen.de> On Fri, Jul 16, 2010 at 10:55:02 (CEST), R?mi Denis-Courmont wrote: > On Tue, 13 Jul 2010 10:14:52 -0400, Reinhard Tartler > wrote: >> On Tue, Jul 13, 2010 at 10:01:13 (EDT), R?mi Denis-Courmont wrote: >> >>>> Ping maintainers and debian security team. Indicate the security >>>> issue, the patch and or new tarball. >>> >>> It's not like it's not known: >>> http://security-tracker.debian.org/tracker/status/release/stable >> >> it lists 4 CVEs: CVE-2010-1441 - 1445, all of them only affecting the >> 0.8 series and without any details. > > My point was, the Debian Security team already knows about this, since they > have put in their tracker. That is all. I take this as you didn't contact the team directly yet. I'm doing this now with this mail. Security team: It seems that you are aware of 4 CVEs, for which even an upstream security announcement has been made. I now wonder why is vlc in stable in such a bad shape, and I wonder if there should be an official DSA EOL announcement about that in order to communicate this issue to our users clearly. [...] >> So this piece of information is pretty useless for identifying >> missing changes in 0.8.x. > > That's not my problem (anymore). We have made about twenty releases, from > four different branches since Debian Stable has last updated. The VideoLAN > does not have the resources to maintain four branches at a time. But, in > fact, that is irrelevant because Debian does _not_ follow our updates > anyway. Otherwise they would at least have 0.8.6i. So keeping the > 0.8-bugfix branch alive would have been a pure waste of time. TBH, I was totally unaware of the 0.8.6i release and about its changes. I've just taken a look at its gitweb: http://git.videolan.org/?p=vlc/vlc-0.8.git;a=shortlog;h=refs/tags/0.8.6i To me, it indeed seems to be a good idea to upload this either to lenny-security or lenny-proposed. Security team, what do you think about this? > I am not aware of any entity (in general) following any of the older > branches, 0.8, 0.9 and 1.0. I only know: > - entities not updating (at all), and > - entities following the very latest version. > And indeed, polls for interested parties in maintaining each of the older > branches have all been left without answers this far. I'm not aware of neither these changes you're talking about, nor about these polls. What, in your opinion, should the pkg-multimedia team, or if you prefer, Debian as a project, have done to be aware of those changes and the polls? > Canonical puts VLC in universe, wash their hands as far support is > concerned. But Debian pretends to support VLC except it does not. The bottom line in both distros is the same: For both distros, maintaining vlc is a community effort, and in both cases, we face the similar symptoms. My hypothesis is in both cases that maintaining vlc properly is too hard. What can we do to improve the situation? (I'm not answering in this mail, but I'll do so in a followup.) -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 _______________________________________________ pkg-multimedia-maintainers mailing list pkg-multimedia-maintainers at lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/pkg-multimedia-maintainers From remi at remlab.net Sun Jul 18 13:25:30 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Sun, 18 Jul 2010 14:25:30 +0300 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <87d3ulkvuo.fsf@faui44a.informatik.uni-erlangen.de> References: <201007122154.54917.remi@remlab.net> <87d3ulkvuo.fsf@faui44a.informatik.uni-erlangen.de> Message-ID: <201007181425.31305.remi@remlab.net> Le dimanche 18 juillet 2010 12:00:47 Reinhard Tartler, vous avez ?crit : > >> So this piece of information is pretty useless for identifying > >> missing changes in 0.8.x. > > > > That's not my problem (anymore). We have made about twenty releases, from > > four different branches since Debian Stable has last updated. The > > VideoLAN does not have the resources to maintain four branches at a > > time. But, in fact, that is irrelevant because Debian does _not_ follow > > our updates anyway. Otherwise they would at least have 0.8.6i. So > > keeping the 0.8-bugfix branch alive would have been a pure waste of > > time. > > TBH, I was totally unaware of the 0.8.6i release and about its changes. > I've just taken a look at its gitweb: > > http://git.videolan.org/?p=vlc/vlc-0.8.git;a=shortlog;h=refs/tags/0.8.6i > > To me, it indeed seems to be a good idea to upload this either to > lenny-security or lenny-proposed. It would have been a good idea two years ago. Now is a bit late. I doubt anyone will ever feel so bored that (s)he would go throug the thousands of changes from 0.8.6i to 1.1.0 to extract the security-relevant or whatever applicable fixes. > > I am not aware of any entity (in general) following any of the older > > branches, 0.8, 0.9 and 1.0. I only know: > > - entities not updating (at all), and > > - entities following the very latest version. > > And indeed, polls for interested parties in maintaining each of the older > > branches have all been left without answers this far. > > I'm not aware of neither these changes you're talking about, nor about > these polls. What, in your opinion, should the pkg-multimedia team, or > if you prefer, Debian as a project, have done to be aware of those > changes and the polls? Don't you already have people reading vlc-devel? > > Canonical puts VLC in universe, wash their hands as far support is > > concerned. But Debian pretends to support VLC except it does not. > > The bottom line in both distros is the same: For both distros, > maintaining vlc is a community effort, and in both cases, we face the > similar symptoms. My hypothesis is in both cases that maintaining vlc > properly is too hard. The VideoLAN project maintains VLC properly as a pure community effort. Contrary to Ubuntu or even indirectly Debian, we have no sponsored staff. Maintaining a fork of VLC, and in fact, the whole Linux ecosystem, has got to be "too hard". I doubt a dedicated "stable security team" can ever support a stable system for years with as many thousands packages as Debian has. If it were up to me, I'd decree the respective package maintainers are responsible for (most of the work of) stable updates. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Sun Jul 18 13:28:00 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 13:28:00 +0200 Subject: [vlc-devel] [warning] Menuconfig removal Message-ID: <20100718112800.GA4663@videolan.org> config.in has not been updated since a long time and noone seems to care about updating it. If noone steps up to maintain it, I will remove it from master/ Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From d at vidblishen.com Sun Jul 18 14:33:33 2010 From: d at vidblishen.com (David Blishen) Date: Sun, 18 Jul 2010 13:33:33 +0100 Subject: [vlc-devel] Problems with libmodplug when compiling VLC 1.1 on Mac OS X In-Reply-To: <20100718105003.GA28029@videolan.org> References: <699DF9AD-8644-41B8-81C4-C9859FD72454@vidblishen.com> <20100718105003.GA28029@videolan.org> Message-ID: <4CEE042A-D889-41E4-B302-5811A3C19C2A@vidblishen.com> Brilliant - thank you. I made the same change in here: ~/vlc/projects/macosx/framework/Configure.sh to add the flag, and I was able to compile VLCKit from XCode. Thank you very much for your help, David On 18 Jul 2010, at 11:50, Jean-Baptiste Kempf wrote: > 'lo David, > > On Sun, Jul 18, 2010 at 11:42:40AM +0100, David Blishen wrote : >> ./configure --enable-debug --build=x86_64-apple-darwin10 > > add --disable-mod to that line :D > > Best Regards, > > -- > Jean-Baptiste Kempf > http://www.jbkempf.com/ > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel From jmenon86 at gmail.com Sun Jul 18 15:13:31 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Sun, 18 Jul 2010 18:43:31 +0530 Subject: [vlc-devel] [PATCH] AVFormat : Don't drop metadata keys. Message-ID: <1279458811-1827-1-git-send-email-jmenon86@gmail.com> The current code seems to require _all_ metadata fields to be populated which seems a bit unreasonable. --- modules/demux/avformat/demux.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-) diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c index 9109243..91608f0 100644 --- a/modules/demux/avformat/demux.c +++ b/modules/demux/avformat/demux.c @@ -766,13 +766,6 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) { vlc_meta_t *p_meta = (vlc_meta_t*)va_arg( args, vlc_meta_t* ); - if( !p_sys->ic->title[0] || !p_sys->ic->author[0] || - !p_sys->ic->copyright[0] || !p_sys->ic->comment[0] || - /*!p_sys->ic->album[0] ||*/ !p_sys->ic->genre[0] ) - { - return VLC_EGENERIC; - } - if( p_sys->ic->title[0] ) vlc_meta_SetTitle( p_meta, p_sys->ic->title ); if( p_sys->ic->author[0] ) -- 1.7.1.1 From dadatis at gmail.com Sun Jul 18 16:10:53 2010 From: dadatis at gmail.com (Daniel Tisza) Date: Sun, 18 Jul 2010 17:10:53 +0300 Subject: [vlc-devel] [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. In-Reply-To: <201007180132.07333.remi@remlab.net> References: <20100717220301.GA15089@videolan.org> <201007180132.07333.remi@remlab.net> Message-ID: Hi, Thanks for the comments. Attached two new independent patches. I reworked freeing on failures in the opening phase. Concerning the changes suggested by Jean-Baptiste Kempf: > You can use for ( unsigned int i = 0 ; .... Changed to that. > VLC_ENOMEM maybe? Changed to that. Concerning the following by R?mi Denis-Courmont > I still don't understand why this requires a new Makefile directory and three > separate source code files. I am all for keeping files small, but... I created and attached now two patches to choose from. PATCH 1: This is with rtmpdump in a subdirectory as so far. PATCH 2: This is with only a single modules/access/rtmpdump.c file. > And then, it seems that the rtmpdump is mindboggingly broken by design as it > uses white spaces in URL. I doubt that can work inside VLC. I'm not entirely sure if I understand the main issue here. These are the points in my view at the moment: 1. For a successful connection to an RTMP server two things are required: a) rtmp url b) rtmp connection parameters (Sometimes you get away with no parameters, but more often not). 2. librtmp used to have different parameters in data structures, which were passed to a setup function. 3. librtmp is now using a setup string, which is the rtmp url + params. The setup string is the recommended approach by Howard Chu. However, we can compose this setup string ourselves from the MRL and vlc options as I have done. Please see the detailed comparison below. ---- Now, VLC has (at least) two scenarios to give access to librtmp. 1. User enters the rtmp url as the MRL and rtmp params as vlc options (rtmp-*=xyzzy). This never ever needs spaces anywhere in VLC. The spaced 'url' is made only for setting up librtmp and is composed automatically from the MRL and the options. This solution I have posted now. 2. User enters as MRL the whole string passed to librtmp, meaning rtmp url + params. This is not possible now, because the user interface doesn't allow spaces. This solution I have never posted as a patch. Here is a link to Howard Chu's comments on the parameter passing: http://comments.gmane.org/gmane.comp.video.ffmpeg.devel/108419 ---- Regards, Daniel Tisza -------------- next part -------------- A non-text attachment was scrubbed... Name: rtmpdump7.patch Type: text/x-patch Size: 22772 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rtmpdump8.patch Type: text/x-patch Size: 15709 bytes Desc: not available URL: From remi at remlab.net Sun Jul 18 16:44:59 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Sun, 18 Jul 2010 17:44:59 +0300 Subject: [vlc-devel] Qt4 open dialogs (again) Message-ID: <201007181745.00935.remi@remlab.net> Hello, I don't recall coming to a conclusion as to what should be done with the multiple open dialogs. The current situation is a bit messy. Disks ------ There are two ways to open disks: - Media (menu), then Open disc, then Play. - Devices (from playlist), then Discs, then the playlist item. The good news is, both methods support streaming and transcoding. That said, it is a bit hard to find in both cases. With the open dialog you need to keep the Play button pressed and use the combo. With the playlist, you need to right click on the item. However neither options are really good. On the one hand, the open dialog does not find the available discs and types automatically, so it requires manual setup from the user. On the other hand, the playlist item does not allow disabling menus or selecting specific titles/chapters. Arguably though, disabling DVD menus and selecting titles are advanced features mostly of use for transcode & streaming. Afterall, the navigation menu is more convenient for normal playback. So it might make sense to move them to the streaming and transcoding wizard? But even then, what do we do of the menu item? Do we change it to show the disc SD in the playlist (on platforms that support this)? Ideally, the SD could perhaps be "embedded" in the dialog, but such implementation seems quite complicated to me. A/V Capture ------------ From usability perspective, I think capture is a lot worse than disks. On the one hand, the dialog expects the user to know what audio and video device to open, which is really awful. On the other hand, the SD plugins can only provide pure audio or silent video, due to playlist design "limitations". So it seems the only solution is to embed the SD's in the dialog, but I have no clue how to do that. Screen capture --------------- Not too bad, but the open dialog can only capture the whole desktop. If/when the SD gets XRR support, we can select individual displays or view ports, but again only from the playlist... -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sun Jul 18 16:53:50 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Sun, 18 Jul 2010 17:53:50 +0300 Subject: [vlc-devel] [RFC] id3tag removal Message-ID: <201007181753.50567.remi@remlab.net> Hello, The id3tag plugin has been disabled by default for longer than I remember. Looking at the code, it is still assuming Latin-1, even though VLC has been UTF-8 for several years. Unless someone objects, I will remove it in a few days. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From greg at chown.ath.cx Sun Jul 18 16:54:09 2010 From: greg at chown.ath.cx (Grigori Goronzy) Date: Sun, 18 Jul 2010 16:54:09 +0200 Subject: [vlc-devel] [PATCH] blend: subsample chroma correctly when blending rgba to yv12 Message-ID: <4C431591.9010006@chown.ath.cx> Hi, This patch fixes RGBA -> YV12 blending for the most part, see trac ticket [1]. What's still missing is blending of chroma on edge pixels if they don't line up with chroma blocks. It's still clearly an improvement IMHO. A cleaner solution might be to blend onto a temporary I444 picture and downsample to I420 afterwards. Grigori [1] http://trac.videolan.org/vlc/ticket/3009 -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 0001-blend-subsample-chroma-correctly-when-blending-rgba-.patch URL: From remi at remlab.net Sun Jul 18 16:56:18 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Sun, 18 Jul 2010 17:56:18 +0300 Subject: [vlc-devel] [RFC] dbus plugin removal Message-ID: <201007181756.18816.remi@remlab.net> Hello, The libdbus control plugin is still waking up the CPU two times per seconds. That is the only remaining interface that I know doing this, and is unacceptable. To make matters worse, it implements an interface (MPRIS) that is widely accepted as broken by design. Last, its "one VLC instance" per desktop feature is not working correctly. Unless it gets fixed quickly, I propose we remove it. On top of that, libdbus is not quite thread-safe. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From siretart at tauware.de Sun Jul 18 16:56:16 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Sun, 18 Jul 2010 16:56:16 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <201007181425.31305.remi@remlab.net> (=?utf-8?Q?=22R=C3=A9mi?= Denis-Courmont"'s message of "Sun, 18 Jul 2010 14:25:30 +0300") References: <201007122154.54917.remi@remlab.net> <87d3ulkvuo.fsf@faui44a.informatik.uni-erlangen.de> <201007181425.31305.remi@remlab.net> Message-ID: <87oce4kfe7.fsf@faui44a.informatik.uni-erlangen.de> On Sun, Jul 18, 2010 at 13:25:30 (CEST), R?mi Denis-Courmont wrote: > Le dimanche 18 juillet 2010 12:00:47 Reinhard Tartler, vous avez ?crit : >> >> So this piece of information is pretty useless for identifying >> >> missing changes in 0.8.x. >> > >> > That's not my problem (anymore). We have made about twenty releases, from >> > four different branches since Debian Stable has last updated. The >> > VideoLAN does not have the resources to maintain four branches at a >> > time. But, in fact, that is irrelevant because Debian does _not_ follow >> > our updates anyway. Otherwise they would at least have 0.8.6i. So >> > keeping the 0.8-bugfix branch alive would have been a pure waste of >> > time. >> >> TBH, I was totally unaware of the 0.8.6i release and about its changes. >> I've just taken a look at its gitweb: >> >> http://git.videolan.org/?p=vlc/vlc-0.8.git;a=shortlog;h=refs/tags/0.8.6i >> >> To me, it indeed seems to be a good idea to upload this either to >> lenny-security or lenny-proposed. > > It would have been a good idea two years ago. Now is a bit late. I doubt > anyone will ever feel so bored that (s)he would go throug the thousands of > changes from 0.8.6i to 1.1.0 to extract the security-relevant or whatever > applicable fixes. I see. Well, it seems to me that the 0.8.6i release is still better than we currently have in stable, even if it is more than 2 years old. But anyways, I take your comment as a vote that vlc in stable should be EOL'ed with a DSA (Debian security announcement). IIRC, something similar has already been done with iceweasel: http://www.debian.org/security/2009/dsa-1753 >> > I am not aware of any entity (in general) following any of the older >> > branches, 0.8, 0.9 and 1.0. I only know: >> > - entities not updating (at all), and >> > - entities following the very latest version. >> > And indeed, polls for interested parties in maintaining each of the older >> > branches have all been left without answers this far. >> >> I'm not aware of neither these changes you're talking about, nor about >> these polls. What, in your opinion, should the pkg-multimedia team, or >> if you prefer, Debian as a project, have done to be aware of those >> changes and the polls? > > Don't you already have people reading vlc-devel? vlc-devel is a really high volume mailing list, I don't really read it. xtophe might, but he is also upstream himself. Short: obviously not. Is staying up-to-date with vlc-devel a requisite for maintaining vlc properly? Xtophe, maybe you can in future forward such mails to our team mailinglist? >> > Canonical puts VLC in universe, wash their hands as far support is >> > concerned. But Debian pretends to support VLC except it does not. >> >> The bottom line in both distros is the same: For both distros, >> maintaining vlc is a community effort, and in both cases, we face the >> similar symptoms. My hypothesis is in both cases that maintaining vlc >> properly is too hard. > > The VideoLAN project maintains VLC properly as a pure community effort. > Contrary to Ubuntu or even indirectly Debian, we have no sponsored staff. irrelevant for this discussion; if this is an attempt to ask for resources from canonical, you're asking in the totally wrong place. > Maintaining a fork of VLC, and in fact, the whole Linux ecosystem, has got to > be "too hard". ubuntu strictly follows Debian packaging, and in fact, only Benjamin and I actually touch the vlc package in ubuntu. We both also work in pkg-multimedia. In this common package, I wouldn't consider it to be a "fork" in the strict sense. However we cannot easily follow updates in stable release of both distros because of incompatible release update policies in vlc and the distros. But anyway, this argument really doesn't help here. > I doubt a dedicated "stable security team" can ever support a stable > system for years with as many thousands packages as Debian has. If it > were up to me, I'd decree the respective package maintainers are > responsible for (most of the work of) stable updates. Well, AFAIUI, many maintainers directly prepare security updates themselves. For vlc, this has failed in the past. And I'm asking you *again*: What can we do so that the situation improves? Are you evading my question? We know that we suck in this regard, emphasizing this part from your side is probably not going to improve the situation. -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From remi at remlab.net Sun Jul 18 17:23:48 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Sun, 18 Jul 2010 18:23:48 +0300 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <87oce4kfe7.fsf@faui44a.informatik.uni-erlangen.de> References: <201007122154.54917.remi@remlab.net> <201007181425.31305.remi@remlab.net> <87oce4kfe7.fsf@faui44a.informatik.uni-erlangen.de> Message-ID: <201007181823.48993.remi@remlab.net> Hello, Le dimanche 18 juillet 2010 17:56:16 Reinhard Tartler, vous avez ?crit : > vlc-devel is a really high volume mailing list, It's not so bad since commit logs were secluded to a list of their own. Besides, we tend to tag relevant topics with '[PACKAGERS]'. At least the OpenSUSE maintainer is there (I think). > I don't really read it. xtophe might, but he is also upstream himself. I do think he does, and that is what I implied. I don't know if Samuel still does (guess not). > And I'm asking you *again*: What can we do so that the situation > improves? Are you evading my question? We know that we suck in this > regard, emphasizing this part from your side is probably not going to > improve the situation. I DON'T KNOW? It's not up to me how Debian, Ubuntu and pkg-multimedia work. As already stated, nobody answered when older releases support was questioned. The 1.0-bugfix branch could be reopened for security fixes as there has not been any known vulnerability since 1.0.6 and 1.1.0 were released. It is probably too late for stability non-security fixes though, as we've let slip far too many of them. But even then, how do you plan to upgrade from 1.0.2 to 1.0.6? Or from 1.1.x in final Maverick, to 1.1.x+{1,2,...} ? VideoLAN won't provide one stable tree per release! We can't afford the kernel's luxury time-wise. As for 0.8.6-bugfix and 0.9-bugfix, I think it's game over for good. Hence, Lenny, Hardy and Jaunty should probably drop VLC altogether. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Sun Jul 18 17:25:43 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 17:25:43 +0200 Subject: [vlc-devel] [RFC] id3tag removal In-Reply-To: <201007181753.50567.remi@remlab.net> References: <201007181753.50567.remi@remlab.net> Message-ID: <20100718152543.GA17253@videolan.org> On Sun, Jul 18, 2010 at 05:53:50PM +0300, R?mi Denis-Courmont wrote : > The id3tag plugin has been disabled by default for longer than I remember. > Looking at the code, it is still assuming Latin-1, even though VLC has been > UTF-8 for several years. > > Unless someone objects, I will remove it in a few days. No objection from me. I would even say that it is a good idea. If people can't compile cpp, then, too bad... Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sun Jul 18 17:31:01 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 17:31:01 +0200 Subject: [vlc-devel] [PATCH] AVFormat : Don't drop metadata keys. In-Reply-To: <1279458811-1827-1-git-send-email-jmenon86@gmail.com> References: <1279458811-1827-1-git-send-email-jmenon86@gmail.com> Message-ID: <20100718153101.GA18047@videolan.org> On Sun, Jul 18, 2010 at 06:43:31PM +0530, Jai Menon wrote : > The current code seems to require _all_ metadata fields to be populated > which seems a bit unreasonable. Applied Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From siretart at tauware.de Sun Jul 18 18:14:26 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Sun, 18 Jul 2010 18:14:26 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <201007181823.48993.remi@remlab.net> (=?utf-8?Q?=22R=C3=A9mi?= Denis-Courmont"'s message of "Sun, 18 Jul 2010 18:23:48 +0300") References: <201007122154.54917.remi@remlab.net> <201007181425.31305.remi@remlab.net> <87oce4kfe7.fsf@faui44a.informatik.uni-erlangen.de> <201007181823.48993.remi@remlab.net> Message-ID: <878w58kbrx.fsf@faui44a.informatik.uni-erlangen.de> On Sun, Jul 18, 2010 at 17:23:48 (CEST), R?mi Denis-Courmont wrote: >> And I'm asking you *again*: What can we do so that the situation >> improves? Are you evading my question? We know that we suck in this >> regard, emphasizing this part from your side is probably not going to >> improve the situation. > > I DON'T KNOW? It's not up to me how Debian, Ubuntu and pkg-multimedia work. > > As already stated, nobody answered when older releases support was questioned. > The 1.0-bugfix branch could be reopened for security fixes as there has not > been any known vulnerability since 1.0.6 and 1.1.0 were released. It is > probably too late for stability non-security fixes though, as we've let slip > far too many of them. Well, maybe this is too obvious, but it would really help if videolan's security announcements would be a) more focused and b) much clearer in future. If it was clear what patches are related to what VSA, backporting them to earlier releases would be much easier to everyone. The last 3 VLAs all basically said "there is a problem, please update" without any proper classification of the severity nor what the actual change was to fix the issue. They just point to "use the latest release" but looking at the respective bugfix branch, I see many janitor commits interleaved with potentially related commits. I think the biggest problem we face here is communication. It is totally unreasonable to expect everyone to read and follow vlc. Can you please either be more explicit with your VSAs or perhaps create a more specialized mailing list for such issues? > But even then, how do you plan to upgrade from 1.0.2 to 1.0.6? I don't understand the question. Of course by preparing an upload and uploading it! > Or from 1.1.x in final Maverick, to 1.1.x+{1,2,...} ? VideoLAN won't > provide one stable tree per release! We can't afford the kernel's > luxury time-wise. I guess 1.0-bugfix and 1.1-bugfix branches do exist, yes? What's the problem? > As for 0.8.6-bugfix and 0.9-bugfix, I think it's game over for good. Hence, > Lenny, Hardy and Jaunty should probably drop VLC altogether. Noted, thanks, let's see what the Debian security team thinks about this. The packages themselves are still useable, so removing it might be a bit too aggressive. Doing a proper EOL via security announcement channels seems more appropriate to me, or do I miss something? -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From man40dev at gmail.com Sun Jul 18 18:27:52 2010 From: man40dev at gmail.com (Manol Manolov) Date: Sun, 18 Jul 2010 12:27:52 -0400 Subject: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 In-Reply-To: <20100718091027.GA10919@videolan.org> References: <000601cb2628$a7bfbfe0$f73f3fa0$@com> <20100718091027.GA10919@videolan.org> Message-ID: <000601cb2696$2c5a33d0$850e9b70$@com> I send the first patch again (unchanged). Also add GUI option. Silent cast to long -> in my case integer is sufficient but the API function accepts long. The frequency won't exceed 999999 (KHz). I just use the same method as the rest of the code to keep it easier to read. The MRL is cqam://:frequency=xxxx The rest of the options are useless like "program-number" because VLC demux is used instead the MS demux and the bda setting cannot be applied. The "--program" option can be used instead, which controls the VLC demux. I added GUI option as you suggested. -----Original Message----- From: vlc-devel-bounces at videolan.org [mailto:vlc-devel-bounces at videolan.org] On Behalf Of Jean-Baptiste Kempf Sent: Sunday, July 18, 2010 5:10 AM To: Mailing list for VLC media player developers Subject: Re: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 On Sat, Jul 17, 2010 at 11:23:54PM -0400, Manol Manolov wrote : > This is my first patch, so please tell me if I do something wrong. var_GetInteger returns int64, IIRC, and you are silently casting them to long (int32 on Win*). Normal? Else, it looks pretty fine if tested. > Add US cable HD television support. I believe it will work only on Win 7. Cool, do you have a MRL to play this back? > Preserved the old functionality of BDA, also made it to work under Win 7. Can you detail? Should we adapt the UI too ? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ _______________________________________________ vlc-devel mailing list To unsubscribe or modify your subscription options: http://mailman.videolan.org/listinfo/vlc-devel -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Add-GUI-support-for-Clear-QAM.patch Type: application/octet-stream Size: 3020 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Add-support-for-Clear-QAM.patch Type: application/octet-stream Size: 12985 bytes Desc: not available URL: From remi at remlab.net Sun Jul 18 19:05:08 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sun, 18 Jul 2010 20:05:08 +0300 Subject: [vlc-devel] [vlc-commits] commit: Configure: don't stop everything when modplug 0.8.8 is detected, just deactivate the module (Jean-Baptiste Kempf ) In-Reply-To: <20100718163925.3DAE4107C3B@albiero.videolan.org> References: <20100718163925.3DAE4107C3B@albiero.videolan.org> Message-ID: <201007182005.08539.remi@remlab.net> Le dimanche 18 juillet 2010 19:39:25 git at videolan.org, vous avez ?crit : > vlc | branch: master | Jean-Baptiste Kempf | Sun Jul 18 > 18:28:19 2010 +0200| [a9d916728b2717206a0a7fe0702b0bc6dad16747] | > committer: Jean-Baptiste Kempf > > Configure: don't stop everything when modplug 0.8.8 is detected, just > deactivate the module > > This was annoying because if you had a modplug.pc and didn't --enable-mod, > it was auto-detected and then failed. So? If you have libmodplug installed you expect it to work with VLC like it's always done. Hence an explicit --disable-mod is The Right Thing to bypass the configure failure. Not to mention, that now even if --enable-mod is given, configure happily disables and goes forward, which is unarguably wrong. This commit sucks big time IMHO. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From beauze.h at gmail.com Sun Jul 18 19:14:58 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Sun, 18 Jul 2010 19:14:58 +0200 Subject: [vlc-devel] [Patch] transcode: Don't crash when something went wrong with the video filters chain Message-ID: Hi, Actually, when a the video filter chain returns a NULL picture, this picture is used as if it was correct, thus crashing vlc. This patch corrects it. (This patch is actually based upon vlc-1.1. If required, i will rebase it for master) Regards, -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-transcode-Don-t-crash-if-something-went-wrong-with-t.patch Type: text/x-patch Size: 1382 bytes Desc: not available URL: From rafael.carre at gmail.com Sun Jul 18 19:25:59 2010 From: rafael.carre at gmail.com (=?UTF-8?B?UmFmYcOrbCBDYXJyw6k=?=) Date: Sun, 18 Jul 2010 19:25:59 +0200 Subject: [vlc-devel] [PATCH] luascripts: add pluzz.fr In-Reply-To: <1279390839-18160-1-git-send-email-fcvlcdev@free.fr> References: <1279390839-18160-1-git-send-email-fcvlcdev@free.fr> Message-ID: <20100718192559.512ebc2f@kru> On Sat, 17 Jul 2010 20:20:39 +0200 Francois Cartegnie wrote: Hi, > --- > share/lua/playlist/pluzz.lua | 108 > ++++++++++++++++++++++++++++++++++++++++++ 1 files changed This lacks share/Makefile.am diff, without it the file won't be present in 'make dist' tarball and won't be installed -- ? Rafa?l Carr? ? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: not available URL: From jb at videolan.org Sun Jul 18 19:32:29 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 19:32:29 +0200 Subject: [vlc-devel] [vlc-commits] commit: Configure: don't stop everything when modplug 0.8.8 is detected, just deactivate the module (Jean-Baptiste Kempf ) In-Reply-To: <201007182005.08539.remi@remlab.net> References: <20100718163925.3DAE4107C3B@albiero.videolan.org> <201007182005.08539.remi@remlab.net> Message-ID: <20100718173229.GA8939@videolan.org> On Sun, Jul 18, 2010 at 08:05:08PM +0300, R?mi Denis-Courmont wrote : > So? If you have libmodplug installed you expect it to work with VLC like it's > always done. Hence an explicit --disable-mod is The Right Thing to bypass the > configure failure. People should read warnings. Moreover, if you have a too old version of a package, you don't expect VLC to like it. > Not to mention, that now even if --enable-mod is given, configure happily > disables and goes forward, which is unarguably wrong. Indeed, this is the important issue. It should be fixed now. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sun Jul 18 19:34:08 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 19:34:08 +0200 Subject: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 In-Reply-To: <000601cb2696$2c5a33d0$850e9b70$@com> References: <000601cb2628$a7bfbfe0$f73f3fa0$@com> <20100718091027.GA10919@videolan.org> <000601cb2696$2c5a33d0$850e9b70$@com> Message-ID: <20100718173408.GA9300@videolan.org> 'lo, On Sun, Jul 18, 2010 at 12:27:52PM -0400, Manol Manolov wrote : > The MRL is cqam://:frequency=xxxx Frequency are in Hz or kHz ? > I added GUI option as you suggested. Ok. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sun Jul 18 19:36:20 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 19:36:20 +0200 Subject: [vlc-devel] [RFC] dbus plugin removal In-Reply-To: <201007181756.18816.remi@remlab.net> References: <201007181756.18816.remi@remlab.net> Message-ID: <20100718173620.GA9850@videolan.org> On Sun, Jul 18, 2010 at 05:56:18PM +0300, R?mi Denis-Courmont wrote : > The libdbus control plugin is still waking up the CPU two times per seconds. > That is the only remaining interface that I know doing this, and is > unacceptable. To make matters worse, it implements an interface (MPRIS) that > is widely accepted as broken by design. I couldn't care less about this plugin. > Last, its "one VLC instance" per > desktop feature is not working correctly. How should we do it correctly ? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sun Jul 18 19:41:46 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 19:41:46 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <878w58kbrx.fsf@faui44a.informatik.uni-erlangen.de> References: <201007122154.54917.remi@remlab.net> <201007181425.31305.remi@remlab.net> <87oce4kfe7.fsf@faui44a.informatik.uni-erlangen.de> <201007181823.48993.remi@remlab.net> <878w58kbrx.fsf@faui44a.informatik.uni-erlangen.de> Message-ID: <20100718174146.GB9850@videolan.org> On Sun, Jul 18, 2010 at 06:14:26PM +0200, Reinhard Tartler wrote : > I think the biggest problem we face here is communication. It is totally > unreasonable to expect everyone to read and follow vlc. Can you please > either be more explicit with your VSAs or perhaps create a more > specialized mailing list for such issues? http://www.videolan.org/security/ is not enough for you? > > But even then, how do you plan to upgrade from 1.0.2 to 1.0.6? > > I don't understand the question. Of course by preparing an upload and > uploading it! Waouw, since when has this changed? 'we cannot update because this release change functionnalities' is what we usually had... > > Or from 1.1.x in final Maverick, to 1.1.x+{1,2,...} ? VideoLAN won't > > provide one stable tree per release! We can't afford the kernel's > > luxury time-wise. > > I guess 1.0-bugfix and 1.1-bugfix branches do exist, yes? What's the > problem? You don't understand him. He is speaking about 1.1.0-bugfix, 1.1.1-bugfix, etc... Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From beauze.h at gmail.com Sun Jul 18 19:54:06 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Sun, 18 Jul 2010 19:54:06 +0200 Subject: [vlc-devel] [Patches] Qt4: Warnings and #3922 Message-ID: Hi, These patches fix a warning and the ticket #3922 Regards, -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Qt4-Fix-a-warning.patch Type: text/x-patch Size: 884 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Qt4-Open-disc-Reset-path-when-changing-disc-mode.patch Type: text/x-patch Size: 4989 bytes Desc: not available URL: From man40dev at gmail.com Sun Jul 18 19:55:53 2010 From: man40dev at gmail.com (Manol Manolov) Date: Sun, 18 Jul 2010 13:55:53 -0400 Subject: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 In-Reply-To: <20100718173408.GA9300@videolan.org> References: <000601cb2628$a7bfbfe0$f73f3fa0$@com> <20100718091027.GA10919@videolan.org> <000601cb2696$2c5a33d0$850e9b70$@com> <20100718173408.GA9300@videolan.org> Message-ID: <003e01cb26a2$78056cd0$68104670$@com> > Frequency are in Hz or kHz ? Strange, isn't it? Any way here is my command line option tested and working: cqam://:frequency=247250 /* this corresponds to 28 physical channel */ cqam://:physical-channel=28 /* the same thing */ The GUI adds "000" to the KHz user input (I bypassed that for clear qam) -----Original Message----- From: vlc-devel-bounces at videolan.org [mailto:vlc-devel-bounces at videolan.org] On Behalf Of Jean-Baptiste Kempf Sent: Sunday, July 18, 2010 1:34 PM To: Mailing list for VLC media player developers Subject: Re: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 'lo, On Sun, Jul 18, 2010 at 12:27:52PM -0400, Manol Manolov wrote : > The MRL is cqam://:frequency=xxxx Frequency are in Hz or kHz ? > I added GUI option as you suggested. Ok. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ _______________________________________________ vlc-devel mailing list To unsubscribe or modify your subscription options: http://mailman.videolan.org/listinfo/vlc-devel From jb at videolan.org Sun Jul 18 20:01:01 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 20:01:01 +0200 Subject: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 In-Reply-To: <003e01cb26a2$78056cd0$68104670$@com> References: <000601cb2628$a7bfbfe0$f73f3fa0$@com> <20100718091027.GA10919@videolan.org> <000601cb2696$2c5a33d0$850e9b70$@com> <20100718173408.GA9300@videolan.org> <003e01cb26a2$78056cd0$68104670$@com> Message-ID: <20100718180101.GA13687@videolan.org> On Sun, Jul 18, 2010 at 01:55:53PM -0400, Manol Manolov wrote : > > Frequency are in Hz or kHz ? > Strange, isn't it? Why is it so? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From siretart at tauware.de Sun Jul 18 20:02:50 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Sun, 18 Jul 2010 20:02:50 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <20100718174146.GB9850@videolan.org> (Jean-Baptiste Kempf's message of "Sun, 18 Jul 2010 19:41:46 +0200") References: <201007122154.54917.remi@remlab.net> <201007181425.31305.remi@remlab.net> <87oce4kfe7.fsf@faui44a.informatik.uni-erlangen.de> <201007181823.48993.remi@remlab.net> <878w58kbrx.fsf@faui44a.informatik.uni-erlangen.de> <20100718174146.GB9850@videolan.org> Message-ID: <87wrssis6t.fsf@faui44a.informatik.uni-erlangen.de> On Sun, Jul 18, 2010 at 19:41:46 (CEST), Jean-Baptiste Kempf wrote: > On Sun, Jul 18, 2010 at 06:14:26PM +0200, Reinhard Tartler wrote : >> I think the biggest problem we face here is communication. It is totally >> unreasonable to expect everyone to read and follow vlc. Can you please >> either be more explicit with your VSAs or perhaps create a more >> specialized mailing list for such issues? > http://www.videolan.org/security/ is not enough for you? It's not, and I've elaborated why in the paragraph you've killed in your reply. >> > But even then, how do you plan to upgrade from 1.0.2 to 1.0.6? >> >> I don't understand the question. Of course by preparing an upload and >> uploading it! > Waouw, since when has this changed? > 'we cannot update because this release change functionnalities' is what > we usually had... This has not changed, but AFAIUI, there are only very focused and documented changes in bugfix branches. Maybe I'm wrong here? If yes, then a stable release update needs to cherry-pick the relevant changes. Nothing really surprising, IMHO. >> > Or from 1.1.x in final Maverick, to 1.1.x+{1,2,...} ? VideoLAN won't >> > provide one stable tree per release! We can't afford the kernel's >> > luxury time-wise. >> >> I guess 1.0-bugfix and 1.1-bugfix branches do exist, yes? What's the >> problem? > > You don't understand him. He is speaking about 1.1.0-bugfix, > 1.1.1-bugfix, etc... I think the misunderstanding is about the 1.0-bugfix and 1.1-bugfix branches. Can you perhaps explain me the update/commit policy in the 1.0-bufix branch? what patches qualify and what don't? Is there a wiki page or something I can read about? -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From jb at videolan.org Sun Jul 18 20:09:33 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 20:09:33 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <87wrssis6t.fsf@faui44a.informatik.uni-erlangen.de> References: <201007122154.54917.remi@remlab.net> <201007181425.31305.remi@remlab.net> <87oce4kfe7.fsf@faui44a.informatik.uni-erlangen.de> <201007181823.48993.remi@remlab.net> <878w58kbrx.fsf@faui44a.informatik.uni-erlangen.de> <20100718174146.GB9850@videolan.org> <87wrssis6t.fsf@faui44a.informatik.uni-erlangen.de> Message-ID: <20100718180933.GA15062@videolan.org> On Sun, Jul 18, 2010 at 08:02:50PM +0200, Reinhard Tartler wrote : > It's not, and I've elaborated why in the paragraph you've killed in > your reply. What do you need? sha1s of the commits? > This has not changed, but AFAIUI, there are only very focused and > documented changes in bugfix branches. Maybe I'm wrong here? If yes, > then a stable release update needs to cherry-pick the relevant changes. > Nothing really surprising, IMHO. This has never been the case. See below, > I think the misunderstanding is about the 1.0-bugfix and 1.1-bugfix > branches. Can you perhaps explain me the update/commit policy in the > 1.0-bufix branch? what patches qualify and what don't? Is there a wiki > page or something I can read about? There is no defined policy. ABI and API should be compatible. But, various fixes, or small improvements should go there. But also new features can enter there, as 1.1.1 can show... Those branches aren't 'small fixes' and 'security' only. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From man40dev at gmail.com Sun Jul 18 20:23:35 2010 From: man40dev at gmail.com (Manol Manolov) Date: Sun, 18 Jul 2010 14:23:35 -0400 Subject: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 In-Reply-To: <20100718180101.GA13687@videolan.org> References: <000601cb2628$a7bfbfe0$f73f3fa0$@com> <20100718091027.GA10919@videolan.org> <000601cb2696$2c5a33d0$850e9b70$@com> <20100718173408.GA9300@videolan.org> <003e01cb26a2$78056cd0$68104670$@com> <20100718180101.GA13687@videolan.org> Message-ID: <004701cb26a6$571c2500$05546f00$@com> > Why is it so? Go blame MS for their disobedient to the standards. http://msdn.microsoft.com/en-us/library/dd694380%28v=VS.85%29.aspx http://msdn.microsoft.com/en-us/library/dd693558%28v=VS.85%29.aspx " Parameters Frequency [in] The frequency, in kilohertz (kHz). Return Value Returns S_OK if successful. If the method fails, error information can be retrieved using the standard COM IErrorInfo interface." -----Original Message----- From: vlc-devel-bounces at videolan.org [mailto:vlc-devel-bounces at videolan.org] On Behalf Of Jean-Baptiste Kempf Sent: Sunday, July 18, 2010 2:01 PM To: Mailing list for VLC media player developers Subject: Re: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 On Sun, Jul 18, 2010 at 01:55:53PM -0400, Manol Manolov wrote : > > Frequency are in Hz or kHz ? > Strange, isn't it? Why is it so? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ _______________________________________________ vlc-devel mailing list To unsubscribe or modify your subscription options: http://mailman.videolan.org/listinfo/vlc-devel From beauze.h at gmail.com Sun Jul 18 20:29:52 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Sun, 18 Jul 2010 20:29:52 +0200 Subject: [vlc-devel] [Patches] Qt4: Warnings and #3922 In-Reply-To: References: Message-ID: Rebased upon master. On Sun, Jul 18, 2010 at 7:54 PM, Hugo Beauzee-Luyssen wrote: > Hi, > > These patches fix a warning and the ticket #3922 > > Regards, > > -- > Hugo Beauz?e-Luyssen > -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Qt4-Open-disc-Reset-path-when-changing-disc-mode.patch Type: text/x-patch Size: 3320 bytes Desc: not available URL: From jb at videolan.org Sun Jul 18 20:34:00 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 20:34:00 +0200 Subject: [vlc-devel] [Patches] Qt4: Warnings and #3922 In-Reply-To: References: Message-ID: <20100718183400.GA20169@videolan.org> On Sun, Jul 18, 2010 at 08:29:52PM +0200, Hugo Beauzee-Luyssen wrote : > Rebased upon master. thx. - Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From siretart at tauware.de Sun Jul 18 20:36:28 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Sun, 18 Jul 2010 20:36:28 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <20100718180933.GA15062@videolan.org> (Jean-Baptiste Kempf's message of "Sun, 18 Jul 2010 20:09:33 +0200") References: <201007122154.54917.remi@remlab.net> <201007181425.31305.remi@remlab.net> <87oce4kfe7.fsf@faui44a.informatik.uni-erlangen.de> <201007181823.48993.remi@remlab.net> <878w58kbrx.fsf@faui44a.informatik.uni-erlangen.de> <20100718174146.GB9850@videolan.org> <87wrssis6t.fsf@faui44a.informatik.uni-erlangen.de> <20100718180933.GA15062@videolan.org> Message-ID: <87k4osiqmr.fsf@faui44a.informatik.uni-erlangen.de> On Sun, Jul 18, 2010 at 20:09:33 (CEST), Jean-Baptiste Kempf wrote: > On Sun, Jul 18, 2010 at 08:02:50PM +0200, Reinhard Tartler wrote : >> It's not, and I've elaborated why in the paragraph you've killed in >> your reply. > What do you need? sha1s of the commits? That sounds great. Even better if in form of links to gitweb, so that one can directly inspect the diff. >> This has not changed, but AFAIUI, there are only very focused and >> documented changes in bugfix branches. Maybe I'm wrong here? If yes, >> then a stable release update needs to cherry-pick the relevant changes. >> Nothing really surprising, IMHO. > This has never been the case. See below, > >> I think the misunderstanding is about the 1.0-bugfix and 1.1-bugfix >> branches. Can you perhaps explain me the update/commit policy in the >> 1.0-bufix branch? what patches qualify and what don't? Is there a wiki >> page or something I can read about? > > There is no defined policy. > > ABI and API should be compatible. > > But, various fixes, or small improvements should go there. > But also new features can enter there, as 1.1.1 can show... > > Those branches aren't 'small fixes' and 'security' only. Hm, so they probably don't meet the stable release update policy of neither debian nor ubuntu. That makes things of course more difficult. So what basically would indeed help was if you as upstream could help us identify to security or otherwise important changes (patches). Ideally in form of a VSA or at least in a ChangeLog file or something. -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From remi at remlab.net Sun Jul 18 20:37:59 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sun, 18 Jul 2010 21:37:59 +0300 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <87wrssis6t.fsf@faui44a.informatik.uni-erlangen.de> References: <201007122154.54917.remi@remlab.net> <20100718174146.GB9850@videolan.org> <87wrssis6t.fsf@faui44a.informatik.uni-erlangen.de> Message-ID: <201007182138.00023.remi@remlab.net> Le dimanche 18 juillet 2010 21:02:50 Reinhard Tartler, vous avez ?crit : > On Sun, Jul 18, 2010 at 19:41:46 (CEST), Jean-Baptiste Kempf wrote: > > On Sun, Jul 18, 2010 at 06:14:26PM +0200, Reinhard Tartler wrote : > >> I think the biggest problem we face here is communication. It is totally > >> unreasonable to expect everyone to read and follow vlc. Can you please > >> either be more explicit with your VSAs or perhaps create a more > >> specialized mailing list for such issues? > > > > http://www.videolan.org/security/ is not enough for you? > > It's not, and I've elaborated why in the paragraph you've killed in > your reply. Sure. But as nice as it would be, we simply can't put CVE identifiers in commit logs, as they are allocated afterwards. We can and often do point at commits in the advisory. In the last occurence though, this was not possible since they were not self-contained individual commits. > >> > But even then, how do you plan to upgrade from 1.0.2 to 1.0.6? > >> > >> I don't understand the question. Of course by preparing an upload and > >> uploading it! > > > > Waouw, since when has this changed? > > 'we cannot update because this release change functionnalities' is what > > we usually had... > > This has not changed, but AFAIUI, there are only very focused and > documented changes in bugfix branches. Maybe I'm wrong here? If yes, > then a stable release update needs to cherry-pick the relevant changes. Generally, it mostly contains bug fixes. But as long as the source and binary interfaces remain compatible, and regression are perceived as very unlikely, new features can and do go in. > Nothing really surprising, IMHO. It's not surprising. What's surprising is that you seem to expect the VideoLAN project to do that. Different distros have different policies w.r.t. what can go in and when. With no fewer than 20 VLC releases published since Lenny, there is no way in hell that the VideoLAN project could maintain security patches/branches for every releases. And I don't think any other open-source project does that either. I could understand a statement that you don't buy in the computer security theater, and so don't need security updates. But that would be another discussion, and that does not seem to be the case. > >> > Or from 1.1.x in final Maverick, to 1.1.x+{1,2,...} ? VideoLAN won't > >> > provide one stable tree per release! We can't afford the kernel's > >> > luxury time-wise. > >> > >> I guess 1.0-bugfix and 1.1-bugfix branches do exist, yes? What's the > >> problem? > > > > You don't understand him. He is speaking about 1.1.0-bugfix, > > 1.1.1-bugfix, etc... > > I think the misunderstanding is about the 1.0-bugfix and 1.1-bugfix > branches. Can you perhaps explain me the update/commit policy in the > 1.0-bufix branch? what patches qualify and what don't? Is there a wiki > page or something I can read about? In 1.0-bugfix the current policy is that it is DEAD. It just happens that there have been no security advisories since 1.0.6, and so 1.0-bugfix happens to be up-to-date w.r.t. security matters. But for 1.1-bugfix, there will be select low-risk new features probably until shortly before 1.2.0 is out. And 1.2.0 will probably be out long after Maverick. So that does not work in the medium term. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Sun Jul 18 20:38:05 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 18 Jul 2010 20:38:05 +0200 Subject: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 In-Reply-To: <004701cb26a6$571c2500$05546f00$@com> References: <000601cb2628$a7bfbfe0$f73f3fa0$@com> <20100718091027.GA10919@videolan.org> <000601cb2696$2c5a33d0$850e9b70$@com> <20100718173408.GA9300@videolan.org> <003e01cb26a2$78056cd0$68104670$@com> <20100718180101.GA13687@videolan.org> <004701cb26a6$571c2500$05546f00$@com> Message-ID: <20100718183805.GA21356@videolan.org> On Sun, Jul 18, 2010 at 02:23:35PM -0400, Manol Manolov wrote : > > Why is it so? > > Go blame MS for their disobedient to the standards. Blaming MS those days is over-done and not even funny anymore... There are better targets :D The question was more about dvb/bda modules in VLC: dvb: #define FREQ_LONGTEXT N_("In kHz for DVB-S or Hz for DVB-C/T") bda: #if defined(WIN32) || defined(WINCE) # define FREQ_LONGTEXT N_("In kHz for DVB-S or Hz for DVB-C/T") cqam is more like dvb-c, right? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From man40dev at gmail.com Sun Jul 18 20:49:53 2010 From: man40dev at gmail.com (Manol Manolov) Date: Sun, 18 Jul 2010 14:49:53 -0400 Subject: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 In-Reply-To: <20100718183805.GA21356@videolan.org> References: <000601cb2628$a7bfbfe0$f73f3fa0$@com> <20100718091027.GA10919@videolan.org> <000601cb2696$2c5a33d0$850e9b70$@com> <20100718173408.GA9300@videolan.org> <003e01cb26a2$78056cd0$68104670$@com> <20100718180101.GA13687@videolan.org> <004701cb26a6$571c2500$05546f00$@com> <20100718183805.GA21356@videolan.org> Message-ID: <005001cb26aa$038dc6b0$0aa95410$@com> Clear QAM is Digital Cable so technically should be US synonym of dvb-c. Every tune Locator (part of the tune request) implements the set_carrierfrequency differently. Rules are not for the big fishes... I guess we just need to change the text to #define FREQ_LONGTEXT N_("In kHz for DVB-S and Clear QAM or Hz for DVB-C/T") Do you want me to make a patch for that? -----Original Message----- From: vlc-devel-bounces at videolan.org [mailto:vlc-devel-bounces at videolan.org] On Behalf Of Jean-Baptiste Kempf Sent: Sunday, July 18, 2010 2:38 PM To: Mailing list for VLC media player developers Subject: Re: [vlc-devel] Support for Clear QAM also improved BDA under Windows 7 On Sun, Jul 18, 2010 at 02:23:35PM -0400, Manol Manolov wrote : > > Why is it so? > > Go blame MS for their disobedient to the standards. Blaming MS those days is over-done and not even funny anymore... There are better targets :D The question was more about dvb/bda modules in VLC: dvb: #define FREQ_LONGTEXT N_("In kHz for DVB-S or Hz for DVB-C/T") bda: #if defined(WIN32) || defined(WINCE) # define FREQ_LONGTEXT N_("In kHz for DVB-S or Hz for DVB-C/T") cqam is more like dvb-c, right? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ _______________________________________________ vlc-devel mailing list To unsubscribe or modify your subscription options: http://mailman.videolan.org/listinfo/vlc-devel From siretart at tauware.de Sun Jul 18 21:15:20 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Sun, 18 Jul 2010 21:15:20 +0200 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <201007182138.00023.remi@remlab.net> (=?utf-8?Q?=22R=C3=A9mi?= Denis-Courmont"'s message of "Sun, 18 Jul 2010 21:37:59 +0300") References: <201007122154.54917.remi@remlab.net> <20100718174146.GB9850@videolan.org> <87wrssis6t.fsf@faui44a.informatik.uni-erlangen.de> <201007182138.00023.remi@remlab.net> Message-ID: <878w58iotz.fsf@faui44a.informatik.uni-erlangen.de> On Sun, Jul 18, 2010 at 20:37:59 (CEST), R?mi Denis-Courmont wrote: > Le dimanche 18 juillet 2010 21:02:50 Reinhard Tartler, vous avez ?crit : >> On Sun, Jul 18, 2010 at 19:41:46 (CEST), Jean-Baptiste Kempf wrote: >> > On Sun, Jul 18, 2010 at 06:14:26PM +0200, Reinhard Tartler wrote : >> >> I think the biggest problem we face here is communication. It is totally >> >> unreasonable to expect everyone to read and follow vlc. Can you please >> >> either be more explicit with your VSAs or perhaps create a more >> >> specialized mailing list for such issues? >> > >> > http://www.videolan.org/security/ is not enough for you? >> >> It's not, and I've elaborated why in the paragraph you've killed in >> your reply. > > Sure. But as nice as it would be, we simply can't put CVE identifiers in > commit logs, as they are allocated afterwards. We can and often do point at > commits in the advisory. In the last occurence though, this was not possible > since they were not self-contained individual commits. I don't think it is a practical problem to point than more than one diff in the announcement and/or changelog. Do you? >> >> > But even then, how do you plan to upgrade from 1.0.2 to 1.0.6? >> >> >> >> I don't understand the question. Of course by preparing an upload and >> >> uploading it! >> > >> > Waouw, since when has this changed? >> > 'we cannot update because this release change functionnalities' is what >> > we usually had... >> >> This has not changed, but AFAIUI, there are only very focused and >> documented changes in bugfix branches. Maybe I'm wrong here? If yes, >> then a stable release update needs to cherry-pick the relevant changes. > > Generally, it mostly contains bug fixes. But as long as the source and binary > interfaces remain compatible, and regression are perceived as very unlikely, > new features can and do go in. This then may qualify for an ubuntu stable release update[1], but probably not for a debian one. We could however try, I've seen that there has been formed a stable release manager team and opinions may have changed with that. [1] https://wiki.ubuntu.com/StableReleaseUpdates >> Nothing really surprising, IMHO. > > It's not surprising. What's surprising is that you seem to expect the VideoLAN > project to do that. Different distros have different policies w.r.t. what can > go in and when. With no fewer than 20 VLC releases published since Lenny, > there is no way in hell that the VideoLAN project could maintain security > patches/branches for every releases. And I don't think any other open-source > project does that either. I see, it seems that I was wrong here. > I could understand a statement that you don't buy in the computer security > theater, and so don't need security updates. But that would be another > discussion, and that does not seem to be the case. Let me make the statement that I'm interested in improving the situation for the vlc package in stable distro releases. >> >> > Or from 1.1.x in final Maverick, to 1.1.x+{1,2,...} ? VideoLAN won't >> >> > provide one stable tree per release! We can't afford the kernel's >> >> > luxury time-wise. >> >> >> >> I guess 1.0-bugfix and 1.1-bugfix branches do exist, yes? What's the >> >> problem? >> > >> > You don't understand him. He is speaking about 1.1.0-bugfix, >> > 1.1.1-bugfix, etc... >> >> I think the misunderstanding is about the 1.0-bugfix and 1.1-bugfix >> branches. Can you perhaps explain me the update/commit policy in the >> 1.0-bufix branch? what patches qualify and what don't? Is there a wiki >> page or something I can read about? > > In 1.0-bugfix the current policy is that it is DEAD. It just happens that > there have been no security advisories since 1.0.6, and so 1.0-bugfix happens > to be up-to-date w.r.t. security matters. > > But for 1.1-bugfix, there will be select low-risk new features probably until > shortly before 1.2.0 is out. And 1.2.0 will probably be out long after > Maverick. So that does not work in the medium term. I see. Well, my point still stands, a clearer identification of important issues (including but not strictly limited to security issues) would help packagers to identify patches that qualify for backporting. This backporting itself does not need to be done by upstream, I think, this means that I certainly don't expect you to actively maintain 1.x.y-bugfix branches, but I imagine that a little help with VSAs or a detailed ChangeLog or perhaps some wiki page to list and classify such patches would be probably little effort for you and help us immensly with preparing patches for released distro versions. -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From mirsal.ennaime at gmail.com Sun Jul 18 21:51:27 2010 From: mirsal.ennaime at gmail.com (Mirsal Ennaime) Date: Sun, 18 Jul 2010 21:51:27 +0200 Subject: [vlc-devel] [RFC] dbus plugin removal In-Reply-To: <201007181756.18816.remi@remlab.net> References: <201007181756.18816.remi@remlab.net> Message-ID: Hello, 2010/7/18 R?mi Denis-Courmont : > The libdbus control plugin is still waking up the CPU two times per seconds. I didn't realize this until I read your e-mail. I am willing to fix this issue and I just started working on a patch, which I will submit as soon as it works. > To make matters worse, it implements an interface (MPRIS) that > is widely accepted as broken by design. Indeed, however a new version of the spec which addresses the known design issues is being worked on and almost finished. (It already underwent several rounds of review and correction and it is rather close to being released. The current draft spec is here: http://www.mpris.org/mirsal/2.0-draft/spec.html) > On top of that, libdbus is not quite thread-safe. I thought the thread safety issues had been fixed. I need to dig a bit more to find out about this. Do you have any pointers ? Regards, -- Mirsal From remi at remlab.net Sun Jul 18 22:01:04 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sun, 18 Jul 2010 23:01:04 +0300 Subject: [vlc-devel] [RFC] dbus plugin removal In-Reply-To: References: <201007181756.18816.remi@remlab.net> Message-ID: <201007182301.05128.remi@remlab.net> Le dimanche 18 juillet 2010 22:51:27 Mirsal Ennaime, vous avez ?crit : > Hello, > > 2010/7/18 R?mi Denis-Courmont : > > The libdbus control plugin is still waking up the CPU two times per > > seconds. > > I didn't realize this until I read your e-mail. > I am willing to fix this issue and I just started working on a patch, > which I will submit as soon as it works. > > > To make matters worse, it implements an interface (MPRIS) that > > is widely accepted as broken by design. > > Indeed, however a new version of the spec which addresses the known > design issues is being worked on and almost finished. (It already > underwent several rounds of review and correction and it is rather > close to being released. The current draft spec is here: > http://www.mpris.org/mirsal/2.0-draft/spec.html) > > > On top of that, libdbus is not quite thread-safe. > > I thought the thread safety issues had been fixed. I need to dig a bit > more to find out about this. Do you have any pointers ? For a start, libdbus calls (un)setenv(). Then I don't see how LibVLC can call the threads init function early enough. And last, libdbus calls signal() which is not something a library should ever do. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Mon Jul 19 00:27:45 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Mon, 19 Jul 2010 00:27:45 +0200 Subject: [vlc-devel] Stupid questions about the VLC tree Message-ID: <20100718222745.GA30025@videolan.org> Why are playlist exports under modules/misc and not under modules/mux ? Why is lua under modules/misc and not directly under modules/ seeing the importance of lua those days? Why isn't there a modules/misc/text_renderer/ for all "text renderer" modules? Why are some subtitles codecs under modules/codecs/subtitles/ and some are just under modules/codecs/ ? Why are "sout access" under access_output/ and not under stream_! ? Why is http interface under control/ and not gui/ ? -- Jean-Baptiste Kempf http://www.jbkempf.com/ From remi at remlab.net Mon Jul 19 08:52:29 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Mon, 19 Jul 2010 08:52:29 +0200 Subject: [vlc-devel] Stupid questions about the VLC tree In-Reply-To: <20100718222745.GA30025@videolan.org> References: <20100718222745.GA30025@videolan.org> Message-ID: On Mon, 19 Jul 2010 00:27:45 +0200, Jean-Baptiste Kempf wrote: > Why are playlist exports under modules/misc and not under modules/mux ? It's not a muxers. The object interface is totally different. > Why is lua under modules/misc and not directly under modules/ seeing the > importance of lua those days? > > Why isn't there a modules/misc/text_renderer/ for all "text renderer" > modules? > > Why are some subtitles codecs under modules/codecs/subtitles/ and some > are just under modules/codecs/ ? Some people are sloppy and added codecs in the wrong directory (e.g. ASS). > Why are "sout access" under access_output/ and not under stream_! ? They're different kinds of modules. muxers and packetizers are not in stream_output either. > Why is http interface under control/ and not gui/ ? Technically, it is not a GUI as it does not depend on a UI framework, just like DBus. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From mirsal.ennaime at gmail.com Mon Jul 19 09:08:39 2010 From: mirsal.ennaime at gmail.com (Mirsal Ennaime) Date: Mon, 19 Jul 2010 09:08:39 +0200 Subject: [vlc-devel] [RFC] dbus plugin removal In-Reply-To: <201007182301.05128.remi@remlab.net> References: <201007181756.18816.remi@remlab.net> <201007182301.05128.remi@remlab.net> Message-ID: 2010/7/18 R?mi Denis-Courmont : > Le dimanche 18 juillet 2010 22:51:27 Mirsal Ennaime, vous avez ?crit : >> I thought the thread safety issues had been fixed. I need to dig a bit >> more to find out about this. Do you have any pointers ? > > For a start, libdbus calls (un)setenv(). Then I don't see how LibVLC can call > the threads init function early enough. And last, libdbus calls signal() which > is not something a library should ever do. Understood. Is it still a problem if all all the libdbus calls are made from a single thread at a time ? Would switching to dbus-glib an option ? (the notify module uses it through libnotify) Thanks for your insight. Regards, -- Mirsal From remi at remlab.net Mon Jul 19 09:23:21 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Mon, 19 Jul 2010 09:23:21 +0200 Subject: [vlc-devel] [RFC] dbus plugin removal In-Reply-To: References: <201007181756.18816.remi@remlab.net> <201007182301.05128.remi@remlab.net> Message-ID: On Mon, 19 Jul 2010 09:08:39 +0200, Mirsal Ennaime wrote: > Understood. > Is it still a problem if all all the libdbus calls are made from a > single thread at a time ? I fail to see how you're going to be able to do that. And it does not solve the problem anyway. > Would switching to dbus-glib an option ? (the notify module uses it > through libnotify) I fail to see the relevance. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From ivoire at videolan.org Mon Jul 19 09:47:59 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Mon, 19 Jul 2010 09:47:59 +0200 Subject: [vlc-devel] [RFC] id3tag removal In-Reply-To: <201007181753.50567.remi@remlab.net> References: <201007181753.50567.remi@remlab.net> Message-ID: <20100719074758.GH4631@dinauz.org> Hello, > The id3tag plugin has been disabled by default for longer than I remember. > Looking at the code, it is still assuming Latin-1, even though VLC has been > UTF-8 for several years. > > Unless someone objects, I will remove it in a few days. Yes you can (and that's a good idea IMHO). Best regards. -- R?mi Duraffort | ivoire From pankajdnapster at gmail.com Mon Jul 19 09:52:33 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Mon, 19 Jul 2010 00:52:33 -0700 Subject: [vlc-devel] [RFC] id3tag removal In-Reply-To: <20100719074758.GH4631@dinauz.org> References: <201007181753.50567.remi@remlab.net> <20100719074758.GH4631@dinauz.org> Message-ID: On Mon, Jul 19, 2010 at 12:47 AM, R?mi Duraffort wrote: > Hello, > > > The id3tag plugin has been disabled by default for longer than I > remember. > > Looking at the code, it is still assuming Latin-1, even though VLC has > been > > UTF-8 for several years. > > > > Unless someone objects, I will remove it in a few days. > Yes you can (and that's a good idea IMHO). > > > can you wait for say a month? > Best regards. > > -- > R?mi Duraffort | ivoire > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: From jb at videolan.org Mon Jul 19 10:04:15 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Mon, 19 Jul 2010 10:04:15 +0200 Subject: [vlc-devel] Stupid questions about the VLC tree In-Reply-To: References: <20100718222745.GA30025@videolan.org> Message-ID: <20100719080415.GA10152@videolan.org> On Mon, Jul 19, 2010 at 08:52:29AM +0200, R?mi Denis-Courmont wrote : > On Mon, 19 Jul 2010 00:27:45 +0200, Jean-Baptiste Kempf > wrote: > > Why are playlist exports under modules/misc and not under modules/mux ? > > It's not a muxers. The object interface is totally different. Why misc/ then? > > Why are "sout access" under access_output/ and not under stream_! ? > > They're different kinds of modules. muxers and packetizers are not in > stream_output either. Sorry, I might not have been clear, the question was the name of the folder, why is it called access_output and not something more related to stream, like stream_access? The way it is now makes it like it is related to access... But maybe that is just me. > > Why is http interface under control/ and not gui/ ? > > Technically, it is not a GUI as it does not depend on a UI framework, just > like DBus. Ok. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From pdherbemont at free.fr Mon Jul 19 10:54:16 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Mon, 19 Jul 2010 10:54:16 +0200 Subject: [vlc-devel] [vlc-commits] commit: MacOS: try to fix MacOS Audio crash (Jean-Baptiste Kempf ) In-Reply-To: <20100718161942.12AC1107C69@albiero.videolan.org> References: <20100718161942.12AC1107C69@albiero.videolan.org> Message-ID: On Sun, Jul 18, 2010 at 6:19 PM, wrote: > vlc | branch: master | Jean-Baptiste Kempf | Sun Jul 18 18:17:28 2010 +0200| [202c4d9c4fab9bf3391c887194d4f05999634d61] | committer: Jean-Baptiste Kempf > > MacOS: try to fix MacOS Audio crash > > Should fix #3767 > >> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=202c4d9c4fab9bf3391c887194d4f05999634d61 > --- > > ?modules/audio_output/auhal.c | ? ?2 +- > ?1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c > index 216e930..2af9776 100644 > --- a/modules/audio_output/auhal.c > +++ b/modules/audio_output/auhal.c > @@ -77,7 +77,7 @@ > ? ? sfm.mChannelsPerFrame, sfm.mBitsPerChannel > > ?#define FRAMESIZE 2048 > -#define BUFSIZE (FRAMESIZE * 8) > +#define BUFSIZE (FRAMESIZE * 8) * 8 Looks suspicious, what is wrong here? Pierre. From jb at videolan.org Mon Jul 19 10:59:47 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Mon, 19 Jul 2010 10:59:47 +0200 Subject: [vlc-devel] [vlc-commits] commit: MacOS: try to fix MacOS Audio crash (Jean-Baptiste Kempf ) In-Reply-To: References: <20100718161942.12AC1107C69@albiero.videolan.org> Message-ID: <20100719085947.GA20996@videolan.org> On Mon, Jul 19, 2010 at 10:54:16AM +0200, Pierre d'Herbemont wrote : > > -#define BUFSIZE (FRAMESIZE * 8) > > +#define BUFSIZE (FRAMESIZE * 8) * 8 > > Looks suspicious, what is wrong here? Search all forum, bugreports and external websites, and so on, about how VLC crashes with 5.1 (and more) outputs. Stacktraces are numerous... Maybe a *4 would work, but I prefered to be safe than non-working... This is bad, I know, but at least it fixes the issue for 1.1.1. Correct fix is welcome. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From pdherbemont at free.fr Mon Jul 19 11:20:10 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Mon, 19 Jul 2010 11:20:10 +0200 Subject: [vlc-devel] [vlc-commits] commit: MacOS: try to fix MacOS Audio crash (Jean-Baptiste Kempf ) In-Reply-To: <20100719085947.GA20996@videolan.org> References: <20100718161942.12AC1107C69@albiero.videolan.org> <20100719085947.GA20996@videolan.org> Message-ID: On Mon, Jul 19, 2010 at 10:59 AM, Jean-Baptiste Kempf wrote: > On Mon, Jul 19, 2010 at 10:54:16AM +0200, Pierre d'Herbemont wrote : >> > -#define BUFSIZE (FRAMESIZE * 8) >> > +#define BUFSIZE (FRAMESIZE * 8) * 8 >> >> Looks suspicious, what is wrong here? > > Search all forum, bugreports and external websites, and so on, about how > VLC crashes with 5.1 (and more) outputs. Stacktraces are numerous... > > Maybe a *4 would work, but I prefered to be safe than non-working... > > This is bad, I know, but at least it fixes the issue for 1.1.1. > > Correct fix is welcome. ok, thanks. This will increase memory footprint. We could probably have one alloc for 5.1, and an other for the rest. Pierre. From jb at videolan.org Mon Jul 19 11:21:25 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Mon, 19 Jul 2010 11:21:25 +0200 Subject: [vlc-devel] [vlc-commits] commit: MacOS: try to fix MacOS Audio crash (Jean-Baptiste Kempf ) In-Reply-To: References: <20100718161942.12AC1107C69@albiero.videolan.org> <20100719085947.GA20996@videolan.org> Message-ID: <20100719092125.GA25143@videolan.org> On Mon, Jul 19, 2010 at 11:20:10AM +0200, Pierre d'Herbemont wrote : > ok, thanks. This will increase memory footprint. We could probably > have one alloc for 5.1, and an other for the rest. You should target 7.1, though... But, it shouldn't be a static size, IMVVVHO Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From pdherbemont at free.fr Mon Jul 19 11:31:46 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Mon, 19 Jul 2010 11:31:46 +0200 Subject: [vlc-devel] [vlc-commits] commit: MacOS: try to fix MacOS Audio crash (Jean-Baptiste Kempf ) In-Reply-To: <20100719092125.GA25143@videolan.org> References: <20100718161942.12AC1107C69@albiero.videolan.org> <20100719085947.GA20996@videolan.org> <20100719092125.GA25143@videolan.org> Message-ID: On Mon, Jul 19, 2010 at 11:21 AM, Jean-Baptiste Kempf wrote: > On Mon, Jul 19, 2010 at 11:20:10AM +0200, Pierre d'Herbemont wrote : >> ok, thanks. This will increase memory footprint. We could probably >> have one alloc for 5.1, and an other for the rest. > You should target 7.1, though... > > But, it shouldn't be a static size, IMVVVHO Yes, we shouldn't crash as well. *sigh* Pierre. From jb at videolan.org Mon Jul 19 11:33:42 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Mon, 19 Jul 2010 11:33:42 +0200 Subject: [vlc-devel] [vlc-commits] commit: MacOS: try to fix MacOS Audio crash (Jean-Baptiste Kempf ) In-Reply-To: References: <20100718161942.12AC1107C69@albiero.videolan.org> <20100719085947.GA20996@videolan.org> <20100719092125.GA25143@videolan.org> Message-ID: <20100719093342.GA27673@videolan.org> On Mon, Jul 19, 2010 at 11:31:46AM +0200, Pierre d'Herbemont wrote : > Yes, we shouldn't crash as well. *sigh* It is a feature... -- Jean-Baptiste Kempf http://www.jbkempf.com/ From seananoc at gmail.com Sun Jul 18 18:34:11 2010 From: seananoc at gmail.com (=?ISO-8859-1?Q?Sean=E1n_=D3_Coist=EDn?=) Date: Sun, 18 Jul 2010 17:34:11 +0100 Subject: [vlc-devel] VLC en irlandais Message-ID: <4C432D03.8090107@gmail.com> Salut, Je voudrais traduire VLC en irlandais. Pouvez-vous s'il vous pla?t envoyez-moi le fichier? Merci beaucoup, Sean?n ? Coist?n Irlande From siretart at tauware.de Mon Jul 19 12:10:56 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Mon, 19 Jul 2010 12:10:56 +0200 Subject: [vlc-devel] [RFC] dbus plugin removal References: <201007181756.18816.remi@remlab.net> <201007182301.05128.remi@remlab.net> Message-ID: <87bpa3hjdb.fsf@faui44a.informatik.uni-erlangen.de> On Mon, Jul 19, 2010 at 09:23:21 (CEST), R?mi Denis-Courmont wrote: > On Mon, 19 Jul 2010 09:08:39 +0200, Mirsal Ennaime > wrote: >> Understood. >> Is it still a problem if all all the libdbus calls are made from a >> single thread at a time ? > > I fail to see how you're going to be able to do that. Instantiate a proxy object with fixed cpu affinity, and route all libdbus calls through that proxy. > And it does not solve the problem anyway. what problems are left? -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From remi at remlab.net Mon Jul 19 12:52:54 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Mon, 19 Jul 2010 12:52:54 +0200 Subject: [vlc-devel] [RFC] dbus plugin removal Message-ID: <72755c2ffef15679c3ace26096c79926@chewa.net> On Mon, 19 Jul 2010 12:10:56 +0200, Reinhard Tartler wrote: > On Mon, Jul 19, 2010 at 09:23:21 (CEST), R?mi Denis-Courmont wrote: > >> On Mon, 19 Jul 2010 09:08:39 +0200, Mirsal Ennaime >> wrote: >>> Understood. >>> Is it still a problem if all all the libdbus calls are made from a >>> single thread at a time ? >> >> I fail to see how you're going to be able to do that. > > Instantiate a proxy object with fixed cpu affinity, and route all > libdbus calls through that proxy. The problem is, libdbus is invoked from several places: - the DBus control plugin at stake here, - the inhibit plugin (or did we remove that already?), - the Telepathy plugin, - indirectly from the notify plugin, - indirectly from Qt4 UI libraries... I don't see how we can tell say Qt4 to use our proxy object. >> And it does not solve the problem anyway. > what problems are left? Even if we managed to interlock all libdbus calls, (un)setenv() could still crash any other thread calling getenv() from any other (non-DBus) code path... That was filed as FreeDesktop bug 27585 already. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From fcvlcdev at free.fr Mon Jul 19 15:16:53 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Mon, 19 Jul 2010 15:16:53 +0200 Subject: [vlc-devel] [PATCH] luascripts: add pluzz.fr In-Reply-To: <20100718192559.512ebc2f@kru> References: <20100718192559.512ebc2f@kru> Message-ID: <1279545413-30959-1-git-send-email-fcvlcdev@free.fr> --- share/Makefile.am | 2 + share/lua/playlist/pluzz.lua | 108 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 0 deletions(-) create mode 100644 share/lua/playlist/pluzz.lua diff --git a/share/Makefile.am b/share/Makefile.am index fe61d4b..59769b8 100644 --- a/share/Makefile.am +++ b/share/Makefile.am @@ -248,6 +248,7 @@ nobase_vlclib_DATA = \ lua/playlist/vimeo.luac \ lua/playlist/youtube.luac \ lua/playlist/youtube_homepage.luac \ + lua/playlist/pluzz.luac \ lua/sd/appletrailers.luac \ lua/sd/fmc.luac \ lua/sd/freebox.luac \ @@ -314,6 +315,7 @@ EXTRA_DIST += \ lua/playlist/vimeo.lua \ lua/playlist/youtube.lua \ lua/playlist/youtube_homepage.lua \ + lua/playlist/pluzz.lua \ lua/sd/README.txt \ lua/sd/appletrailers.lua \ lua/sd/fmc.lua \ diff --git a/share/lua/playlist/pluzz.lua b/share/lua/playlist/pluzz.lua new file mode 100644 index 0000000..d2e8516 --- /dev/null +++ b/share/lua/playlist/pluzz.lua @@ -0,0 +1,108 @@ +--[[ + Extracts video URL from Pluzz.fr video pages. + + $Id$ + + Copyright ?? 2010 the VideoLAN team + + 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 + (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. + + 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. +--]] + +-- Probe function. +function probe() + return vlc.access == "http" + and ( + string.match( vlc.path, "www.pluzz.fr" ) + or + string.match( vlc.path, "info.francetelevisions.fr" ) + ) +end + +-- Parse function. +function parse() + +-- the video's html page + if string.match( vlc.path, "www.pluzz.fr" ) then + while true + do + line = vlc.readline() + if not line then break end + + if string.match( line, " id=\"current_video\" " ) + then + _,_,path = string.find( line, " href=\"(.-)\" " ) + if path then + vlc.msg.dbg( "redirecting to resource " .. path ) + return { { path = "http://" .. path } } + else + vlc.msg.warn( "video resource url not found" ) + return { } + end + end + end + end + +-- the video's second html resource file + if string.match( vlc.path, "info.francetelevisions.fr" ) then + while true + do + line = vlc.readline() + if not line then break end + + if string.match( line, " name=\"urls%-url%-video\" " ) + then + _,_,path = string.find( line, " content=\"(.-)\"" ) + if path then + path = string.gsub(path, "geoloc/", "") + path = "mms://videozones.francetv.fr/" .. path + vlc.msg.dbg( "video url found " .. path ) + else + vlc.msg.warn( "video url not found" ) + return { } + end + end + + if string.match( line, " name=\"vignette%-titre%-court\" " ) + then + _,_,name = string.find( line, " content=\"(.-)\"" ) + name = vlc.strings.resolve_xml_special_chars( name ) + end + + if string.match( line, " name=\"description\" " ) + then + _,_,description = string.find( line, " content=\"(.-)\"" ) + description = vlc.strings.resolve_xml_special_chars( description ) + end + + if string.match( line, " name=\"vignette\" " ) + then + _,_,arturl = string.find( line, " content=\"(.-)\"" ) + if arturl then + arturl = "http://info.francetelevisions.fr" .. arturl + end + end + + if string.match( line, " name=\"vignette%-duree\" " ) + then + _,_,duration = string.find( line, " content=\"(.-)\"" ) + end + end + + return { { path = path; name = name; arturl = arturl; duration = duration; description = description } } + end + + vlc.msg.warn( "video resource parsing failed" ) + return { } +end -- 1.6.4.4 From remi at remlab.net Mon Jul 19 15:23:20 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Mon, 19 Jul 2010 15:23:20 +0200 Subject: [vlc-devel] [PATCH] luascripts: add pluzz.fr In-Reply-To: <1279545413-30959-1-git-send-email-fcvlcdev@free.fr> References: <20100718192559.512ebc2f@kru> <1279545413-30959-1-git-send-email-fcvlcdev@free.fr> Message-ID: <36017ac6be97f4e0ec7af8059ba8e198@chewa.net> Hasn't there been rulings against deep linking in France? On Mon, 19 Jul 2010 15:16:53 +0200, Francois Cartegnie wrote: > --- > share/Makefile.am | 2 + > share/lua/playlist/pluzz.lua | 108 > ++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 110 insertions(+), 0 deletions(-) > create mode 100644 share/lua/playlist/pluzz.lua > > diff --git a/share/Makefile.am b/share/Makefile.am > index fe61d4b..59769b8 100644 > --- a/share/Makefile.am > +++ b/share/Makefile.am > @@ -248,6 +248,7 @@ nobase_vlclib_DATA = \ > lua/playlist/vimeo.luac \ > lua/playlist/youtube.luac \ > lua/playlist/youtube_homepage.luac \ > + lua/playlist/pluzz.luac \ > lua/sd/appletrailers.luac \ > lua/sd/fmc.luac \ > lua/sd/freebox.luac \ > @@ -314,6 +315,7 @@ EXTRA_DIST += \ > lua/playlist/vimeo.lua \ > lua/playlist/youtube.lua \ > lua/playlist/youtube_homepage.lua \ > + lua/playlist/pluzz.lua \ > lua/sd/README.txt \ > lua/sd/appletrailers.lua \ > lua/sd/fmc.lua \ > diff --git a/share/lua/playlist/pluzz.lua b/share/lua/playlist/pluzz.lua > new file mode 100644 > index 0000000..d2e8516 > --- /dev/null > +++ b/share/lua/playlist/pluzz.lua > @@ -0,0 +1,108 @@ > +--[[ > + Extracts video URL from Pluzz.fr video pages. > + > + $Id$ > + > + Copyright 2010 the VideoLAN team > + > + 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 > + (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. > + > + 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. > +--]] > + > +-- Probe function. > +function probe() > + return vlc.access == "http" > + and ( > + string.match( vlc.path, "www.pluzz.fr" ) > + or > + string.match( vlc.path, "info.francetelevisions.fr" ) > + ) > +end > + > +-- Parse function. > +function parse() > + > +-- the video's html page > + if string.match( vlc.path, "www.pluzz.fr" ) then > + while true > + do > + line = vlc.readline() > + if not line then break end > + > + if string.match( line, " id=\"current_video\" " ) > + then > + _,_,path = string.find( line, " href=\"(.-)\" " ) > + if path then > + vlc.msg.dbg( "redirecting to resource " .. path ) > + return { { path = "http://" .. path } } > + else > + vlc.msg.warn( "video resource url not found" ) > + return { } > + end > + end > + end > + end > + > +-- the video's second html resource file > + if string.match( vlc.path, "info.francetelevisions.fr" ) then > + while true > + do > + line = vlc.readline() > + if not line then break end > + > + if string.match( line, " name=\"urls%-url%-video\" " ) > + then > + _,_,path = string.find( line, " content=\"(.-)\"" ) > + if path then > + path = string.gsub(path, "geoloc/", "") > + path = "mms://videozones.francetv.fr/" .. path > + vlc.msg.dbg( "video url found " .. path ) > + else > + vlc.msg.warn( "video url not found" ) > + return { } > + end > + end > + > + if string.match( line, " name=\"vignette%-titre%-court\" " ) > + then > + _,_,name = string.find( line, " content=\"(.-)\"" ) > + name = vlc.strings.resolve_xml_special_chars( name ) > + end > + > + if string.match( line, " name=\"description\" " ) > + then > + _,_,description = string.find( line, " content=\"(.-)\"" ) > + description = vlc.strings.resolve_xml_special_chars( > description ) > + end > + > + if string.match( line, " name=\"vignette\" " ) > + then > + _,_,arturl = string.find( line, " content=\"(.-)\"" ) > + if arturl then > + arturl = "http://info.francetelevisions.fr" .. arturl > + end > + end > + > + if string.match( line, " name=\"vignette%-duree\" " ) > + then > + _,_,duration = string.find( line, " content=\"(.-)\"" ) > + end > + end > + > + return { { path = path; name = name; arturl = arturl; duration = > duration; description = description } } > + end > + > + vlc.msg.warn( "video resource parsing failed" ) > + return { } > +end > -- > 1.6.4.4 -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From fcvlcdev at free.fr Mon Jul 19 15:47:59 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Mon, 19 Jul 2010 15:47:59 +0200 Subject: [vlc-devel] [PATCH] luascripts: add pluzz.fr In-Reply-To: <36017ac6be97f4e0ec7af8059ba8e198@chewa.net> References: <20100718192559.512ebc2f@kru> <1279545413-30959-1-git-send-email-fcvlcdev@free.fr> <36017ac6be97f4e0ec7af8059ba8e198@chewa.net> Message-ID: <201007191547.59754.fcvlcdev@free.fr> Le lundi 19 juillet 2010, vous avez ?crit : > Hasn't there been rulings against deep linking in France? > There was. The most recent is this one: http://legalis.net/spip.php?page=jurisprudence-decision&id_article=2941 But we do not provide any links and then are not deeplinking. (that would be different if we built a playlist from mainpage, allowing the user to skip the website). The user needs to access the page then copy the url into vlc. It's a silverlight alternative. Vlc acts as a browser. Ask an explicit auth prior to integration anyway ? Francois From man40dev at gmail.com Mon Jul 19 17:45:51 2010 From: man40dev at gmail.com (Manol Manolov) Date: Mon, 19 Jul 2010 11:45:51 -0400 Subject: [vlc-devel] Windows - Switching TV channels. Message-ID: <005f01cb2759$79722f10$6c568d30$@com> Is there a way to switch channels via playlist (m3u), without destroying the source (DirectShow graph Windows). Example: #EXTINF:0,WXCW HD #EXTVLCOPT:program=2 #EXTVLCOPT:dvb-frequency=222222 dvb:// #EXTINF:0,NBC We #EXTVLCOPT:program=7 #EXTVLCOPT:dvb-frequency=333333 dvb:// #EXTINF:0,WGCU HD #EXTVLCOPT:program=1 #EXTVLCOPT:dvb-frequency=444444 dvb:// I don't want to destroy the Graph. It is very slow and inefficient. -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Mon Jul 19 20:35:44 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Mon, 19 Jul 2010 21:35:44 +0300 Subject: [vlc-devel] =?utf-8?q?=5Bvlc-commits=5D_commit=3A_MSW=3A_fix_asse?= =?utf-8?q?rtion_failure_on_Open=28=29_error_paths_=28fix_=233889=29_=28_R?= =?utf-8?q?=C3=A9mi_Denis-Courmont_=29?= In-Reply-To: <20100719173407.9DFDF109EF1@albiero.videolan.org> References: <20100719173407.9DFDF109EF1@albiero.videolan.org> Message-ID: <201007192135.44443.remi@remlab.net> Le lundi 19 juillet 2010 20:34:07 git at videolan.org, vous avez ?crit : > vlc | branch: master | R?mi Denis-Courmont | Mon Jul 19 > 20:32:55 2010 +0300| [1f253df8acc7f2c249c1aae2ba44cae2020a45f7] | > committer: R?mi Denis-Courmont > > MSW: fix assertion failure on Open() error paths (fix #3889) > > Do not try to delete a callback and/or a mutex that do not exist. > The goto error paths still look a bit suspicious, someone should > double check them. Laurent told me he thinks this commit is enough afterall. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From fenrir at elivagar.org Mon Jul 19 21:04:07 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Mon, 19 Jul 2010 21:04:07 +0200 Subject: [vlc-devel] Windows - Switching TV channels. In-Reply-To: <005f01cb2759$79722f10$6c568d30$@com> References: <005f01cb2759$79722f10$6c568d30$@com> Message-ID: <20100719190407.GA14416@elivagar.org> Hi, On Mon, Jul 19, 2010 at 11:45:51AM -0400, Manol Manolov wrote: > Is there a way to switch channels via playlist (m3u), without destroying the > source (DirectShow graph Windows). No, not at the moment. The thing is that on URL changes, the whole bda access is destroyed and then reopenned. Regards, -- fenrir From man40dev at gmail.com Mon Jul 19 21:07:21 2010 From: man40dev at gmail.com (Manol Manolov) Date: Mon, 19 Jul 2010 15:07:21 -0400 Subject: [vlc-devel] Windows - Switching TV channels. In-Reply-To: <20100719190407.GA14416@elivagar.org> References: <005f01cb2759$79722f10$6c568d30$@com> <20100719190407.GA14416@elivagar.org> Message-ID: <001501cb2775$9ddbb670$d9932350$@com> > The thing is that on URL changes, the whole bda access is destroyed and >then reopenned. I'm changing the BDA so when it sends TuneRequest to pause the graph then submit request and then run. Currently, when you send TuneRequest it rebuilds the graph. I guess the only way to switch a channel in that case is to make a UI that calls the TuneRequest function... right? From remi at remlab.net Mon Jul 19 22:15:04 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Mon, 19 Jul 2010 23:15:04 +0300 Subject: [vlc-devel] AUTHORS and THANKS Message-ID: <201007192315.04821.remi@remlab.net> Hello, The AUTHORS file is completely out-of-date. Besides, considering to ego and modesty issues, I am not sure it can really be maintained. I would like to replace it with the list of contributors from THANKS, *without* the second column (which is often inaccurate anyway). Then THANKS would only contain the donators. After that, we can check if some names are missing from the git history. Any objections? -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Mon Jul 19 22:18:04 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Mon, 19 Jul 2010 23:18:04 +0300 Subject: [vlc-devel] Windows - Switching TV channels. In-Reply-To: <001501cb2775$9ddbb670$d9932350$@com> References: <005f01cb2759$79722f10$6c568d30$@com> <20100719190407.GA14416@elivagar.org> <001501cb2775$9ddbb670$d9932350$@com> Message-ID: <201007192318.04779.remi@remlab.net> Le lundi 19 juillet 2010 22:07:21 Manol Manolov, vous avez ?crit : > > The thing is that on URL changes, the whole bda access is destroyed and > > > >then reopenned. > > I'm changing the BDA so when it sends TuneRequest to pause the graph then > submit request and then run. > Currently, when you send TuneRequest it rebuilds the graph. > I guess the only way to switch a channel in that case is to make a UI that > calls the TuneRequest function... right? When switching play list item, the current "access" object instance is destroyed, as well as the "demux" object and the decoders. To "tune", the same playlist item would need to be kept "playing" throughout. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From xtophe at chewa.net Mon Jul 19 23:11:45 2010 From: xtophe at chewa.net (Christophe Mutricy) Date: Mon, 19 Jul 2010 23:11:45 +0200 Subject: [vlc-devel] VLC en irlandais In-Reply-To: <4C432D03.8090107@gmail.com> References: <4C432D03.8090107@gmail.com> Message-ID: <20100719211145.GQ27619@chewa.net> Hello, On Sun, Jul 18, 10 at 17:34 +0100, Sean?n ? Coist?n wrote: > Je voudrais traduire VLC en irlandais. Pouvez-vous s'il vous pla?t > envoyez-moi le fichier? You can find the file to translate there: http://people.videolan.org/~xtophe/l10n/ga.po You can use poEdit or loKalize to translate. Make sure that you use UTF-8 as encoding. If you have question you can ask them on irc #videolan on irc.freenode.net or on the mailing-list vlc-devel at videolan.org When you have done a part of it you can send it to me or put it online and send us the link. There is a mailing list dedicated to translators. You can subscribe at http://mailman.videolan.org/listinfo/translators Thanks -- Xtophe From rafael.carre at gmail.com Tue Jul 20 06:22:55 2010 From: rafael.carre at gmail.com (=?UTF-8?B?UmFmYcOrbCBDYXJyw6k=?=) Date: Tue, 20 Jul 2010 06:22:55 +0200 Subject: [vlc-devel] AUTHORS and THANKS In-Reply-To: <201007192315.04821.remi@remlab.net> References: <201007192315.04821.remi@remlab.net> Message-ID: <20100720062255.7b2f941b@kru> On Mon, 19 Jul 2010 23:15:04 +0300 "R?mi Denis-Courmont" wrote: > Hello, > > The AUTHORS file is completely out-of-date. Besides, considering to > ego and modesty issues, I am not sure it can really be maintained. I > would like to replace it with the list of contributors from THANKS, > *without* the second column (which is often inaccurate anyway). Then > THANKS would only contain the donators. > > After that, we can check if some names are missing from the git > history. > > Any objections? Considering my own ego and modesty, don't forget to leave the names of people present in the current AUTHORS files. Else I think it's a good idea and we should just do that. Also I suggest leaving the list of 3rd party libraries in the THANKS file (it might even be necessary for FAAD2 if we redistribute it) -- ? Rafa?l Carr? ? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: not available URL: From blake.a.livingston at gmail.com Tue Jul 20 07:09:24 2010 From: blake.a.livingston at gmail.com (Blake Livingston) Date: Mon, 19 Jul 2010 22:09:24 -0700 Subject: [vlc-devel] [PATCH] This fixes incorrectly timed subtitles during transcodes Message-ID: Hi, I've been seeing a problem during transcodes where the subtitle timing is very far off (this has turned up in the forums a few times too). It turns out that during transcodes the subpictures aren't being marked as subtitles, so they are being treated as OSD subpictures, and are being timed off of mdate() rather than the correct time for the frame. This patch fixes it, though I'm not sure if this is the exactly the proper point to set b_subtitle = true. Happy to make changes if anyone has a suggestion on a better patch. Cheers, ~Blake -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Setting-b_subtitle-on-subpictures-during-transcode-a.patch Type: application/octet-stream Size: 1769 bytes Desc: not available URL: From juhovh at gmail.com Tue Jul 20 08:57:51 2010 From: juhovh at gmail.com (=?ISO-8859-1?Q?Juho_V=E4h=E4=2DHerttua?=) Date: Tue, 20 Jul 2010 09:57:51 +0300 Subject: [vlc-devel] AUTHORS and THANKS In-Reply-To: <20100720062255.7b2f941b@kru> References: <201007192315.04821.remi@remlab.net> <20100720062255.7b2f941b@kru> Message-ID: On Tue, Jul 20, 2010 at 7:22 AM, Rafa?l Carr? wrote: > Also I suggest leaving the list of 3rd party libraries in the THANKS > file (it might even be necessary for FAAD2 if we redistribute it) > As far as I can tell FAAD2 is plain GPLv2 these days. The short-lived additional clause was removed, if that is what you are referring to. Keeping 3rd party libraries in the THANKS is fine though. Juho -------------- next part -------------- An HTML attachment was scrubbed... URL: From beauze.h at gmail.com Tue Jul 20 10:13:17 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Tue, 20 Jul 2010 10:13:17 +0200 Subject: [vlc-devel] [Patch] Qt4: Fix typo Message-ID: Hi, In the open_net dialog, youRtube.com is given as an exemple. This patch "fixes" it. Regards, -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Qt4-Fixed-typo.patch Type: text/x-patch Size: 1093 bytes Desc: not available URL: From remi at remlab.net Tue Jul 20 10:16:05 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 20 Jul 2010 10:16:05 +0200 Subject: [vlc-devel] [Patch] Qt4: Fix typo In-Reply-To: References: Message-ID: <93bc2bbbb7d5ac8ca9ac3a9ee2981b3d@chewa.net> On Tue, 20 Jul 2010 10:13:17 +0200, Hugo Beauzee-Luyssen wrote: > In the open_net dialog, youRtube.com is given as an exemple. > This patch "fixes" it. I think this was on purpose. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From beauze.h at gmail.com Tue Jul 20 10:17:09 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Tue, 20 Jul 2010 10:17:09 +0200 Subject: [vlc-devel] [Patch] Qt4: Fix typo In-Reply-To: <93bc2bbbb7d5ac8ca9ac3a9ee2981b3d@chewa.net> References: <93bc2bbbb7d5ac8ca9ac3a9ee2981b3d@chewa.net> Message-ID: Well in that case my apologies, though i'd like to here the explanation :) 2010/7/20 R?mi Denis-Courmont : > > On Tue, 20 Jul 2010 10:13:17 +0200, Hugo Beauzee-Luyssen > wrote: >> In the open_net dialog, youRtube.com is given as an exemple. >> This patch "fixes" it. > > I think this was on purpose. > > -- > R?mi Denis-Courmont > http://www.remlab.net > http://fi.linkedin.com/in/remidenis > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -- Hugo Beauz?e-Luyssen From jb at videolan.org Tue Jul 20 10:58:13 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 20 Jul 2010 10:58:13 +0200 Subject: [vlc-devel] [PATCH] This fixes incorrectly timed subtitles during transcodes In-Reply-To: References: Message-ID: <20100720085813.GA3861@videolan.org> On Mon, Jul 19, 2010 at 10:09:24PM -0700, Blake Livingston wrote : > Happy to make changes if anyone has a suggestion on a better patch. Cosmetic, but you should configure you e-mail in git. See http://wiki.videolan.org/Git Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From tristanheaven at gmail.com Tue Jul 20 13:57:05 2010 From: tristanheaven at gmail.com (Tristan Heaven) Date: Tue, 20 Jul 2010 12:57:05 +0100 Subject: [vlc-devel] [PATCH] qt4: Fix stack smash in InputManager::UpdateVout Message-ID: Hi, This patch fixes a crash on x86_64 with GCC's -fstack-protector-all enabled. Thanks, -- Tristan -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-qt4-Fix-stack-smash-in-InputManager-UpdateVout.patch Type: application/octet-stream Size: 876 bytes Desc: not available URL: From lucianm at users.sourceforge.net Tue Jul 20 14:29:22 2010 From: lucianm at users.sourceforge.net (Lucian Muresan) Date: Tue, 20 Jul 2010 14:29:22 +0200 Subject: [vlc-devel] [PATCH] Added support for VDR recordings. In-Reply-To: <4BE5F298.7060409@web.de> References: <4BC0CEA6.8090501@web.de> <4BC9B42A.7030607@web.de> <20100508200957.GA19075@elivagar.org> <4BE5F298.7060409@web.de> Message-ID: <4C4596A2.6060408@users.sourceforge.net> Hi VLC devs & Tobias, any news on this plugin? Cheers, Lucian From jb at videolan.org Tue Jul 20 14:37:35 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 20 Jul 2010 14:37:35 +0200 Subject: [vlc-devel] [PATCH] Added support for VDR recordings. In-Reply-To: <4C4596A2.6060408@users.sourceforge.net> References: <4BC0CEA6.8090501@web.de> <4BC9B42A.7030607@web.de> <20100508200957.GA19075@elivagar.org> <4BE5F298.7060409@web.de> <4C4596A2.6060408@users.sourceforge.net> Message-ID: <20100720123735.GA13760@videolan.org> On Tue, Jul 20, 2010 at 02:29:22PM +0200, Lucian Muresan wrote : > any news on this plugin? obviously forgotten. What is the latest version of the patch? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From lucianm at users.sourceforge.net Tue Jul 20 15:01:56 2010 From: lucianm at users.sourceforge.net (Lucian Muresan) Date: Tue, 20 Jul 2010 15:01:56 +0200 Subject: [vlc-devel] [PATCH] Added support for VDR recordings. In-Reply-To: <20100720123735.GA13760@videolan.org> References: <4BC0CEA6.8090501@web.de> <4BC9B42A.7030607@web.de> <20100508200957.GA19075@elivagar.org> <4BE5F298.7060409@web.de> <4C4596A2.6060408@users.sourceforge.net> <20100720123735.GA13760@videolan.org> Message-ID: <4C459E44.9060709@users.sourceforge.net> On 20.07.2010 14:37, Jean-Baptiste Kempf wrote: > On Tue, Jul 20, 2010 at 02:29:22PM +0200, Lucian Muresan wrote : >> any news on this plugin? > > obviously forgotten. > > What is the latest version of the patch? Well, the last one I could find was attached here: http://mailman.videolan.org/pipermail/vlc-devel/2010-April/074665.html but your discussion about what modifications Tobias should still do went further until May, 9nth. BTW, that last version builds "outside the source tree" on my gentoo against vlc-1.1.0 (haven't tested it though, as I just built it over a ssh connection). I'll also try a mingw32 cross-build on gentoo, to get the DLL usable with the windows builds until the patch is included upstream (trying to avoid installing msys)... Greetings, Lucian From benoit.tuduri at gmail.com Tue Jul 20 19:50:46 2010 From: benoit.tuduri at gmail.com (=?ISO-8859-1?Q?beno=EEt_tuduri?=) Date: Tue, 20 Jul 2010 19:50:46 +0200 Subject: [vlc-devel] [PATCH] Fix typo for Save Playlist in french translation. Message-ID: Hello, You will find a patch to fix a typo in a File menu in french translation. Sincerly, Beno?t -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Fix-typo-for-Save-Playlist-in-french-translation.patch Type: application/octet-stream Size: 511 bytes Desc: not available URL: From atburrow at gmail.com Tue Jul 20 20:05:25 2010 From: atburrow at gmail.com (Austin Burrow) Date: Tue, 20 Jul 2010 13:05:25 -0500 Subject: [vlc-devel] DLNA Server Module Placement Message-ID: <006301cb2836$220689f0$66139dd0$@com> Hello, I have been working on the DLNA UPnP Server module, but I have run into some issues on where exactly I should place it. I currently have it in stream_out, but the module does more than stream. The module will broadcast itself periodically over the network, so DLNA clients will be able to see the server. The DLNA server module will also serve the available playlist to the DLNA client over the network using a DLNA UPnP protocol (not HTTP). Once the playlist is served, the client may request items to be streamed, which is where stream_out comes in. So my question to the community is this: Should I split this up into multiple modules? If so, where shall I place them? Regards, Austin Burrow -------------- next part -------------- An HTML attachment was scrubbed... URL: From fatbull at web.de Tue Jul 20 21:11:15 2010 From: fatbull at web.de (=?ISO-8859-1?Q?Tobias_G=FCntner?=) Date: Tue, 20 Jul 2010 21:11:15 +0200 Subject: [vlc-devel] [PATCH] Added support for VDR recordings. In-Reply-To: <20100720123735.GA13760@videolan.org> References: <4BC0CEA6.8090501@web.de> <4BC9B42A.7030607@web.de> <20100508200957.GA19075@elivagar.org> <4BE5F298.7060409@web.de> <4C4596A2.6060408@users.sourceforge.net> <20100720123735.GA13760@videolan.org> Message-ID: <4C45F4D3.9040103@web.de> Am 20.07.2010 14:37, schrieb Jean-Baptiste Kempf: > On Tue, Jul 20, 2010 at 02:29:22PM +0200, Lucian Muresan wrote : >> any news on this plugin? > > obviously forgotten. Not forgotten. I just have problems setting up and *keeping* a usable build environment, ranging from outdated packages and unreachable servers to crashes and corrupted repositories. What should be an easy fix turns out to be a nerve-wracking adventure. Sigh. Regards, Tobias From jb at videolan.org Tue Jul 20 22:33:19 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 20 Jul 2010 22:33:19 +0200 Subject: [vlc-devel] [PATCH] Added support for VDR recordings. In-Reply-To: <4C45F4D3.9040103@web.de> References: <4BC0CEA6.8090501@web.de> <4BC9B42A.7030607@web.de> <20100508200957.GA19075@elivagar.org> <4BE5F298.7060409@web.de> <4C4596A2.6060408@users.sourceforge.net> <20100720123735.GA13760@videolan.org> <4C45F4D3.9040103@web.de> Message-ID: <20100720203319.GA5659@videolan.org> On Tue, Jul 20, 2010 at 09:11:15PM +0200, Tobias G?ntner wrote : > Am 20.07.2010 14:37, schrieb Jean-Baptiste Kempf: > > On Tue, Jul 20, 2010 at 02:29:22PM +0200, Lucian Muresan wrote : > >> any news on this plugin? > > > > obviously forgotten. > > Not forgotten. I just have problems setting up and *keeping* a usable > build environment, ranging from outdated packages and unreachable > servers to crashes and corrupted repositories. What should be an easy > fix turns out to be a nerve-wracking adventure. Sigh. Do you need help? -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Tue Jul 20 22:33:43 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 20 Jul 2010 22:33:43 +0200 Subject: [vlc-devel] [PATCH] qt4: Fix stack smash in InputManager::UpdateVout In-Reply-To: References: Message-ID: <20100720203343.GB5659@videolan.org> On Tue, Jul 20, 2010 at 12:57:05PM +0100, Tristan Heaven wrote : > This patch fixes a crash on x86_64 with GCC's -fstack-protector-all enabled. Thanks, applied. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Tue Jul 20 22:34:27 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 20 Jul 2010 22:34:27 +0200 Subject: [vlc-devel] DLNA Server Module Placement In-Reply-To: <006301cb2836$220689f0$66139dd0$@com> References: <006301cb2836$220689f0$66139dd0$@com> Message-ID: <20100720203427.GC5659@videolan.org> Hello, On Tue, Jul 20, 2010 at 01:05:25PM -0500, Austin Burrow wrote : > I have been working on the DLNA UPnP Server module, but I have run into some > issues on where exactly I should place it. I currently have it in > stream_out, but the module does more than stream. The module will broadcast > itself periodically over the network, so DLNA clients will be able to see > the server. The DLNA server module will also serve the available playlist to > the DLNA client over the network using a DLNA UPnP protocol (not HTTP). Once > the playlist is served, the client may request items to be streamed, which > is where stream_out comes in. So my question to the community is this: > Should I split this up into multiple modules? If so, where shall I place > them? Are they logically independant? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Tue Jul 20 22:35:52 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 20 Jul 2010 22:35:52 +0200 Subject: [vlc-devel] AUTHORS and THANKS In-Reply-To: <201007192315.04821.remi@remlab.net> References: <201007192315.04821.remi@remlab.net> Message-ID: <20100720203552.GD5659@videolan.org> On Mon, Jul 19, 2010 at 11:15:04PM +0300, R?mi Denis-Courmont wrote : > The AUTHORS file is completely out-of-date. Besides, considering to ego and > modesty issues, I am not sure it can really be maintained. I would like to > replace it with the list of contributors from THANKS, *without* the second > column (which is often inaccurate anyway). Then THANKS would only contain the > donators. > > After that, we can check if some names are missing from the git history. > > Any objections? I don't care. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Tue Jul 20 22:40:36 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 20 Jul 2010 22:40:36 +0200 Subject: [vlc-devel] Stupid questions about the VLC tree In-Reply-To: <20100718222745.GA30025@videolan.org> References: <20100718222745.GA30025@videolan.org> Message-ID: <20100720204036.GE5659@videolan.org> On Mon, Jul 19, 2010 at 12:27:45AM +0200, Jean-Baptiste Kempf wrote : > Why is lua under modules/misc and not directly under modules/ seeing the > importance of lua those days? Proposal 1: move to modules/lua/ Proposal 2: stay in modules/misc/lua/ > Why are some subtitles codecs under modules/codecs/subtitles/ and some > are just under modules/codecs/ ? Proposal 1: # renamed: cvdsub.c -> subtitles/cvdsub.c # renamed: dvbsub.c -> subtitles/dvbsub.c # renamed: libass.c -> subtitles/libass.c # renamed: svcdsub.c -> subtitles/svcdsub.c Proposal 2: # renamed: subtitles/subsass.c -> subsass.c # renamed: subtitles/subsdec.c -> subsdec.c # renamed: subtitles/subsdec.h -> subsdec.h # renamed: subtitles/subsusf.c -> subsusf.c # renamed: subtitles/t140.c -> t140.c > Why are "sout access" under access_output/ and not under stream_! ? Proposal 1: rename access_output to sout_access Proposal 2: rename access_output to output_access Proposal 3: stay like this. Opinions? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From fenrir at elivagar.org Wed Jul 21 01:01:49 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 21 Jul 2010 01:01:49 +0200 Subject: [vlc-devel] Stupid questions about the VLC tree In-Reply-To: <20100720204036.GE5659@videolan.org> References: <20100718222745.GA30025@videolan.org> <20100720204036.GE5659@videolan.org> Message-ID: <20100720230149.GA860@elivagar.org> Hi, On Tue, Jul 20, 2010 at 10:40:36PM +0200, Jean-Baptiste Kempf wrote: > > Why are some subtitles codecs under modules/codecs/subtitles/ and some > > are just under modules/codecs/ ? > > Proposal 1: > # renamed: cvdsub.c -> subtitles/cvdsub.c > # renamed: dvbsub.c -> subtitles/dvbsub.c > # renamed: libass.c -> subtitles/libass.c > # renamed: svcdsub.c -> subtitles/svcdsub.c > > Proposal 2: > # renamed: subtitles/subsass.c -> subsass.c > # renamed: subtitles/subsdec.c -> subsdec.c > # renamed: subtitles/subsdec.h -> subsdec.h > # renamed: subtitles/subsusf.c -> subsusf.c > # renamed: subtitles/t140.c -> t140.c If I have to choose, I prefer proposal 2 (we don't separate audio from video either). But I don't think that it's worth it (it will make history harder to follow). > > Why are "sout access" under access_output/ and not under stream_! ? > Proposal 1: rename access_output to sout_access > Proposal 2: rename access_output to output_access > Proposal 3: stay like this. 3 for me (same things, and I don't really like any name more than the others). Regards -- fenrir From hyc at highlandsun.com Wed Jul 21 01:45:50 2010 From: hyc at highlandsun.com (Howard Chu) Date: Tue, 20 Jul 2010 16:45:50 -0700 Subject: [vlc-devel] [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. In-Reply-To: References: Message-ID: <4C46352E.8070408@highlandsun.com> > And then, it seems that the rtmpdump is mindboggingly broken by design as it > uses white spaces in URL. I doubt that can work inside VLC. RTMP is broken by design. We did the best we can to make an interface that will work uniformly across all applications without requiring each application to be updated with new option flags whenever the underlying library is extended. Since new security mechanisms seem to pop up every few weeks, the maintenance overhead would be unacceptable any other way. For context, read http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2010-March/063971.html https://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2010-March/085026.html http://trac.xbmc.org/ticket/8971 The current approach works unambiguously precisely because spaces are not allowed inside of URLs - that means the librtmp options can never be confused with the RTMP URL options. -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/ From man40dev at gmail.com Wed Jul 21 03:00:49 2010 From: man40dev at gmail.com (Manol Manolov) Date: Tue, 20 Jul 2010 21:00:49 -0400 Subject: [vlc-devel] BDA fixes Message-ID: <005b01cb2870$29834cb0$7c89e610$@com> Here are some fixes in BDA. If you commit those, I'll add the Clear QAM support, because it depends on them. Thanks, Manol -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Improve-BDA-for-Windows-7-and-Vista.patch Type: application/octet-stream Size: 4678 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Remove-Shortcuts-in-BDA.patch Type: application/octet-stream Size: 1440 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Cosmetics-in-BDA-module.patch Type: application/octet-stream Size: 5049 bytes Desc: not available URL: From blake.a.livingston at gmail.com Wed Jul 21 08:04:22 2010 From: blake.a.livingston at gmail.com (Blake Livingston) Date: Tue, 20 Jul 2010 23:04:22 -0700 Subject: [vlc-devel] [PATCH] Setting b_subtitle on subpictures during transcode, and applying correct timing. Message-ID: >From 6bffb9add9df20610850e9a365246fd3ee968300 Mon Sep 17 00:00:00 2001 From: Blake Livingston Date: Tue, 20 Jul 2010 22:42:32 -0700 Subject: [PATCH] Setting b_subtitle on subpictures during transcode, and applying correct timing. --- modules/stream_out/transcode/spu.c | 4 +++- modules/stream_out/transcode/video.c | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/stream_out/transcode/spu.c b/modules/stream_out/transcode/spu.c index d031d9a..31211d9 100644 --- a/modules/stream_out/transcode/spu.c +++ b/modules/stream_out/transcode/spu.c @@ -38,7 +38,9 @@ static subpicture_t *spu_new_buffer( decoder_t *p_dec, const subpicture_updater_t *p_upd ) { VLC_UNUSED( p_dec ); - return subpicture_New( p_upd ); + subpicture_t *p_subpicture = subpicture_New( p_upd ); + p_subpicture->b_subtitle = true; + return p_subpicture; } static void spu_del_buffer( decoder_t *p_dec, subpicture_t *p_subpic ) diff --git a/modules/stream_out/transcode/video.c b/modules/stream_out/transcode/video.c index 8afe2c2..6d4f855 100644 --- a/modules/stream_out/transcode/video.c +++ b/modules/stream_out/transcode/video.c @@ -716,9 +716,8 @@ int transcode_video_process( sout_stream_t *p_stream, sout_stream_id_t *id, else fmt = id->p_decoder->fmt_out.video; - /* FIXME the mdate() seems highly suspicious */ spu_RenderSubpictures( p_sys->p_spu, p_pic, &fmt, - p_subpic, &id->p_decoder->fmt_out.video, mdate() ); + p_subpic, &id->p_decoder->fmt_out.video, p_pic->date ); } /* Run user specified filter chain */ -- 1.7.0.4 -------------- next part -------------- An HTML attachment was scrubbed... URL: From mirsal.ennaime at gmail.com Wed Jul 21 09:18:50 2010 From: mirsal.ennaime at gmail.com (Mirsal Ennaime) Date: Wed, 21 Jul 2010 09:18:50 +0200 Subject: [vlc-devel] DLNA Server Module Placement In-Reply-To: <20100720203427.GC5659@videolan.org> References: <006301cb2836$220689f0$66139dd0$@com> <20100720203427.GC5659@videolan.org> Message-ID: Hi, On Tue, Jul 20, 2010 at 10:34 PM, Jean-Baptiste Kempf wrote: > On Tue, Jul 20, 2010 at 01:05:25PM -0500, Austin Burrow wrote : >> I have been working on the DLNA UPnP Server module, but I have run into some >> issues on where exactly I should place it. I currently have it in >> stream_out, but the module does more than stream. The module will broadcast >> itself periodically over the network, so DLNA clients will be able to see >> the server. The DLNA server module will also serve the available playlist to >> the DLNA client over the network using a DLNA UPnP protocol (not HTTP). Once >> the playlist is served, the client may request items to be streamed, which >> is where stream_out comes in. So my question to the community is this: >> Should I split this up into multiple modules? If so, where shall I place >> them? > Are they logically independant? They can be, if the module which streams media is ready to serve any of the ContentDirectory items at any time (in which case, the only thing that would be shared between the two modules is the uri scheme). If you do it this way, you can put the transcoding / streaming part in a sout module. Either way, let the upnp part stay in modules/control as that code belongs to a control interface. I have a question too: Why not HTTP ? Many UPNP A/V devices support only the HTTP protocol, and if I remember well (correct me if I'm wrong, it's been a long time), even the DLNA spec doesn't mandate that devices support all the profiles, so I expect HTTP to be the most obvious common denominator between DLNA compliant devices as well. Using another protocol exclusively would lead to being incompatible with most UPNP A/V and DLNA devices. best regards, -- Mirsal From remi at remlab.net Wed Jul 21 09:57:01 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 21 Jul 2010 09:57:01 +0200 Subject: [vlc-devel] DLNA Server Module Placement In-Reply-To: <006301cb2836$220689f0$66139dd0$@com> References: <006301cb2836$220689f0$66139dd0$@com> Message-ID: Hello, Please avoid HTML on this mailing list. On Tue, 20 Jul 2010 13:05:25 -0500, "Austin Burrow" wrote: > I have been working on the DLNA UPnP Server module, but I have run into > some issues on where exactly I should place it. I currently have it in > stream_out, but the module does more than stream. The module will > broadcast itself periodically over the network, so DLNA clients will be > able to see the server. There was an early attempt by Cl?ment St?nac a long time ago to provide an abstraction for announces. Some of that is still left in src/stream_output/. Unfortunately, announce protocols are typically tightly coupled with the streaming protocol, so writing a common abstraction seems quite impossible, and in any case quite useless. Indeed, I don't see much commonality between SAP announces for RTP streams and UPnP announces for HTTP streams. > The DLNA server module will also serve the > available playlist to the DLNA client over the network using a DLNA UPnP > protocol (not HTTP). > Once the playlist is served, the client may request items to be streamed, > which is where stream_out comes in. So my question to the community is > this: > Should I split this up into multiple modules? This largely depends on what kind of "module" this is. I assume that, to enable streaming any playlist item, the plugin is actually an interface or something? Then it might probably go to modules/control/dlna/ . Splitting the control part from the streaming output part is a good idea, if feasible. >If so, where shall I place them? -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From jb at videolan.org Wed Jul 21 11:41:23 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 11:41:23 +0200 Subject: [vlc-devel] BDA fixes In-Reply-To: <005b01cb2870$29834cb0$7c89e610$@com> References: <005b01cb2870$29834cb0$7c89e610$@com> Message-ID: <20100721094123.GB21323@videolan.org> On Tue, Jul 20, 2010 at 09:00:49PM -0400, Manol Manolov wrote : > If you commit those, I'll add the Clear QAM support, because it depends on > them. Can you explain the patch 1 about CLSID vs GUID? Patch 2 seems ok. Patch 3 is wrong. Increase the max number in the src/ Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From remi at remlab.net Wed Jul 21 13:15:38 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 21 Jul 2010 13:15:38 +0200 Subject: [vlc-devel] ALSA problems Message-ID: <70692cd9eb19b74e8fe4f09c5b1dd4f4@chewa.net> Hello, For several years, there have been reports that VLC outputs choppy sound with ALSA. Last week end, I managed to reliably trigger the problem. I simply had to select an explicit ALSA device as output (i.e. vlc --alsa-audio-device hw:0,0), and the audio sample rate is 44100 Hz. Interestingly, if I leave the default, the sound is fine. Also, if I force the output to 48kHz with --aout-rate 48000, the sound is fine. I get the same problem with both "hw:0,0" and "plughw:0,0". I am using an Intel ICH6 audio card. This was quite common a few years ago, and should be similar to many other Intel motherboards. I suppose ALSA automatically resamples to 48kHz when the "default" output is used, otherwise I cannot explain this. I could not figure out the timing logic in the ALSAFill function from our ALSA plugin. The alsa-lib documentation is not exactly great either. So I have been unable to address this issue. I don't even know if it is a hardware, driver, ALSA-lib, or VLC issue. IOW, help is needed. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From vlc07 at sfina.com Wed Jul 21 13:41:00 2010 From: vlc07 at sfina.com (Yuval Levy) Date: Wed, 21 Jul 2010 07:41:00 -0400 Subject: [vlc-devel] Kubuntu... *K*one ? Message-ID: <201007210741.05819.vlc07@sfina.com> Hi VLC devs the Kubuntu devs are considering VLC as potential default media player [0]. Can somebody with knowledge of the issues mentioned in the thread please chime in? Thanks Yuv [0] https://lists.ubuntu.com/archives/kubuntu-devel/2010-July/004515.html -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. URL: From greg at chown.ath.cx Wed Jul 21 13:41:18 2010 From: greg at chown.ath.cx (Grigori Goronzy) Date: Wed, 21 Jul 2010 13:41:18 +0200 Subject: [vlc-devel] ALSA problems In-Reply-To: <70692cd9eb19b74e8fe4f09c5b1dd4f4@chewa.net> References: <70692cd9eb19b74e8fe4f09c5b1dd4f4@chewa.net> Message-ID: <4C46DCDE.1000106@chown.ath.cx> On 07/21/2010 01:15 PM, R?mi Denis-Courmont wrote: > For several years, there have been reports that VLC outputs choppy sound > with ALSA. Last week end, I managed to reliably trigger the problem. I > simply had to select an explicit ALSA device as output (i.e. vlc > --alsa-audio-device hw:0,0), and the audio sample rate is 44100 Hz. > Interestingly, if I leave the default, the sound is fine. Also, if I force > the output to 48kHz with --aout-rate 48000, the sound is fine. I get the > same problem with both "hw:0,0" and "plughw:0,0". > Much of audio hardware does not support arbitrary sample rates and lots of (older) integrated chipsets only support a sample rate of 48 KHz in hardware. So, software resampling is needed for all other sample rates. I'm sure the problem is somehow related to that. VLC should warn if they requested sample rate cannot be used, though... Have you tried explicitely enabling resampling? This can be done with snd_pcm_hw_params_set_rate_resample(). Anyway, IIRC using a hw: or plughw: device will always bypass automatic resampling, so you're pretty much SOL. Grigori From man40dev at gmail.com Wed Jul 21 14:03:14 2010 From: man40dev at gmail.com (Manol Manolov) Date: Wed, 21 Jul 2010 08:03:14 -0400 Subject: [vlc-devel] BDA fixes In-Reply-To: <20100721094123.GB21323@videolan.org> References: <005b01cb2870$29834cb0$7c89e610$@com> <20100721094123.GB21323@videolan.org> Message-ID: <007701cb28cc$b3a84560$1af8d020$@com> > Can you explain the patch 1 about CLSID vs GUID? It is more self explanatory type name. There is no difference. > Patch 3 is wrong. Increase the max number in the src/ You told me keeping the shortcuts less is better. I don't believe somebody uses the ones I removed. Moreover, some sound not in place like - "cable", "qam", "usdigital". Cable may be dvb-c, clear qam and I believe ISDB-T. Also ATSC is not US only. Qam is type of modulation... ans so on... From remi at remlab.net Wed Jul 21 14:23:05 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 21 Jul 2010 14:23:05 +0200 Subject: [vlc-devel] =?utf-8?q?Kubuntu=2E=2E=2E_*K*one_=3F?= In-Reply-To: <201007210741.05819.vlc07@sfina.com> References: <201007210741.05819.vlc07@sfina.com> Message-ID: <0b60d2445c966f9356ba4d56073d1871@chewa.net> On Wed, 21 Jul 2010 07:41:00 -0400, Yuval Levy wrote: > the Kubuntu devs are considering VLC as potential default media player > [0]. > > Can somebody with knowledge of the issues mentioned in the thread please > chime in? Do you happen to have the original email as attachment (or as an *.eml file), so we can actually "answer" ? -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 21 14:28:13 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 21 Jul 2010 14:28:13 +0200 Subject: [vlc-devel] ALSA problems In-Reply-To: <4C46DCDE.1000106@chown.ath.cx> References: <70692cd9eb19b74e8fe4f09c5b1dd4f4@chewa.net> <4C46DCDE.1000106@chown.ath.cx> Message-ID: <014c5b8bcb2b5b4d267e034b14dd5538@chewa.net> On Wed, 21 Jul 2010 13:41:18 +0200, Grigori Goronzy wrote: > Much of audio hardware does not support arbitrary sample rates and lots > of (older) integrated chipsets only support a sample rate of 48 KHz in > hardware. So, software resampling is needed for all other sample rates. > I'm sure the problem is somehow related to that. Yeah, the Maemo port is forcing 48000 by default already for that reason. > VLC should warn if they requested sample rate cannot be used, though... > Have you tried explicitely enabling resampling? On the VLC side, yes and it works as said earlier. > This can be done with snd_pcm_hw_params_set_rate_resample(). I wonder if it is better to resample in VLC or in ALSA since both can do it ? > Anyway, IIRC using a hw: or plughw: device will always bypass automatic > resampling, so you're pretty much SOL. That would explain it. But my reading of the VLC ALSA code is that it requests the (input) audio codec's sample rate, and if that fails, falls back to whatever ALSA wants. In this case, ALSA-lib accepts 44100 even though it does not work properly. Or maybe I misinterpreted ALSA-lib: http://git.videolan.org/?p=vlc.git;a=blob;f=modules/audio_output/alsa.c;h=2216e819e532dd0c1d8a0a23abc85ffa13231d3b;hb=HEAD#l584 (I did not write that code snippet) -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From dadatis at gmail.com Wed Jul 21 14:41:50 2010 From: dadatis at gmail.com (Daniel Tisza) Date: Wed, 21 Jul 2010 15:41:50 +0300 Subject: [vlc-devel] [PATCH] Integrate the RTMPdump library to play rtmp and rtmpe streams. In-Reply-To: <4C46352E.8070408@highlandsun.com> References: <4C46352E.8070408@highlandsun.com> Message-ID: Hi, Thanks Howard Chu for the comments from the librtmp side. My patch to this somehow controversial issue maintains that: 1. MRL is not passed straight to librtmp, so updating the plugin is required if librtmp gets new parameters. 2. MRL is not required to conform to librtmp specifics, e.g. spaces in the connection setup string. 3. All parameters in addition to the MRL are passed as VLC options, so the plugin can intercept and also use the parameter values, e.g. whether live stream or not. Whether this is a good approach or not, it is up to you, comments are more than welcome :-) Cheers, Daniel Tisza From xtophe at chewa.net Wed Jul 21 14:42:54 2010 From: xtophe at chewa.net (Christophe Mutricy) Date: Wed, 21 Jul 2010 13:42:54 +0100 Subject: [vlc-devel] Kubuntu... *K*one ? In-Reply-To: <201007210741.05819.vlc07@sfina.com> References: <201007210741.05819.vlc07@sfina.com> Message-ID: <1279716174.18867.2.camel@Tuiga> Hello, > Can somebody with knowledge of the issues mentioned in the thread please chime > in? The only issue pointed is the number of deepedencies. I don't see how we can help with that. It's moree a matter for the Ubuntu packagers and release team to move the package to main rather than universe. -- xtophe From man40dev at gmail.com Wed Jul 21 14:43:38 2010 From: man40dev at gmail.com (Manol Manolov) Date: Wed, 21 Jul 2010 08:43:38 -0400 Subject: [vlc-devel] Analog TV Windows Message-ID: <008001cb28d2$57ea09b0$07be1d10$@com> Do you guys still care for analog tv tuners? I've got some code who can do: - ability to set frequency (instead of channel/country) - ability to set video standard (PAL SECAM NTSC) - scanning maybe... http://msdn.microsoft.com/en-us/library/ff567800%28VS.85%29.aspx Are you interested? Best regards, Manol From fcvlcdev at free.fr Wed Jul 21 15:21:29 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Wed, 21 Jul 2010 15:21:29 +0200 Subject: [vlc-devel] New playlist design: Was: Kubuntu... *K*one ? In-Reply-To: <201007210741.05819.vlc07@sfina.com> References: <201007210741.05819.vlc07@sfina.com> Message-ID: <201007211521.29401.fcvlcdev@free.fr> Le mercredi 21 juillet 2010, Yuval Levy a ?crit : > [0] https://lists.ubuntu.com/archives/kubuntu-devel/2010-July/004515.html >> "It has a pretty ugly UI though. "Advanced Open File" yuck." This side is usability: so I'm in. Time to reopen my last february "new playlist design" thread. http://mailman.videolan.org/pipermail/vlc-devel/2010-February/072623.html Somewhat close to what I'd like to achieve http://img11.imageshack.us/img11/8595/screenshot005mz.png http://pillateunlinux.files.wordpress.com/2009/12/amarok.jpg Francois From remi at remlab.net Wed Jul 21 15:45:16 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 21 Jul 2010 15:45:16 +0200 Subject: [vlc-devel] =?utf-8?q?New_playlist_design=3A_Was=3A_Kubuntu=2E=2E?= =?utf-8?q?=2E_*K*one_=3F?= In-Reply-To: <201007211521.29401.fcvlcdev@free.fr> References: <201007210741.05819.vlc07@sfina.com> <201007211521.29401.fcvlcdev@free.fr> Message-ID: <5b44ce439ad46b1c19d3a2b1b6c79b06@chewa.net> On Wed, 21 Jul 2010 15:21:29 +0200, Francois Cartegnie wrote: > Le mercredi 21 juillet 2010, Yuval Levy a ?crit : > >> [0] > https://lists.ubuntu.com/archives/kubuntu-devel/2010-July/004515.html >>> "It has a pretty ugly UI though. "Advanced Open File" yuck." > > This side is usability: so I'm in. Well, this comment is explicitly complaining about the open dialog. Nobody commented on my earlier thread on this. That said, the real problem with Open File is, we don't know how to extend the "simple" open dialog. We need to be able to add subtitles somehow... -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From fcvlcdev at free.fr Wed Jul 21 15:58:06 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Wed, 21 Jul 2010 15:58:06 +0200 Subject: [vlc-devel] New playlist design: Was: Kubuntu... *K*one ? In-Reply-To: <5b44ce439ad46b1c19d3a2b1b6c79b06@chewa.net> References: <201007210741.05819.vlc07@sfina.com> <201007211521.29401.fcvlcdev@free.fr> <5b44ce439ad46b1c19d3a2b1b6c79b06@chewa.net> Message-ID: <201007211558.06530.fcvlcdev@free.fr> Le mercredi 21 juillet 2010, R?mi Denis-Courmont a ?crit : > Well, this comment is explicitly complaining about the open dialog. Nobody > commented on my earlier thread on this. That said, the real problem with > Open File is, we don't know how to extend the "simple" open dialog. We need > to be able to add subtitles somehow... > That's what we already discussed: The open/extended dialogs are just adding items to the "Now Playing" list from 1 to 4 different sources. The playlist 'manager' does the same with other sources. That's why I suggested merging. In the playlist, adding subtitles could be done as contextual action on supported entries. Francois From juhovh at iki.fi Wed Jul 21 15:58:33 2010 From: juhovh at iki.fi (=?ISO-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Wed, 21 Jul 2010 16:58:33 +0300 Subject: [vlc-devel] Set of patches to make VLC Qt4 interface compile and run on Mac Message-ID: <4C46FD09.6060709@iki.fi> Hi, I'm soon going to send a set of patches that aim to make the current git master to compile on Mac. Currently it only works with Qt4 that is compiled with Cocoa, as it passes the WId directly to video_output and as http://doc.qt.nokia.com/4.6/qwidget.html#winId says: "On Mac OS X, the type returned depends on which framework Qt was linked against. If Qt is using Carbon, the {WId} is actually an HIViewRef. If Qt is using Cocoa, {WId} is a pointer to an NSView." It can be made to work on Carbon compiled Qt as well with QMacCocoaViewContainer if running on OSX 10.5 or newer, as explained in http://doc.trolltech.com/4.6/qmaccocoaviewcontainer.html, but that would've practically required adding some Objective-C++ file that could access both Cocoa and Qt4 and I didn't bother at least for now. When compiling, something like: export QT4_CFLAGS="-DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Qt4.6/mkspecs/macx-g++ -I. -I/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/usr/include/QtCore -I/Library/Frameworks/QtGui.framework/Versions/4/Headers -I/usr/include/QtGui -I/usr/include -F/Library/Frameworks" export QT4_LIBS="-F/Library/Frameworks -L/Library/Frameworks -framework QtGui -framework QtCore" should be exported on the command line before configure for it to work with the Qt4 binaries downloadable from qt.nokia.com. Personally I used the prerelease binaries at http://qt.nokia.com/developer/qt-qtcreator-prerelease for testing. It crashes a lot, but at least I can hear the sound and watch the video, so I'd call it a good starting point. Juho From juhovh at iki.fi Wed Jul 21 15:54:21 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Wed, 21 Jul 2010 16:54:21 +0300 Subject: [vlc-devel] [PATCH 3/8] Add nsobject support to vout_window_t In-Reply-To: <1279720466-30379-1-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> Message-ID: <1279720466-30379-3-git-send-email-juhovh@iki.fi> --- include/vlc_vout_window.h | 6 ++++-- src/video_output/window.c | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/vlc_vout_window.h b/include/vlc_vout_window.h index 84d78ee..3d7e929 100644 --- a/include/vlc_vout_window.h +++ b/include/vlc_vout_window.h @@ -43,6 +43,7 @@ typedef struct vout_window_sys_t vout_window_sys_t; enum { VOUT_WINDOW_TYPE_XID, VOUT_WINDOW_TYPE_HWND, + VOUT_WINDOW_TYPE_NSOBJECT, }; /** @@ -88,8 +89,9 @@ struct vout_window_t { * It must be filled in the open function. */ union { - void *hwnd; /* Win32 window handle */ - uint32_t xid; /* X11 windows ID */ + void *hwnd; /* Win32 window handle */ + uint32_t xid; /* X11 windows ID */ + void *nsobject; /* Mac OSX view object */ } handle; /* display server (mandatory) */ diff --git a/src/video_output/window.c b/src/video_output/window.c index a8ef797..d79a4e2 100644 --- a/src/video_output/window.c +++ b/src/video_output/window.c @@ -64,6 +64,12 @@ vout_window_t *vout_window_New(vlc_object_t *obj, window->handle.hwnd = NULL; break; #endif +#ifdef __APPLE__ + case VOUT_WINDOW_TYPE_NSOBJECT: + type = "vout window nsobject"; + window->handle.nsobject = NULL; + break; +#endif case VOUT_WINDOW_TYPE_XID: type = "vout window xid"; window->handle.xid = 0; -- 1.7.0.4 From juhovh at iki.fi Wed Jul 21 15:54:22 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Wed, 21 Jul 2010 16:54:22 +0300 Subject: [vlc-devel] [PATCH 4/8] qt4: Remove the __STDC_ISO_10646__ ifdef, it's not found on win32 or osx In-Reply-To: <1279720466-30379-1-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> Message-ID: <1279720466-30379-4-git-send-email-juhovh@iki.fi> --- modules/gui/qt4/util/customwidgets.cpp | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) diff --git a/modules/gui/qt4/util/customwidgets.cpp b/modules/gui/qt4/util/customwidgets.cpp index 00e0296..b0318b8 100644 --- a/modules/gui/qt4/util/customwidgets.cpp +++ b/modules/gui/qt4/util/customwidgets.cpp @@ -392,11 +392,7 @@ int qtEventToVLCKey( QKeyEvent *e ) if( qtk <= 0xff ) /* VLC and X11 use lowercase whereas Qt uses uppercase */ -#if defined( __STDC_ISO_10646__ ) || defined( _WIN32 ) i_vlck = towlower( qtk ); -#else -# error FIXME -#endif else { const vlc_qt_key_t *map; -- 1.7.0.4 From juhovh at iki.fi Wed Jul 21 15:54:20 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Wed, 21 Jul 2010 16:54:20 +0300 Subject: [vlc-devel] [PATCH 2/8] Do not link to ole32 when trying to build Qt4 module on OSX In-Reply-To: <1279720466-30379-1-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> Message-ID: <1279720466-30379-2-git-send-email-juhovh@iki.fi> --- configure.ac | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index dfe97be..8979233 100644 --- a/configure.ac +++ b/configure.ac @@ -3891,8 +3891,13 @@ AS_IF([test "${enable_qt4}" != "no"], [ need_xid_provider="no" VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS ${X_CFLAGS}]) ], [ - VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32]) - VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS]) + AS_IF([test "${SYS}" != "darwin"], [ + VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32]) + VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS]) + ], [ + VLC_ADD_LIBS([qt4],[$QT4_LIBS]) + VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS]) + ]) ]) AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin) AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin) -- 1.7.0.4 From juhovh at iki.fi Wed Jul 21 15:54:19 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Wed, 21 Jul 2010 16:54:19 +0300 Subject: [vlc-devel] [PATCH 1/8] OSX: Don't force --enable-macosx on master, because the code is broken for now Message-ID: <1279720466-30379-1-git-send-email-juhovh@iki.fi> --- configure.ac | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 23e0566..dfe97be 100644 --- a/configure.ac +++ b/configure.ac @@ -243,8 +243,6 @@ case "${host_os}" in build_dir=`pwd` echo " Assuming --prefix=${build_dir}/vlc_install_dir" ac_default_prefix="${build_dir}/vlc_install_dir" - enable_macosx="yes" - echo " Assuming --enable-macosx" enable_faad="yes" echo " Assuming --enable-faad" enable_flac="yes" -- 1.7.0.4 From juhovh at iki.fi Wed Jul 21 15:54:23 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Wed, 21 Jul 2010 16:54:23 +0300 Subject: [vlc-devel] [PATCH 5/8] osx: Add vout_window_t support to macosx vout module In-Reply-To: <1279720466-30379-1-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> Message-ID: <1279720466-30379-5-git-send-email-juhovh@iki.fi> --- modules/video_output/macosx.m | 22 +++++++++++++++++++--- 1 files changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/video_output/macosx.m b/modules/video_output/macosx.m index 29cde85..4922516 100644 --- a/modules/video_output/macosx.m +++ b/modules/video_output/macosx.m @@ -98,6 +98,7 @@ struct vout_display_sys_t VLCOpenGLVideoView *glView; id container; + vout_window_t *embed; vout_opengl_t gl; vout_display_opengl_t vgl; @@ -118,15 +119,29 @@ static int Open(vlc_object_t *this) vd->sys = sys; sys->pool = NULL; sys->gl.sys = NULL; + sys->embed = NULL; /* Get the drawable object */ id container = var_CreateGetAddress(vd, "drawable-nsobject"); if (!container) { - msg_Dbg(vd, "No drawable-nsobject, passing over."); - goto error; + vout_window_cfg_t wnd_cfg; + + memset (&wnd_cfg, 0, sizeof (wnd_cfg)); + wnd_cfg.type = VOUT_WINDOW_TYPE_NSOBJECT; + wnd_cfg.x = var_InheritInteger (vd, "video-x"); + wnd_cfg.y = var_InheritInteger (vd, "video-y"); + wnd_cfg.width = vd->cfg->display.width; + wnd_cfg.height = vd->cfg->display.height; + + sys->embed = vout_display_NewWindow (vd, &wnd_cfg); + container = sys->embed->handle.nsobject; + if (!container) + { + msg_Dbg(vd, "No drawable-nsobject nor vout_window_t found, passing over."); + goto error; + } } - vout_display_DeleteWindow(vd, NULL); /* This will be released in Close(), on * main thread, after we are done using it. */ @@ -220,6 +235,7 @@ void Close(vlc_object_t *this) if (sys->gl.sys != NULL) vout_display_opengl_Clean(&sys->vgl); + vout_display_DeleteWindow(vd, sys->embed); free (sys); } -- 1.7.0.4 From juhovh at iki.fi Wed Jul 21 15:54:24 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Wed, 21 Jul 2010 16:54:24 +0300 Subject: [vlc-devel] [PATCH 6/8] osx: Remove -arch from CPPFLAGS, it is not needed and gets passed to moc on Qt4 In-Reply-To: <1279720466-30379-1-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> Message-ID: <1279720466-30379-6-git-send-email-juhovh@iki.fi> --- configure.ac | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/configure.ac b/configure.ac index 8979233..041eb35 100644 --- a/configure.ac +++ b/configure.ac @@ -222,7 +222,6 @@ case "${host_os}" in SYS=darwin CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CFLAGS="${CFLAGS_save}" CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CXXFLAGS="${CXXFLAGS_save}" - CPPFLAGS_save="${CPPFLAGS_save} ${ARCH_flag}"; CPPFLAGS="${CPPFLAGS_save}" OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"; OBJCFLAGS="${OBJCFLAGS_save}" LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names ${ARCH_flag}"; LDFLAGS="${LDFLAGS_save}" VLC_ADD_LDFLAGS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation]) -- 1.7.0.4 From juhovh at iki.fi Wed Jul 21 15:54:26 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Wed, 21 Jul 2010 16:54:26 +0300 Subject: [vlc-devel] [PATCH 8/8] qt4: Make the Qt4 interface compile on Mac OS X In-Reply-To: <1279720466-30379-1-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> Message-ID: <1279720466-30379-8-git-send-email-juhovh@iki.fi> --- modules/gui/qt4/qt4.cpp | 68 ++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 58 insertions(+), 10 deletions(-) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 990b255..7bd078e 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -41,6 +41,9 @@ #ifdef Q_WS_X11 #include #endif +#ifdef Q_WS_MAC + #include +#endif #include "../../../share/icons/32x32/vlc.xpm" #include "../../../share/icons/32x32/vlc-christmas.xpm" @@ -63,6 +66,7 @@ static int WindowOpen ( vlc_object_t * ); static void WindowClose ( vlc_object_t * ); static void *Thread ( void * ); static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * ); +static void Run ( intf_thread_t * ); /***************************************************************************** * Module descriptor @@ -248,14 +252,18 @@ vlc_module_begin () set_callbacks( OpenDialogs, Close ) -#if defined(Q_WS_X11) || defined(Q_WS_WIN) +#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_WS_MAC) add_submodule () #if defined(Q_WS_X11) set_capability( "vout window xid", 0 ) #elif defined(Q_WS_WIN) set_capability( "vout window hwnd", 0 ) +#elif defined(Q_WS_MAC) + set_capability( "vout window nsobject", 0 ) #endif set_callbacks( WindowOpen, WindowClose ) +#else +# error FIXME #endif vlc_module_end () @@ -297,6 +305,9 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider ) XCloseDisplay( p_display ); #else char *display = NULL; +# ifdef Q_WS_MAC + p_intf->b_should_run_on_first_thread = true; +# endif #endif bool busy; @@ -322,6 +333,9 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider ) x11_display = display; #endif vlc_sem_init (&ready, 0); +#ifdef Q_WS_MAC + Thread( p_intf ); +#else if( vlc_clone( &p_sys->thread, Thread, p_intf, VLC_THREAD_PRIORITY_LOW ) ) { delete p_sys; @@ -331,26 +345,45 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider ) vlc_mutex_unlock (&one.lock); return VLC_ENOMEM; } +#endif /* */ vlc_sem_wait (&ready); vlc_sem_destroy (&ready); - - if( !p_sys->b_isDialogProvider ) - { - playlist_t *pl = pl_Get(p_this); - var_Create (pl, "qt4-iface", VLC_VAR_ADDRESS); - var_SetAddress (pl, "qt4-iface", p_this); - var_Create (pl, "window", VLC_VAR_STRING); - var_SetString (pl, "window", "qt4,any"); - } return VLC_SUCCESS; } /* Open qt4 interface */ static int OpenIntf( vlc_object_t *p_this ) { + intf_thread_t *p_intf = (intf_thread_t*) p_this; + +#ifdef Q_WS_MAC + p_intf->pf_run = Run; + p_intf->b_should_run_on_first_thread = true; + return VLC_SUCCESS; +#else return Open( p_this, false ); +#endif +} + +/* This gets only called on Mac OS X and is always run + * from the main thread, a Cocoa compatibility hack */ +static void Run( intf_thread_t *p_intf ) +{ +#ifdef Q_WS_MAC + sigset_t set; + + /* Make sure the "force quit" menu item does quit instantly. + * VLC overrides SIGTERM which is sent by the "force quit" + * menu item to make sure deamon mode quits gracefully, so + * we un-override SIGTERM here. */ + sigemptyset( &set ); + sigaddset( &set, SIGTERM ); + pthread_sigmask( SIG_UNBLOCK, &set, NULL ); +#endif + + Open( (vlc_object_t*) p_intf, false ); } /* Open Dialog Provider */ @@ -456,6 +489,15 @@ static void *Thread( void *obj ) /* Explain how to show a dialog :D */ p_intf->pf_show_dialog = ShowDialog; + if( !p_intf->p_sys->b_isDialogProvider ) + { + playlist_t *pl = pl_Get(p_intf); + var_Create (pl, "qt4-iface", VLC_VAR_ADDRESS); + var_SetAddress (pl, "qt4-iface", p_intf); + var_Create (pl, "window", VLC_VAR_STRING); + var_SetString (pl, "window", "qt4,any"); + } + /* */ vlc_sem_post (&ready); @@ -574,6 +616,12 @@ static int WindowOpen( vlc_object_t *p_obj ) p_wnd->handle.hwnd = p_mi->getVideo( &i_x, &i_y, &i_width, &i_height ); if( !p_wnd->handle.hwnd ) return VLC_EGENERIC; + +#elif defined (Q_WS_MAC) + p_wnd->handle.nsobject = (void *) p_mi->getVideo( &i_x, &i_y, &i_width, &i_height ); + if( !p_wnd->handle.nsobject ) + return VLC_EGENERIC; + #else # error FIXME #endif -- 1.7.0.4 From juhovh at iki.fi Wed Jul 21 15:54:25 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Wed, 21 Jul 2010 16:54:25 +0300 Subject: [vlc-devel] [PATCH 7/8] osx: Fix a bug where glView frame doesn't get set if NSView parent is used In-Reply-To: <1279720466-30379-1-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> Message-ID: <1279720466-30379-7-git-send-email-juhovh@iki.fi> --- modules/video_output/macosx.m | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/modules/video_output/macosx.m b/modules/video_output/macosx.m index 4922516..e3a6dd4 100644 --- a/modules/video_output/macosx.m +++ b/modules/video_output/macosx.m @@ -165,7 +165,7 @@ static int Open(vlc_object_t *this) { NSView *parentView = container; [parentView performSelectorOnMainThread:@selector(addSubview:) withObject:sys->glView waitUntilDone:NO]; - [sys->glView performSelectorOnMainThread:@selector(setFrame:) withObject:[NSValue valueWithRect:[parentView bounds]] waitUntilDone:NO]; + [sys->glView performSelectorOnMainThread:@selector(setFrameWithValue:) withObject:[NSValue valueWithRect:[parentView bounds]] waitUntilDone:NO]; } else { @@ -391,6 +391,14 @@ static void OpenglSwap(vout_opengl_t *gl) } /** + * Gets called by the Open() method. + */ +- setFrameWithValue:(NSValue *)value +{ + [self setFrame:[value rectValue]]; +} + +/** * Gets called by the Close and Open methods. * (Non main thread). */ -- 1.7.0.4 From jb at videolan.org Wed Jul 21 16:03:04 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 16:03:04 +0200 Subject: [vlc-devel] [PATCH 1/8] OSX: Don't force --enable-macosx on master, because the code is broken for now In-Reply-To: <1279720466-30379-1-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> Message-ID: <20100721140304.GA10265@videolan.org> On Wed, Jul 21, 2010 at 04:54:19PM +0300, Juho V?h?-Herttua wrote : > configure.ac | 2 -- Rejected, this isn't the case anymore. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Wed Jul 21 16:04:12 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 16:04:12 +0200 Subject: [vlc-devel] [PATCH 2/8] Do not link to ole32 when trying to build Qt4 module on OSX In-Reply-To: <1279720466-30379-2-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-2-git-send-email-juhovh@iki.fi> Message-ID: <20100721140412.GB10265@videolan.org> On Wed, Jul 21, 2010 at 04:54:20PM +0300, Juho V?h?-Herttua wrote : > configure.ac | 9 +++++++-- Seems ok, maybe it should be the reverse: ie, -lole32 only on Win32. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Wed Jul 21 16:04:53 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 16:04:53 +0200 Subject: [vlc-devel] [PATCH 3/8] Add nsobject support to vout_window_t In-Reply-To: <1279720466-30379-3-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-3-git-send-email-juhovh@iki.fi> Message-ID: <20100721140453.GC10265@videolan.org> On Wed, Jul 21, 2010 at 04:54:21PM +0300, Juho V?h?-Herttua wrote : > include/vlc_vout_window.h | 6 ++++-- > src/video_output/window.c | 6 ++++++ Didn't Laurent ack-ed that one already ? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Wed Jul 21 16:08:07 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 16:08:07 +0200 Subject: [vlc-devel] [PATCH 4/8] qt4: Remove the __STDC_ISO_10646__ ifdef, it's not found on win32 or osx In-Reply-To: <1279720466-30379-4-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-4-git-send-email-juhovh@iki.fi> Message-ID: <20100721140807.GA11558@videolan.org> On Wed, Jul 21, 2010 at 04:54:22PM +0300, Juho V?h?-Herttua wrote : > modules/gui/qt4/util/customwidgets.cpp | 4 ---- There is a reason why this is the case, IIRC, so || defined( __APPLE__ ) might be better. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Wed Jul 21 16:08:53 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 16:08:53 +0200 Subject: [vlc-devel] [PATCH 5/8] osx: Add vout_window_t support to macosx vout module In-Reply-To: <1279720466-30379-5-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-5-git-send-email-juhovh@iki.fi> Message-ID: <20100721140853.GB11558@videolan.org> On Wed, Jul 21, 2010 at 04:54:23PM +0300, Juho V?h?-Herttua wrote : > + sys->embed = vout_display_NewWindow (vd, &wnd_cfg); > + container = sys->embed->handle.nsobject; Can't embed be NULL ? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From juhovh at iki.fi Wed Jul 21 16:10:58 2010 From: juhovh at iki.fi (=?ISO-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Wed, 21 Jul 2010 17:10:58 +0300 Subject: [vlc-devel] [PATCH 2/8] Do not link to ole32 when trying to build Qt4 module on OSX In-Reply-To: <20100721140412.GB10265@videolan.org> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-2-git-send-email-juhovh@iki.fi> <20100721140412.GB10265@videolan.org> Message-ID: <4C46FFF2.3000308@iki.fi> 21.7.2010 17:04, Jean-Baptiste Kempf kirjoitti: > On Wed, Jul 21, 2010 at 04:54:20PM +0300, Juho V?h?-Herttua wrote : > >> configure.ac | 9 +++++++-- >> > Seems ok, maybe it should be the reverse: ie, -lole32 only on Win32. > Actually I just remembered there was already discussion about this patch earlier, but I didn't change it back then. The code right before it goes: AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [ VLC_ADD_LIBS([qt4],[$QT4_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11]) need_xid_provider="no" VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS ${X_CFLAGS}]) ], [ AS_IF([test "${SYS}" != "darwin"], [ VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32]) VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS]) ], [ VLC_ADD_LIBS([qt4],[$QT4_LIBS]) VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS]) ]) ]) So I simply followed the convention used earlier to avoid any logical mistakes. I'm ok with changing it though. Juho From juhovh at iki.fi Wed Jul 21 16:13:40 2010 From: juhovh at iki.fi (=?ISO-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Wed, 21 Jul 2010 17:13:40 +0300 Subject: [vlc-devel] [PATCH 4/8] qt4: Remove the __STDC_ISO_10646__ ifdef, it's not found on win32 or osx In-Reply-To: <20100721140807.GA11558@videolan.org> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-4-git-send-email-juhovh@iki.fi> <20100721140807.GA11558@videolan.org> Message-ID: <4C470094.9060204@iki.fi> 21.7.2010 17:08, Jean-Baptiste Kempf kirjoitti: > There is a reason why this is the case, IIRC, so || defined( __APPLE__ ) > might be better. > I did the patch, because I'd like to know the actual reason. What I'm guessing is that the function might work differently on some platforms than others and the define is making sure it is working correctly. But in that case I don't know if some OS X platforms have it working differently as well, personal I'd like to hear the original reason for including it in the first place and judge by that. Anyone remembers? Juho From juhovh at iki.fi Wed Jul 21 16:15:10 2010 From: juhovh at iki.fi (=?ISO-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Wed, 21 Jul 2010 17:15:10 +0300 Subject: [vlc-devel] [PATCH 5/8] osx: Add vout_window_t support to macosx vout module In-Reply-To: <20100721140853.GB11558@videolan.org> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-5-git-send-email-juhovh@iki.fi> <20100721140853.GB11558@videolan.org> Message-ID: <4C4700EE.3010500@iki.fi> 21.7.2010 17:08, Jean-Baptiste Kempf kirjoitti: > On Wed, Jul 21, 2010 at 04:54:23PM +0300, Juho V?h?-Herttua wrote : > >> + sys->embed = vout_display_NewWindow (vd,&wnd_cfg); >> + container = sys->embed->handle.nsobject; >> > Can't embed be NULL ? > I'm not sure, but since it comes from the caller it sounds very likely. I'll fix that one. Juho From jb at videolan.org Wed Jul 21 16:17:46 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 16:17:46 +0200 Subject: [vlc-devel] [PATCH 6/8] osx: Remove -arch from CPPFLAGS, it is not needed and gets passed to moc on Qt4 In-Reply-To: <1279720466-30379-6-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-6-git-send-email-juhovh@iki.fi> Message-ID: <20100721141746.GA12863@videolan.org> On Wed, Jul 21, 2010 at 04:54:24PM +0300, Juho V?h?-Herttua wrote : > configure.ac | 1 - hmmm, ok. Are you sure it isn't needed for PPC ? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Wed Jul 21 16:18:14 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 16:18:14 +0200 Subject: [vlc-devel] [PATCH 7/8] osx: Fix a bug where glView frame doesn't get set if NSView parent is used In-Reply-To: <1279720466-30379-7-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-7-git-send-email-juhovh@iki.fi> Message-ID: <20100721141814.GB12863@videolan.org> On Wed, Jul 21, 2010 at 04:54:25PM +0300, Juho V?h?-Herttua wrote : > modules/video_output/macosx.m | 10 +++++++++- Seems ok. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From ileoo at videolan.org Wed Jul 21 16:24:56 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Wed, 21 Jul 2010 17:24:56 +0300 Subject: [vlc-devel] [PATCH 6/8] osx: Remove -arch from CPPFLAGS, it is not needed and gets passed to moc on Qt4 In-Reply-To: <20100721141746.GA12863@videolan.org> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-6-git-send-email-juhovh@iki.fi> <20100721141746.GA12863@videolan.org> Message-ID: <20100721142456.GA31434@ileoo> On Wed, Jul 21, 2010 at 04:17:46PM +0200, Jean-Baptiste Kempf wrote: > On Wed, Jul 21, 2010 at 04:54:24PM +0300, Juho V?h?-Herttua wrote : > > configure.ac | 1 - > hmmm, ok. Are you sure it isn't needed for PPC ? I don't think we have supported PPC for some time anymore. -- Ilkka Ollakka Paul's Law: In America, it's not how much an item costs, it's how much you save. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From juhovh at iki.fi Wed Jul 21 16:25:01 2010 From: juhovh at iki.fi (=?ISO-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Wed, 21 Jul 2010 17:25:01 +0300 Subject: [vlc-devel] [PATCH 6/8] osx: Remove -arch from CPPFLAGS, it is not needed and gets passed to moc on Qt4 In-Reply-To: <20100721141746.GA12863@videolan.org> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-6-git-send-email-juhovh@iki.fi> <20100721141746.GA12863@videolan.org> Message-ID: <4C47033D.701@iki.fi> 21.7.2010 17:17, Jean-Baptiste Kempf kirjoitti: > On Wed, Jul 21, 2010 at 04:54:24PM +0300, Juho V?h?-Herttua wrote : > >> configure.ac | 1 - >> > hmmm, ok. Are you sure it isn't needed for PPC ? > CPPFLAGS are for preprocessing and -arch is useful for compiling and linking (it affects the binary output of compiler), I very much doubt it is needed there. If it is however, I think someone is using CPPFLAGS incorrectly... Juho From jb at videolan.org Wed Jul 21 16:30:35 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 16:30:35 +0200 Subject: [vlc-devel] [PATCH 6/8] osx: Remove -arch from CPPFLAGS, it is not needed and gets passed to moc on Qt4 In-Reply-To: <20100721142456.GA31434@ileoo> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-6-git-send-email-juhovh@iki.fi> <20100721141746.GA12863@videolan.org> <20100721142456.GA31434@ileoo> Message-ID: <20100721143035.GA15893@videolan.org> On Wed, Jul 21, 2010 at 05:24:56PM +0300, Ilkka Ollakka wrote : > On Wed, Jul 21, 2010 at 04:17:46PM +0200, Jean-Baptiste Kempf wrote: > > On Wed, Jul 21, 2010 at 04:54:24PM +0300, Juho V?h?-Herttua wrote : > > > configure.ac | 1 - > > > hmmm, ok. Are you sure it isn't needed for PPC ? > > I don't think we have supported PPC for some time anymore. Why? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Wed Jul 21 16:32:29 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 16:32:29 +0200 Subject: [vlc-devel] Set of patches to make VLC Qt4 interface compile and run on Mac In-Reply-To: <4C46FD09.6060709@iki.fi> References: <4C46FD09.6060709@iki.fi> Message-ID: <20100721143229.GA16430@videolan.org> Hello, On Wed, Jul 21, 2010 at 04:58:33PM +0300, Juho V?h?-Herttua wrote : > I'm soon going to send a set of patches that aim to make the current git > master to compile on Mac. Currently it only works with Qt4 that is > compiled with Cocoa, as it passes the WId directly to video_output and > as http://doc.qt.nokia.com/4.6/qwidget.html#winId says: We should only care about QtCocoa anyway. > "On Mac OS X, the type returned depends on which framework Qt was linked > against. If Qt is using Carbon, the {WId} is actually an HIViewRef. If > Qt is using Cocoa, {WId} is a pointer to an NSView." > > It can be made to work on Carbon compiled Qt as well with > QMacCocoaViewContainer if running on OSX 10.5 or newer, as explained in > http://doc.trolltech.com/4.6/qmaccocoaviewcontainer.html, but that > would've practically required adding some Objective-C++ file that could > access both Cocoa and Qt4 and I didn't bother at least for now. Carbon is dead. > It crashes a lot, but at least I can hear the sound and watch the video, > so I'd call it a good starting point. Thanks. -- Jean-Baptiste Kempf http://www.jbkempf.com/ From ileoo at videolan.org Wed Jul 21 16:56:50 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Wed, 21 Jul 2010 17:56:50 +0300 Subject: [vlc-devel] [PATCH 6/8] osx: Remove -arch from CPPFLAGS, it is not needed and gets passed to moc on Qt4 In-Reply-To: <20100721143035.GA15893@videolan.org> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-6-git-send-email-juhovh@iki.fi> <20100721141746.GA12863@videolan.org> <20100721142456.GA31434@ileoo> <20100721143035.GA15893@videolan.org> Message-ID: <20100721145649.GB31434@ileoo> On Wed, Jul 21, 2010 at 04:30:35PM +0200, Jean-Baptiste Kempf wrote: > On Wed, Jul 21, 2010 at 05:24:56PM +0300, Ilkka Ollakka wrote : > > I don't think we have supported PPC for some time anymore. > Why? Latests vlc player in http://www.videolan.org/vlc/download-macosx.html for ppc is 1.0.5. and 10.6 osx doesn't anymore support ppc (not sure how long 10.5 will be supported). -- Ilkka Ollakka "Death is nature's way of saying `Howdy'". -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From remi at remlab.net Wed Jul 21 17:08:21 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 18:08:21 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5BPATCH_2/8=5D_Do_not_link_to_ole32_w?= =?iso-8859-1?q?hen_trying_to=09build_Qt4_module_on_OSX?= In-Reply-To: <20100721140412.GB10265@videolan.org> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-2-git-send-email-juhovh@iki.fi> <20100721140412.GB10265@videolan.org> Message-ID: <201007211808.21483.remi@remlab.net> Le mercredi 21 juillet 2010 17:04:12 Jean-Baptiste Kempf, vous avez ?crit : > On Wed, Jul 21, 2010 at 04:54:20PM +0300, Juho V?h?-Herttua wrote : > > configure.ac | 9 +++++++-- > > Seems ok, maybe it should be the reverse: ie, -lole32 only on Win32. In my opinion, it should rather detect which Q_WS_* value is defined. If needed, we can run the precompiler. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 21 17:13:26 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 18:13:26 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5BPATCH_4/8=5D_qt4=3A_Remove_the_=5F?= =?iso-8859-1?q?=5FSTDC=5FISO=5F10646=5F=5F=09ifdef_=2C_it=27s_not_found_o?= =?iso-8859-1?q?n_win32_or_osx?= In-Reply-To: <4C470094.9060204@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <20100721140807.GA11558@videolan.org> <4C470094.9060204@iki.fi> Message-ID: <201007211813.27176.remi@remlab.net> Le mercredi 21 juillet 2010 17:13:40 Juho V?h?-Herttua, vous avez ?crit : > 21.7.2010 17:08, Jean-Baptiste Kempf kirjoitti: > > There is a reason why this is the case, IIRC, so || defined( __APPLE__ ) > > > > might be better. > > I did the patch, because I'd like to know the actual reason. What I'm > guessing is that the function might work differently on some platforms > than others and the define is making sure it is working correctly. The behaviour of tolower() is not fully specified by the C standard. If ISO_10646 (i.e. Unicode) is not explicitly supported, we don't know *a priori* what towlower() does, especially on non-ASCII characters. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 21 17:14:32 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 18:14:32 +0300 Subject: [vlc-devel] [vlc-commits] commit: Force avcodec to be at least 52.25.0 and avfomat 52.30.0... ( Jean-Baptiste Kempf ) In-Reply-To: <20100720223224.8D80610A86D@albiero.videolan.org> References: <20100720223224.8D80610A86D@albiero.videolan.org> Message-ID: <201007211814.32674.remi@remlab.net> Le mercredi 21 juillet 2010 01:32:24 git at videolan.org, vous avez ?crit : > vlc | branch: master | Jean-Baptiste Kempf | Wed Jul 21 > 00:18:51 2010 +0200| [88041dfe447b0239779f0af66e212e04a1d14da8] | > committer: Jean-Baptiste Kempf > > Force avcodec to be at least 52.25.0 and avfomat 52.30.0... > > They are more than 1 year old... You broke Debian builds. I will not be testing my commits at all for the time being. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 21 17:23:49 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 18:23:49 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5BPATCH_5/8=5D_osx=3A_Add_vout=5Fwind?= =?iso-8859-1?q?ow=5Ft_support_to=09macosx_vout_module?= In-Reply-To: <4C4700EE.3010500@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <20100721140853.GB11558@videolan.org> <4C4700EE.3010500@iki.fi> Message-ID: <201007211823.49727.remi@remlab.net> Le mercredi 21 juillet 2010 17:15:10 Juho V?h?-Herttua, vous avez ?crit : > 21.7.2010 17:08, Jean-Baptiste Kempf kirjoitti: > > On Wed, Jul 21, 2010 at 04:54:23PM +0300, Juho V?h?-Herttua wrote : > >> + sys->embed = vout_display_NewWindow (vd,&wnd_cfg); > >> + container = sys->embed->handle.nsobject; > > > > Can't embed be NULL ? > > I'm not sure, but since it comes from the caller it sounds very likely. > I'll fix that one. It will be NULL in error cases. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 21 17:25:16 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 18:25:16 +0300 Subject: [vlc-devel] [PATCH 6/8] osx: Remove -arch from CPPFLAGS, it is not needed and gets passed to moc on Qt4 In-Reply-To: <4C47033D.701@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <20100721141746.GA12863@videolan.org> <4C47033D.701@iki.fi> Message-ID: <201007211825.16889.remi@remlab.net> Le mercredi 21 juillet 2010 17:25:01 Juho V?h?-Herttua, vous avez ?crit : > 21.7.2010 17:17, Jean-Baptiste Kempf kirjoitti: > > On Wed, Jul 21, 2010 at 04:54:24PM +0300, Juho V?h?-Herttua wrote : > >> configure.ac | 1 - > > > > hmmm, ok. Are you sure it isn't needed for PPC ? > > CPPFLAGS are for preprocessing and -arch is useful for compiling and > linking (it affects the binary output of compiler), I very much doubt it > is needed there. If it is however, I think someone is using CPPFLAGS > incorrectly... Uh no. The archictecture affects some predefined macros (in GCC at least). -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 21 17:26:28 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 18:26:28 +0300 Subject: [vlc-devel] [PATCH 8/8] qt4: Make the Qt4 interface compile on Mac OS X In-Reply-To: <1279720466-30379-8-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-8-git-send-email-juhovh@iki.fi> Message-ID: <201007211826.29278.remi@remlab.net> Le mercredi 21 juillet 2010 16:54:26 Juho V?h?-Herttua, vous avez ?crit : > --- > modules/gui/qt4/qt4.cpp | 68 > ++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 58 > insertions(+), 10 deletions(-) > > diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp > index 990b255..7bd078e 100644 > --- a/modules/gui/qt4/qt4.cpp > +++ b/modules/gui/qt4/qt4.cpp > @@ -41,6 +41,9 @@ > #ifdef Q_WS_X11 > #include > #endif > +#ifdef Q_WS_MAC > + #include > +#endif > > #include "../../../share/icons/32x32/vlc.xpm" > #include "../../../share/icons/32x32/vlc-christmas.xpm" > @@ -63,6 +66,7 @@ static int WindowOpen ( vlc_object_t * ); > static void WindowClose ( vlc_object_t * ); > static void *Thread ( void * ); > static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * > ); +static void Run ( intf_thread_t * ); > > /************************************************************************* > **** * Module descriptor > @@ -248,14 +252,18 @@ vlc_module_begin () > > set_callbacks( OpenDialogs, Close ) > > -#if defined(Q_WS_X11) || defined(Q_WS_WIN) > +#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_WS_MAC) > add_submodule () > #if defined(Q_WS_X11) > set_capability( "vout window xid", 0 ) > #elif defined(Q_WS_WIN) > set_capability( "vout window hwnd", 0 ) > +#elif defined(Q_WS_MAC) > + set_capability( "vout window nsobject", 0 ) > #endif > set_callbacks( WindowOpen, WindowClose ) > +#else > +# error FIXME > #endif I don't see why #error FIXME ? The Qt4 interface should work fine even if it cannot embed the video. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 21 17:27:42 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 18:27:42 +0300 Subject: [vlc-devel] [PATCH 3/8] Add nsobject support to vout_window_t In-Reply-To: <1279720466-30379-3-git-send-email-juhovh@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-3-git-send-email-juhovh@iki.fi> Message-ID: <201007211827.43025.remi@remlab.net> Le mercredi 21 juillet 2010 16:54:21 Juho V?h?-Herttua, vous avez ?crit : > --- > include/vlc_vout_window.h | 6 ++++-- > src/video_output/window.c | 6 ++++++ > 2 files changed, 10 insertions(+), 2 deletions(-) Merged, thanks. It cannot hurt. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 21 17:34:53 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 18:34:53 +0300 Subject: [vlc-devel] [PATCH] Fix typo for Save Playlist in french translation. In-Reply-To: References: Message-ID: <201007211834.53829.remi@remlab.net> Le mardi 20 juillet 2010 20:50:46 beno?t tuduri, vous avez ?crit : > Hello, > > You will find a patch to fix a typo in a File menu in french translation. Merged, thanks. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Wed Jul 21 18:04:06 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 18:04:06 +0200 Subject: [vlc-devel] [PATCH 6/8] osx: Remove -arch from CPPFLAGS, it is not needed and gets passed to moc on Qt4 In-Reply-To: <20100721145649.GB31434@ileoo> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-6-git-send-email-juhovh@iki.fi> <20100721141746.GA12863@videolan.org> <20100721142456.GA31434@ileoo> <20100721143035.GA15893@videolan.org> <20100721145649.GB31434@ileoo> Message-ID: <20100721160406.GA1505@videolan.org> On Wed, Jul 21, 2010 at 05:56:50PM +0300, Ilkka Ollakka wrote : > On Wed, Jul 21, 2010 at 04:30:35PM +0200, Jean-Baptiste Kempf wrote: > > On Wed, Jul 21, 2010 at 05:24:56PM +0300, Ilkka Ollakka wrote : > > > > I don't think we have supported PPC for some time anymore. > > > Why? > > Latests vlc player in http://www.videolan.org/vlc/download-macosx.html > for ppc is 1.0.5. and 10.6 osx doesn't anymore support ppc (not sure how > long 10.5 will be supported). The fact that noone bothered to do an official build doesn't mean it doesn't work. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Wed Jul 21 18:05:24 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 18:05:24 +0200 Subject: [vlc-devel] Analog TV Windows In-Reply-To: <008001cb28d2$57ea09b0$07be1d10$@com> References: <008001cb28d2$57ea09b0$07be1d10$@com> Message-ID: <20100721160524.GB1505@videolan.org> On Wed, Jul 21, 2010 at 08:43:38AM -0400, Manol Manolov wrote : > Do you guys still care for analog tv tuners? I've got some code who can do: > - ability to set frequency (instead of channel/country) > - ability to set video standard (PAL SECAM NTSC) > - scanning maybe... > > http://msdn.microsoft.com/en-us/library/ff567800%28VS.85%29.aspx > > Are you interested? Yes. If someone can makes sense in this mess, it will be more than welcome. -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Wed Jul 21 18:06:20 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 18:06:20 +0200 Subject: [vlc-devel] BDA fixes In-Reply-To: <007701cb28cc$b3a84560$1af8d020$@com> References: <005b01cb2870$29834cb0$7c89e610$@com> <20100721094123.GB21323@videolan.org> <007701cb28cc$b3a84560$1af8d020$@com> Message-ID: <20100721160620.GC1505@videolan.org> On Wed, Jul 21, 2010 at 08:03:14AM -0400, Manol Manolov wrote : > > Can you explain the patch 1 about CLSID vs GUID? > It is more self explanatory type name. There is no difference. Ok. > > Patch 3 is wrong. Increase the max number in the src/ > You told me keeping the shortcuts less is better. I don't believe somebody > uses the ones I removed. > Moreover, some sound not in place like - "cable", "qam", "usdigital". Cable > may be dvb-c, clear qam and I believe ISDB-T. > Also ATSC is not US only. Qam is type of modulation... ans so on... Well, removing stupid shortcuts is a good reason. Removing shortcuts because they don't fit in a subjective limit isn't. IMHO Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Wed Jul 21 18:19:00 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 18:19:00 +0200 Subject: [vlc-devel] [vlc-commits] commit: Merge branch 'master' of git.videolan.org:vlc (Jean-Baptiste Kempf ) In-Reply-To: <20100721161824.3662510AB0F@albiero.videolan.org> References: <20100721161824.3662510AB0F@albiero.videolan.org> Message-ID: <20100721161900.GA4541@videolan.org> On Wed, Jul 21, 2010 at 06:18:24PM +0200, git at videolan.org wrote : > vlc | branch: master | Jean-Baptiste Kempf | Wed Jul 21 18:16:32 2010 +0200| [1c6ac615a82aa1d8bab6295c828238e126ad201a] | committer: Jean-Baptiste Kempf > > Merge branch 'master' of git.videolan.org:vlc Sorry Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Wed Jul 21 18:20:13 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 18:20:13 +0200 Subject: [vlc-devel] [vlc-commits] commit: Force avcodec to be at least 52.25.0 and avfomat 52.30.0... ( Jean-Baptiste Kempf ) In-Reply-To: <201007211814.32674.remi@remlab.net> References: <20100720223224.8D80610A86D@albiero.videolan.org> <201007211814.32674.remi@remlab.net> Message-ID: <20100721162013.GB4541@videolan.org> On Wed, Jul 21, 2010 at 06:14:32PM +0300, R?mi Denis-Courmont wrote : > Le mercredi 21 juillet 2010 01:32:24 git at videolan.org, vous avez ?crit : > > vlc | branch: master | Jean-Baptiste Kempf | Wed Jul 21 > > 00:18:51 2010 +0200| [88041dfe447b0239779f0af66e212e04a1d14da8] | > > committer: Jean-Baptiste Kempf > > > > Force avcodec to be at least 52.25.0 and avfomat 52.30.0... > > > > They are more than 1 year old... > > You broke Debian builds. Feel free to revert. Though, I believe that having a more than year old libavcodec for a media player is quite annoying... Moreover, this blocks us from moving to the new decode functions... Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From siretart at tauware.de Wed Jul 21 18:39:46 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Wed, 21 Jul 2010 18:39:46 +0200 Subject: [vlc-devel] Kubuntu... *K*one ? References: <201007210741.05819.vlc07@sfina.com> <1279716174.18867.2.camel@Tuiga> Message-ID: <878w54eqlp.fsf@faui44a.informatik.uni-erlangen.de> On Wed, Jul 21, 2010 at 14:42:54 (CEST), Christophe Mutricy wrote: > Hello, >> Can somebody with knowledge of the issues mentioned in the thread >> please chime in? > > The only issue pointed is the number of deepedencies. I don't see how > we can help with that. It's moree a matter for the Ubuntu packagers > and release team to move the package to main rather than universe. Well, having vlc as default player for kubuntu would: - expose it to all kubuntu users by default - more eyeballs from kubuntu devs to integrate vlc more tightly into kde - buy vlc 'official' security support by paid canonical staff for obvious reasons, I don't expect this decision to be taken lightly. But all in all, I imagine a positive decision to be beneficial for vlc. -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From juhovh at iki.fi Wed Jul 21 18:55:36 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Wed, 21 Jul 2010 19:55:36 +0300 Subject: [vlc-devel] [PATCH 6/8] osx: Remove -arch from CPPFLAGS, it is not needed and gets passed to moc on Qt4 In-Reply-To: <201007211825.16889.remi@remlab.net> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <20100721141746.GA12863@videolan.org> <4C47033D.701@iki.fi> <201007211825.16889.remi@remlab.net> Message-ID: <24B53D77-D46B-4555-A1BE-ABF942CA2D94@iki.fi> On 21.7.2010, at 18.25, R?mi Denis-Courmont wrote: > Le mercredi 21 juillet 2010 17:25:01 Juho V?h?-Herttua, vous avez ?crit : >> 21.7.2010 17:17, Jean-Baptiste Kempf kirjoitti: >>> On Wed, Jul 21, 2010 at 04:54:24PM +0300, Juho V?h?-Herttua wrote : >>>> configure.ac | 1 - >>> >>> hmmm, ok. Are you sure it isn't needed for PPC ? >> >> CPPFLAGS are for preprocessing and -arch is useful for compiling and >> linking (it affects the binary output of compiler), I very much doubt it >> is needed there. If it is however, I think someone is using CPPFLAGS >> incorrectly... > > Uh no. The archictecture affects some predefined macros (in GCC at least). I checked that the __powerpc__ that it apparently affects is used in VLC and therefore that patch is not ok. Any suggestions whether should add a MOCFLAGS attribute separately or manually parse the -arch away from CPPFLAGS in case of moc? Or maybe just keeping that patch in a separate tree... Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From remi at remlab.net Wed Jul 21 18:59:26 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 19:59:26 +0300 Subject: [vlc-devel] Kubuntu... *K*one ? In-Reply-To: <878w54eqlp.fsf@faui44a.informatik.uni-erlangen.de> References: <201007210741.05819.vlc07@sfina.com> <1279716174.18867.2.camel@Tuiga> <878w54eqlp.fsf@faui44a.informatik.uni-erlangen.de> Message-ID: <201007211959.27085.remi@remlab.net> Le mercredi 21 juillet 2010 19:39:46 Reinhard Tartler, vous avez ?crit : > Well, having vlc as default player for kubuntu would: > > - expose it to all kubuntu users by default > - more eyeballs from kubuntu devs to integrate vlc more tightly into kde > - buy vlc 'official' security support by paid canonical staff I am all for making VLC the default player over another one. But if it comes with only Xiph, I would argue there should be NO default player at all. No VLC, no Kaffeine, no SMPlayer, nothing. Make it as seamless and obvious as possible how to install a reasonably codec-rich player from the repositories. Lets face it, a new Linux user or a Windows convert is most likely to try to play content that is not Xiph nor WebM. You don't want the first impression to be that it does not work. I am afraid that hurts Ubuntu, the selected player, and OSS/Linux at large. Anyway, I have a feeling Kubuntu-devel folks aren't reading this ML. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From pdherbemont at free.fr Wed Jul 21 19:19:16 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Wed, 21 Jul 2010 19:19:16 +0200 Subject: [vlc-devel] [PATCH 6/8] osx: Remove -arch from CPPFLAGS, it is not needed and gets passed to moc on Qt4 In-Reply-To: <24B53D77-D46B-4555-A1BE-ABF942CA2D94@iki.fi> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <20100721141746.GA12863@videolan.org> <4C47033D.701@iki.fi> <201007211825.16889.remi@remlab.net> <24B53D77-D46B-4555-A1BE-ABF942CA2D94@iki.fi> Message-ID: On Wed, Jul 21, 2010 at 6:55 PM, Juho V?h?-Herttua wrote: > On 21.7.2010, at 18.25, R?mi Denis-Courmont wrote: >> Le mercredi 21 juillet 2010 17:25:01 Juho V?h?-Herttua, vous avez ?crit : >>> 21.7.2010 17:17, Jean-Baptiste Kempf kirjoitti: >>>> On Wed, Jul 21, 2010 at 04:54:24PM +0300, Juho V?h?-Herttua wrote : >>>>> ?configure.ac | ? ?1 - >>>> >>>> hmmm, ok. Are you sure it isn't needed for PPC ? >>> >>> CPPFLAGS are for preprocessing and -arch is useful for compiling and >>> linking (it affects the binary output of compiler), I very much doubt it >>> is needed there. If it is however, I think someone is using CPPFLAGS >>> incorrectly... >> >> Uh no. The archictecture affects some predefined macros (in GCC at least). > > I checked that the __powerpc__ that it apparently affects is used in VLC and therefore that patch is not ok. Yes, you have the same issue with __x86_64__ and __i386__. Pierre. From remi at remlab.net Wed Jul 21 20:45:22 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 21:45:22 +0300 Subject: [vlc-devel] MIDI sound fount Message-ID: <201007212145.22683.remi@remlab.net> Hello, FYI, I'm told Ubuntu includes a "Fluid (R3) General MIDI SoundFont (GM)" (package fluid-soundfont-gm), which is redistributable under MIT license. I have not checked how big it is. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From xtophe at chewa.net Wed Jul 21 20:48:46 2010 From: xtophe at chewa.net (Christophe Mutricy) Date: Wed, 21 Jul 2010 20:48:46 +0200 Subject: [vlc-devel] [vlc-commits] commit: Force avcodec to be at least 52.25.0 and avfomat 52.30.0... ( Jean-Baptiste Kempf ) In-Reply-To: <20100721162013.GB4541@videolan.org> References: <20100720223224.8D80610A86D@albiero.videolan.org> <201007211814.32674.remi@remlab.net> <20100721162013.GB4541@videolan.org> Message-ID: <20100721184846.GU27619@chewa.net> On Wed, Jul 21, 10 at 18:20 +0200, Jean-Baptiste Kempf wrote: > Though, I believe that having a more than year old libavcodec for a > media player is quite annoying... Well the stable 0.5 branch doesn't causes me troubles. > Moreover, this blocks us from moving to the new decode functions... If indeed we use newer/better functions it'll be worth. If it's just to avoid some #ifdef, I think we penalize too many people for only improving the code readability -- Xtophe From fenrir at elivagar.org Wed Jul 21 21:05:37 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 21 Jul 2010 21:05:37 +0200 Subject: [vlc-devel] [PATCH] Setting b_subtitle on subpictures during transcode, and applying correct timing. In-Reply-To: References: Message-ID: <20100721190537.GA27995@elivagar.org> Hi, On Tue, Jul 20, 2010 at 11:04:22PM -0700, Blake Livingston wrote: > From 6bffb9add9df20610850e9a365246fd3ee968300 Mon Sep 17 00:00:00 2001 > From: Blake Livingston > Date: Tue, 20 Jul 2010 22:42:32 -0700 > Subject: [PATCH] Setting b_subtitle on subpictures during transcode, and > applying correct timing. Merged by [bf3282436ddb9dcd56f549b2955531a5b2b3f95a] Thanks. -- fenrir From man40dev at gmail.com Wed Jul 21 21:06:28 2010 From: man40dev at gmail.com (Manol Manolov) Date: Wed, 21 Jul 2010 15:06:28 -0400 Subject: [vlc-devel] BDA fixes In-Reply-To: <20100721160620.GC1505@videolan.org> References: <005b01cb2870$29834cb0$7c89e610$@com> <20100721094123.GB21323@videolan.org> <007701cb28cc$b3a84560$1af8d020$@com> <20100721160620.GC1505@videolan.org> Message-ID: <00a101cb2907$d3052230$790f6690$@com> Do you need anything else in order to commit those? Best regards, Manol -------------- next part -------------- A non-text attachment was scrubbed... Name: 0004-Add-Clear-QAM-to-BDA.patch Type: application/octet-stream Size: 9242 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0005-Add-GUI-support-for-Clear-QAM.patch Type: application/octet-stream Size: 3020 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0006-Make-all-BDA-networks-to-accept-kHz.patch Type: application/octet-stream Size: 2026 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Cosmetics-in-BDA-module.patch Type: application/octet-stream Size: 5049 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Improve-BDA-for-Windows-7-and-Vista.patch Type: application/octet-stream Size: 4678 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Remove-Wrong-BDA-shortcuts.patch Type: application/octet-stream Size: 2975 bytes Desc: not available URL: From jb at videolan.org Wed Jul 21 21:22:13 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 21:22:13 +0200 Subject: [vlc-devel] [vlc-commits] commit: Force avcodec to be at least 52.25.0 and avfomat 52.30.0... ( Jean-Baptiste Kempf ) In-Reply-To: <20100721184846.GU27619@chewa.net> References: <20100720223224.8D80610A86D@albiero.videolan.org> <201007211814.32674.remi@remlab.net> <20100721162013.GB4541@videolan.org> <20100721184846.GU27619@chewa.net> Message-ID: <20100721192213.GA6922@videolan.org> On Wed, Jul 21, 2010 at 08:48:46PM +0200, Christophe Mutricy wrote : > On Wed, Jul 21, 10 at 18:20 +0200, Jean-Baptiste Kempf wrote: > > Though, I believe that having a more than year old libavcodec for a > > media player is quite annoying... > > Well the stable 0.5 branch doesn't causes me troubles. > > > Moreover, this blocks us from moving to the new decode functions... > > If indeed we use newer/better functions it'll be worth. If it's just to > avoid some #ifdef, I think we penalize too many people for only > improving the code readability I think debian is penalizing us :D But, seriously, revert. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From fenrir at elivagar.org Wed Jul 21 21:30:37 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 21 Jul 2010 21:30:37 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Require_au?= =?iso-8859-1?q?tomake_1=2E11_=28_R=E9mi_Denis-Courmont_=29?= In-Reply-To: <20100721151934.69F2310A8FB@albiero.videolan.org> References: <20100721151934.69F2310A8FB@albiero.videolan.org> Message-ID: <20100721193037.GA29989@elivagar.org> On Wed, Jul 21, 2010 at 05:19:34PM +0200, git at videolan.org wrote: > vlc | branch: master | R?mi Denis-Courmont | Wed Jul 21 18:19:17 2010 +0300| [393a1b3308030682a3d670bb2865f5be8ce8cea7] | committer: R?mi Denis-Courmont > > Require automake 1.11 Is this really needed ? -- fenrir From remi at remlab.net Wed Jul 21 21:35:38 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 22:35:38 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Force_avco?= =?iso-8859-1?q?dec_to_be_at_least=0952=2E25=2E0_and_avfomat_52=2E30=2E0?= =?iso-8859-1?q?=2E=2E=2E_=28_Jean-Baptiste_Kempf_=29?= In-Reply-To: <20100721192213.GA6922@videolan.org> References: <20100720223224.8D80610A86D@albiero.videolan.org> <20100721184846.GU27619@chewa.net> <20100721192213.GA6922@videolan.org> Message-ID: <201007212235.38614.remi@remlab.net> Le mercredi 21 juillet 2010 22:22:13 Jean-Baptiste Kempf, vous avez ?crit : > On Wed, Jul 21, 2010 at 08:48:46PM +0200, Christophe Mutricy wrote : > > On Wed, Jul 21, 10 at 18:20 +0200, Jean-Baptiste Kempf wrote: > > > Though, I believe that having a more than year old libavcodec for a > > > media player is quite annoying... > > > > Well the stable 0.5 branch doesn't causes me troubles. > > > > > Moreover, this blocks us from moving to the new decode functions... > > > > If indeed we use newer/better functions it'll be worth. If it's just to > > avoid some #ifdef, I think we penalize too many people for only > > improving the code readability > > I think debian is penalizing us :D Well... waiting for Debian stable would be insane in some cases given how slow the release cycle is. And it's already been a long time since VLC wouldn't compile on pure Debian stable anymore. But in this case, you broke Sid also. I am now fine as newer FFmpeg is available in experimental. In fact, I wonder why Sid has so old an FFmpeg. IMHO, the real problem is a lack of clear policy. This topic gets brought back just about everytime someone increases the version number requirements of an underlying library... I recall arguments about glibc, Qt4, autoconf, automake, FFmpeg, Fluidsynth, modplug, xcb-utils, alsa-lib, gettext, live555 just to name a few. Obviously, increasing requirements just for the heck of being up-to-date is silly. On the other hand, keeping backward compatibility hacks forever, or letting users unwittingly build buggy VLC's is not good. But where do we draw the line? To play devil's advocate, I would argue we should depend on Qt4.7 and alsa-lib 1.0.24 since they fix known VLC bugs. Nevermind that neither of them are even officially released yet... -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Wed Jul 21 21:41:17 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 21 Jul 2010 21:41:17 +0200 Subject: [vlc-devel] [vlc-commits] commit: Force avcodec to be at least?52.25.0 and avfomat 52.30.0... ( Jean-Baptiste Kempf ) In-Reply-To: <201007212235.38614.remi@remlab.net> References: <20100720223224.8D80610A86D@albiero.videolan.org> <20100721184846.GU27619@chewa.net> <20100721192213.GA6922@videolan.org> <201007212235.38614.remi@remlab.net> Message-ID: <20100721194117.GA9956@videolan.org> On Wed, Jul 21, 2010 at 10:35:38PM +0300, R?mi Denis-Courmont wrote : > But in this case, you broke Sid also. I am now fine as newer FFmpeg is > available in experimental. In fact, I wonder why Sid has so old an FFmpeg. Come on, I didn't realize. I couldn't possibly imagine that Sid had a sol old FFmpeg. And I told ten times to revert. > Obviously, increasing requirements just for the heck of being up-to-date is > silly. On the other hand, keeping backward compatibility hacks forever, or > letting users unwittingly build buggy VLC's is not good. But where do we draw > the line? To play devil's advocate, I would argue we should depend on Qt4.7 > and alsa-lib 1.0.24 since they fix known VLC bugs. Nevermind that neither of > them are even officially released yet... Qt4.7 \o/ Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From vlc07 at sfina.com Wed Jul 21 22:01:59 2010 From: vlc07 at sfina.com (Yuval Levy) Date: Wed, 21 Jul 2010 16:01:59 -0400 Subject: [vlc-devel] Kubuntu... *K*one ? In-Reply-To: <0b60d2445c966f9356ba4d56073d1871@chewa.net> References: <201007210741.05819.vlc07@sfina.com> <0b60d2445c966f9356ba4d56073d1871@chewa.net> Message-ID: <201007211602.04722.vlc07@sfina.com> On July 21, 2010 08:23:05 am R?mi Denis-Courmont wrote: > Do you happen to have the original email as attachment (or as an *.eml > file), so we can actually "answer" ? attached, And you probably want to answer the second, most recent one too. thank you. Yuv -------------- next part -------------- An embedded message was scrubbed... From: Jonathan Riddell Subject: Re: [kubuntu-devel] Re: Kaffeine 1.0 and Kubuntu Date: Mon, 19 Jul 2010 16:59:04 +0100 Size: 3897 URL: -------------- next part -------------- An embedded message was scrubbed... From: Scott Kitterman Subject: Re: Kaffeine 1.0 and Kubuntu Date: Wed, 21 Jul 2010 15:27:20 -0400 Size: 4962 URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. URL: From vlc07 at sfina.com Wed Jul 21 22:03:27 2010 From: vlc07 at sfina.com (Yuval Levy) Date: Wed, 21 Jul 2010 16:03:27 -0400 Subject: [vlc-devel] Kubuntu... *K*one ? In-Reply-To: <1279716174.18867.2.camel@Tuiga> References: <201007210741.05819.vlc07@sfina.com> <1279716174.18867.2.camel@Tuiga> Message-ID: <201007211603.28439.vlc07@sfina.com> On July 21, 2010 08:42:54 am Christophe Mutricy wrote: > The only issue pointed is the number of deepedencies. Quoting Jonathan Riddell: "VLC would be concievable but would need someone to review it for licencing issues and get it and all the build-deps through MIR." I also wondered what MIR is, until I found [0] > I don't see how we can help with that. Give them some guidance, support them in their choice, make them feel that you want them to distribute VLC. The VLC developers are experts and can help with the review of the licensing issues (if any). And with smart advice on how to (or how not to) integrate a media player in the distro. Yuv [0] https://wiki.ubuntu.com/MainInclusionProcess -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. URL: From vlc07 at sfina.com Wed Jul 21 22:04:32 2010 From: vlc07 at sfina.com (Yuval Levy) Date: Wed, 21 Jul 2010 16:04:32 -0400 Subject: [vlc-devel] Kubuntu... *K*one ? In-Reply-To: <201007211959.27085.remi@remlab.net> References: <201007210741.05819.vlc07@sfina.com> <878w54eqlp.fsf@faui44a.informatik.uni-erlangen.de> <201007211959.27085.remi@remlab.net> Message-ID: <201007211604.33484.vlc07@sfina.com> On July 21, 2010 12:59:26 pm R?mi Denis-Courmont wrote: > Make it as seamless and obvious as possible > how to install a reasonably codec-rich player from the > repositories. You're the expert, they should listen to your advice. > Lets face it, a new Linux user or a Windows convert is most likely to try > to play content that is not Xiph nor WebM. You don't want the first > impression to be that it does not work. I am afraid that hurts Ubuntu, the > selected player, and OSS/Linux at large. You're 100% right, I'm afraid. > Anyway, I have a feeling Kubuntu-devel folks aren't reading this ML. This is why as a Kubuntu and VLC user I ask for help here. VLC is currently on the margin of their radar screen. If it will become more central they will likely join and listen to your wisdom, to the benefit of VLC, Kubuntu, OSS/Linux at large. Yuv -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. URL: From fcvlcdev at free.fr Wed Jul 21 22:41:18 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Wed, 21 Jul 2010 22:41:18 +0200 Subject: [vlc-devel] Kubuntu... *K*one ? In-Reply-To: <201007211603.28439.vlc07@sfina.com> References: <201007210741.05819.vlc07@sfina.com> <1279716174.18867.2.camel@Tuiga> <201007211603.28439.vlc07@sfina.com> Message-ID: <201007212241.18175.fcvlcdev@free.fr> Le mercredi 21 juillet 2010, Yuval Levy a ?crit : > > Yuv > Could you please publish your public key on keyservers ? Otherwise, please stop signing all your messages with an unverifiable key. Francois From siretart at tauware.de Wed Jul 21 22:45:23 2010 From: siretart at tauware.de (Reinhard Tartler) Date: Wed, 21 Jul 2010 22:45:23 +0200 Subject: [vlc-devel] [vlc-commits] commit: Force avcodec to be at least?52.25.0 and avfomat 52.30.0... ( Jean-Baptiste Kempf ) References: <20100720223224.8D80610A86D@albiero.videolan.org> <20100721184846.GU27619@chewa.net> <20100721192213.GA6922@videolan.org> <201007212235.38614.remi@remlab.net> <20100721194117.GA9956@videolan.org> Message-ID: <87zkxkd0nw.fsf@faui44a.informatik.uni-erlangen.de> On Wed, Jul 21, 2010 at 21:41:17 (CEST), Jean-Baptiste Kempf wrote: >> But in this case, you broke Sid also. I am now fine as newer FFmpeg is >> available in experimental. In fact, I wonder why Sid has so old an FFmpeg. > Come on, I didn't realize. I couldn't possibly imagine that Sid had a > sol old FFmpeg. Let me state as FFmpeg maintainer in debian and ubuntu that the current plan is to release squeeze with 0.5, just as ubuntu 10.04 (lucid). I don't have the time and energy to migrate all packages to 0.6, and I do know for sure that quite a number of package do not work with 0.6 yet. (FYI, I'm currently doing exactly this transition for ubuntu 10.10) For testing purposes, I've already packaged 0.6 for debian/experimental. I'll upload this package to unstable after squeeze release. Depending packages that want to test FFmpeg 0.6 can be uploaded to debian/experimental as well. -- Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 From remi at remlab.net Wed Jul 21 22:56:37 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 21 Jul 2010 23:56:37 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Force_avco?= =?iso-8859-1?q?dec_to_be_at=09least=3F52=2E25=2E0_and_avfomat_52=2E30=2E0?= =?iso-8859-1?q?=2E=2E=2E_=28_Jean-Baptiste_Kempf_=29?= In-Reply-To: <87zkxkd0nw.fsf@faui44a.informatik.uni-erlangen.de> References: <20100720223224.8D80610A86D@albiero.videolan.org> <20100721194117.GA9956@videolan.org> <87zkxkd0nw.fsf@faui44a.informatik.uni-erlangen.de> Message-ID: <201007212356.38224.remi@remlab.net> Le mercredi 21 juillet 2010 23:45:23 Reinhard Tartler, vous avez ?crit : > On Wed, Jul 21, 2010 at 21:41:17 (CEST), Jean-Baptiste Kempf wrote: > >> But in this case, you broke Sid also. I am now fine as newer FFmpeg is > >> available in experimental. In fact, I wonder why Sid has so old an > >> FFmpeg. > > > > Come on, I didn't realize. I couldn't possibly imagine that Sid had a > > sol old FFmpeg. > > Let me state as FFmpeg maintainer in debian and ubuntu that the current > plan is to release squeeze with 0.5, just as ubuntu 10.04 (lucid). I > don't have the time and energy to migrate all packages to 0.6, and I do > know for sure that quite a number of package do not work with 0.6 yet. > (FYI, I'm currently doing exactly this transition for ubuntu 10.10) WebM in Debian, ETA 2014. Yay!! -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 21 23:28:27 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Thu, 22 Jul 2010 00:28:27 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Require_au?= =?iso-8859-1?q?tomake_1=2E11_=28_R=E9mi_Denis-Courmont_=29?= In-Reply-To: <20100721193037.GA29989@elivagar.org> References: <20100721151934.69F2310A8FB@albiero.videolan.org> <20100721193037.GA29989@elivagar.org> Message-ID: <201007220028.27444.remi@remlab.net> Le mercredi 21 juillet 2010 22:30:37 Laurent Aimar, vous avez ?crit : > On Wed, Jul 21, 2010 at 05:19:34PM +0200, git at videolan.org wrote: > > vlc | branch: master | R?mi Denis-Courmont | Wed Jul 21 > > 18:19:17 2010 +0300| [393a1b3308030682a3d670bb2865f5be8ce8cea7] | > > committer: R?mi Denis-Courmont > > > > Require automake 1.11 > > Is this really needed ? In principles, we've already needed for a long time for silent rules. And having used silent rules for a while, I wonder how I survived so long without them. They make errors and warnings so much better visible. They there was color tests which Pierre added a whiel ago, but I removed so we could have automake 1.9 for VLC 1.1. Then there's AM_COND_IF. And then there's bug fixes, e.g. when compiling *.S. Anyway, automake 1.11 is 14 months old. Any remotely developer-grade distribution/version will have it already. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Thu Jul 22 01:18:00 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 01:18:00 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Really_che?= =?iso-8859-1?q?ck_if_Qt4_needs_-lX11_=28_R=E9mi_=09Denis-Courmont_?= =?iso-8859-1?q?=29?= In-Reply-To: <20100721185256.EF37910AB90@albiero.videolan.org> References: <20100721185256.EF37910AB90@albiero.videolan.org> Message-ID: <20100721231800.GA19597@videolan.org> On Wed, Jul 21, 2010 at 08:52:56PM +0200, git at videolan.org wrote : > vlc | branch: master | R?mi Denis-Courmont | Wed Jul 21 21:52:45 2010 +0300| [bdb9f0c0e3a25f78e5affbc61f4198a8e25e2ed1] | committer: R?mi Denis-Courmont > > Really check if Qt4 needs -lX11 This commits breaks moc on Linux, Windows and Mac This commits breaks win32 configure -- Jean-Baptiste Kempf http://www.jbkempf.com/ From remi at remlab.net Thu Jul 22 08:42:13 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Thu, 22 Jul 2010 08:42:13 +0200 Subject: [vlc-devel] =?utf-8?q?=5Bvlc-commits=5D_commit=3A_Really_check_if?= =?utf-8?q?_Qt4_needs_-lX11_=28_R=C3=A9mi_=09Denis-Courmont_=29?= In-Reply-To: <20100721231800.GA19597@videolan.org> References: <20100721185256.EF37910AB90@albiero.videolan.org> <20100721231800.GA19597@videolan.org> Message-ID: On Thu, 22 Jul 2010 01:18:00 +0200, Jean-Baptiste Kempf wrote: > This commits breaks win32 configure The buildbot disagrees with that assertion. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From aballier at gentoo.org Thu Jul 22 09:26:25 2010 From: aballier at gentoo.org (Alexis Ballier) Date: Thu, 22 Jul 2010 10:26:25 +0300 Subject: [vlc-devel] =?utf-8?q?=5Bvlc-commits=5D_commit=3A_Only_expand_non?= =?utf-8?q?-Makefiles_config_files_if_they_are_used_=28_R=C3=A9mi_Denis-Co?= =?utf-8?q?urmont_=29?= In-Reply-To: <20100721212341.4ED3C10ACBF@albiero.videolan.org> References: <20100721212341.4ED3C10ACBF@albiero.videolan.org> Message-ID: <201007221026.25777.aballier@gentoo.org> On Thursday 22 July 2010 00:23:41 git at videolan.org wrote: > vlc | branch: master | R?mi Denis-Courmont | Thu Jul 22 > 00:22:05 2010 +0300| [0359fa361b615bf7ee2418ffffa688bed70470b5] | > committer: R?mi Denis-Courmont > > Only expand non-Makefiles config files if they are used > > > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0359fa361b615bf7ee > > 2418ffffa688bed70470b5 seems some more magic is needed, I get this with a clean checkout: make: *** No rule to make target `extras/package/win32/vlc.win32.nsi', needed by `all'. Stop. A. From david at 2of1.org Thu Jul 22 11:19:53 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 22 Jul 2010 12:19:53 +0300 Subject: [vlc-devel] CinemaDNG format Message-ID: Hi all I'd like to add support for the Adobe CinemaDNG to vlc. As no current core exists for the format, I'm intending to start writing libcinemadng today. I was wondering if any of you have heard of any other projects dealing with this format? I don't want to duplicate work. Any other comments before I get started? -------------- next part -------------- An HTML attachment was scrubbed... URL: From pdherbemont at free.fr Thu Jul 22 11:20:56 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Thu, 22 Jul 2010 11:20:56 +0200 Subject: [vlc-devel] [PATCH 7/8] osx: Fix a bug where glView frame doesn't get set if NSView parent is used In-Reply-To: <20100721141814.GB12863@videolan.org> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-7-git-send-email-juhovh@iki.fi> <20100721141814.GB12863@videolan.org> Message-ID: On Wed, Jul 21, 2010 at 4:18 PM, Jean-Baptiste Kempf wrote: > On Wed, Jul 21, 2010 at 04:54:25PM +0300, Juho V?h?-Herttua wrote : >> ?modules/video_output/macosx.m | ? 10 +++++++++- > Seems ok. Acknowledged. (Thanks!) Pierre. From gmthor85 at aim.com Thu Jul 22 12:09:06 2010 From: gmthor85 at aim.com (Toralf Niebuhr) Date: Thu, 22 Jul 2010 12:09:06 +0200 Subject: [vlc-devel] [PATCH] use NSAutoreleasePool::drain instead of NSAutorelease::release Message-ID: After running the Mac OS X static analyses I produced this patch. The patch only replaces NSAutoreleasePool:release with NSAutoreleasePool::drain. In a non garbage collected program, those functions do the same thing and in a program with GC it does the right thing. See http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSAutoreleasePool_Class/Reference/Reference.html There are two more potential problems that the static analyses found. I am not sure what to do about them. The results are here: www.niebuhrt.de/scan-results/index.html Toralf Niebuhr -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-use-NSAutoreleasePool-drain-instead-of-NSAutorelease.patch Type: application/octet-stream Size: 8429 bytes Desc: not available URL: From jb at videolan.org Thu Jul 22 12:11:07 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 12:11:07 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Really_che?= =?iso-8859-1?q?ck_if_Qt4_needs_-lX11_=28_R=E9mi_=3FDenis-Courmont_?= =?iso-8859-1?q?=29?= In-Reply-To: References: <20100721185256.EF37910AB90@albiero.videolan.org> <20100721231800.GA19597@videolan.org> Message-ID: <20100722101107.GA12630@videolan.org> On Thu, Jul 22, 2010 at 08:42:13AM +0200, R?mi Denis-Courmont wrote : > > On Thu, 22 Jul 2010 01:18:00 +0200, Jean-Baptiste Kempf > wrote: > > This commits breaks win32 configure > > The buildbot disagrees with that assertion. It doesn't: http://buildbot.videolan.org/builders/NB-I386-Win32Cross-Trunk/builds/649/steps/Configure/logs/stdio Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From remi at remlab.net Thu Jul 22 12:13:54 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Thu, 22 Jul 2010 12:13:54 +0200 Subject: [vlc-devel] CinemaDNG format In-Reply-To: References: Message-ID: <3f62db95ed0cc91424298cc41e9f20aa@chewa.net> Hello, On Thu, 22 Jul 2010 12:19:53 +0300, David Kaplan wrote: > I'd like to add support for the Adobe CinemaDNG to vlc. > As no current core exists for the format, I'm intending to start writing > libcinemadng today. > > I was wondering if any of you have heard of any other projects dealing > with this format? I don't want to duplicate work. Not me. You may want to ask on the FFmpeg mailing list, which probably have more media file format and codec gurus than vlc-devel. The VideoLAN project can probably provide hosting (git/svn, mailing list, website) if you need them, but I am not an authoritative contact on that particular point. Good luck, -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From jb at videolan.org Thu Jul 22 12:15:28 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 12:15:28 +0200 Subject: [vlc-devel] [PATCH 7/8] osx: Fix a bug where glView frame doesn't get set if NSView parent is used In-Reply-To: References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-7-git-send-email-juhovh@iki.fi> <20100721141814.GB12863@videolan.org> Message-ID: <20100722101528.GA13739@videolan.org> On Thu, Jul 22, 2010 at 11:20:56AM +0200, Pierre d'Herbemont wrote : > On Wed, Jul 21, 2010 at 4:18 PM, Jean-Baptiste Kempf wrote: > > On Wed, Jul 21, 2010 at 04:54:25PM +0300, Juho V?h?-Herttua wrote : > >> ?modules/video_output/macosx.m | ? 10 +++++++++- > > Seems ok. > > Acknowledged. > > (Thanks!) Applied. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 22 12:17:22 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 12:17:22 +0200 Subject: [vlc-devel] [PATCH 8/8] qt4: Make the Qt4 interface compile on Mac OS X In-Reply-To: <201007211826.29278.remi@remlab.net> References: <1279720466-30379-1-git-send-email-juhovh@iki.fi> <1279720466-30379-8-git-send-email-juhovh@iki.fi> <201007211826.29278.remi@remlab.net> Message-ID: <20100722101722.GB13739@videolan.org> On Wed, Jul 21, 2010 at 06:26:28PM +0300, R?mi Denis-Courmont wrote : > Le mercredi 21 juillet 2010 16:54:26 Juho V?h?-Herttua, vous avez ?crit : > > -#if defined(Q_WS_X11) || defined(Q_WS_WIN) > > +#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_WS_MAC) > > add_submodule () > > #if defined(Q_WS_X11) > > set_capability( "vout window xid", 0 ) > > #elif defined(Q_WS_WIN) > > set_capability( "vout window hwnd", 0 ) > > +#elif defined(Q_WS_MAC) > > + set_capability( "vout window nsobject", 0 ) > > #endif > > set_callbacks( WindowOpen, WindowClose ) > > +#else > > +# error FIXME > > #endif Q_WS_S60 and Q_WS_QWS exist and shouldn't be an error Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 22 12:19:34 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 12:19:34 +0200 Subject: [vlc-devel] [PATCH] use NSAutoreleasePool::drain instead of NSAutorelease::release In-Reply-To: References: Message-ID: <20100722101934.GC13739@videolan.org> On Thu, Jul 22, 2010 at 12:09:06PM +0200, Toralf Niebuhr wrote : > After running the Mac OS X static analyses I produced this patch. The patch only replaces NSAutoreleasePool:release with NSAutoreleasePool::drain. You ran it over the VLCKit project only? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jmenon86 at gmail.com Thu Jul 22 12:22:00 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Thu, 22 Jul 2010 15:52:00 +0530 Subject: [vlc-devel] CinemaDNG format In-Reply-To: References: Message-ID: On Thu, Jul 22, 2010 at 2:49 PM, David Kaplan wrote: > Hi all > > I'd like to add support for the Adobe CinemaDNG to vlc. > As no current core exists for the format, I'm intending to start writing > libcinemadng today. IMO a better approach would be to write a dng decoder within libavcodec (possibly by extending our existing tiff decoder). libavformat already supports mxf so just writing the decoder should be enough I guess. -- Jai Menon From gmthor85 at aim.com Thu Jul 22 12:26:57 2010 From: gmthor85 at aim.com (Toralf Niebuhr) Date: Thu, 22 Jul 2010 12:26:57 +0200 Subject: [vlc-devel] [PATCH] use NSAutoreleasePool::drain instead of NSAutorelease::release In-Reply-To: <20100722101934.GC13739@videolan.org> References: <20100722101934.GC13739@videolan.org> Message-ID: Am 22.07.2010 um 12:19 schrieb Jean-Baptiste Kempf: > On Thu, Jul 22, 2010 at 12:09:06PM +0200, Toralf Niebuhr wrote : >> After running the Mac OS X static analyses I produced this patch. The patch only replaces NSAutoreleasePool:release with NSAutoreleasePool::drain. > > You ran it over the VLCKit project only? I ran the following command in the directory vlc/projects/macosx/framework/ scan-build xcodebuild -configuration Debug > > Best Regards, > > -- > Jean-Baptiste Kempf > http://www.jbkempf.com/ > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel From gmthor85 at aim.com Thu Jul 22 12:29:54 2010 From: gmthor85 at aim.com (Toralf Niebuhr) Date: Thu, 22 Jul 2010 12:29:54 +0200 Subject: [vlc-devel] [PATCH] use NSAutoreleasePool::drain instead of NSAutorelease::release In-Reply-To: References: <20100722101934.GC13739@videolan.org> Message-ID: <78064982-A160-4EC9-BF16-6C0CBAB2C5B8@aim.com> Am 22.07.2010 um 12:26 schrieb Toralf Niebuhr: > > Am 22.07.2010 um 12:19 schrieb Jean-Baptiste Kempf: > >> On Thu, Jul 22, 2010 at 12:09:06PM +0200, Toralf Niebuhr wrote : >>> After running the Mac OS X static analyses I produced this patch. The patch only replaces NSAutoreleasePool:release with NSAutoreleasePool::drain. >> >> You ran it over the VLCKit project only? > I ran the following command in the directory vlc/projects/macosx/framework/ > > scan-build xcodebuild -configuration Debug This should at least scan all used vlc components too. But I am not sure. I could just scan the automake projects too. (later) > > >> >> Best Regards, >> >> -- >> Jean-Baptiste Kempf >> http://www.jbkempf.com/ >> _______________________________________________ >> vlc-devel mailing list >> To unsubscribe or modify your subscription options: >> http://mailman.videolan.org/listinfo/vlc-devel > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel From pdherbemont at free.fr Thu Jul 22 13:05:43 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Thu, 22 Jul 2010 13:05:43 +0200 Subject: [vlc-devel] [PATCH] use NSAutoreleasePool::drain instead of NSAutorelease::release In-Reply-To: References: Message-ID: On Thu, Jul 22, 2010 at 12:09 PM, Toralf Niebuhr wrote: > After running the Mac OS X static analyses I produced this patch. The patch only replaces NSAutoreleasePool:release with NSAutoreleasePool::drain. We don't support GC in VLCKit, but this is right and something wanted. Pierre. From juhovh at iki.fi Thu Jul 22 14:14:32 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Thu, 22 Jul 2010 15:14:32 +0300 Subject: [vlc-devel] [PATCH] Another attempt to patch the towlower function Message-ID: A non-text attachment was scrubbed... Name: 0001-qt4-Add-OSX-to-supported-platforms-of-the-towlower-f.patch Type: application/octet-stream Size: 929 bytes Desc: not available URL: -------------- next part -------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From juhovh at gmail.com Thu Jul 22 14:15:47 2010 From: juhovh at gmail.com (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Thu, 22 Jul 2010 15:15:47 +0300 Subject: [vlc-devel] [PATCH] Another attempt to add vout_window_t support to macosx video output Message-ID: <9495FCED-5481-4B83-9B23-D2F1EAE95F0C@gmail.com> I should note that it still gives a warning about drawable-nsobject variable not found, but that is not fatal. I left it there to keep Lunettes working. -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-osx-Add-vout_window_t-support-to-macosx-vout-module.patch Type: application/octet-stream Size: 2139 bytes Desc: not available URL: From juhovh at iki.fi Thu Jul 22 14:17:29 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Thu, 22 Jul 2010 15:17:29 +0300 Subject: [vlc-devel] [PATCH] Another attempt to make Qt4 interface compile on OS X Message-ID: I tried to only keep the necessary changes in this patch, I'll try to work out other possible issues later. -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-qt4-Make-the-Qt4-interface-compile-on-Mac-OS-X.patch Type: application/octet-stream Size: 2919 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From fenrir at elivagar.org Thu Jul 22 14:27:54 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 22 Jul 2010 14:27:54 +0200 Subject: [vlc-devel] [PATCH] Another attempt to add vout_window_t support to macosx video output In-Reply-To: <9495FCED-5481-4B83-9B23-D2F1EAE95F0C@gmail.com> References: <9495FCED-5481-4B83-9B23-D2F1EAE95F0C@gmail.com> Message-ID: <20100722122754.GA15904@elivagar.org> Hi, On Thu, Jul 22, 2010 at 03:15:47PM +0300, Juho V?h?-Herttua wrote: > I should note that it still gives a warning about drawable-nsobject variable not found, but that is not fatal. I left it there to keep Lunettes working. > > @@ -220,6 +237,7 @@ void Close(vlc_object_t *this) > if (sys->gl.sys != NULL) > vout_display_opengl_Clean(&sys->vgl); > > + vout_display_DeleteWindow(vd, sys->embed); If this line can be reached while sys->embed is NULL, then you should add a check to avoid calling vout_display_DeleteWindow. -- fenrir From juhovh at iki.fi Thu Jul 22 14:33:30 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Thu, 22 Jul 2010 15:33:30 +0300 Subject: [vlc-devel] [PATCH] Another attempt to add vout_window_t support to macosx video output In-Reply-To: <20100722122754.GA15904@elivagar.org> References: <9495FCED-5481-4B83-9B23-D2F1EAE95F0C@gmail.com> <20100722122754.GA15904@elivagar.org> Message-ID: On 22.7.2010, at 15.27, Laurent Aimar wrote: > On Thu, Jul 22, 2010 at 03:15:47PM +0300, Juho V?h?-Herttua wrote: >> I should note that it still gives a warning about drawable-nsobject variable not found, but that is not fatal. I left it there to keep Lunettes working. >> >> @@ -220,6 +237,7 @@ void Close(vlc_object_t *this) >> if (sys->gl.sys != NULL) >> vout_display_opengl_Clean(&sys->vgl); >> >> + vout_display_DeleteWindow(vd, sys->embed); > If this line can be reached while sys->embed is NULL, then you should > add a check to avoid calling vout_display_DeleteWindow. I left it there as a sort of a replacement of the: vout_display_DeleteWindow(vd, NULL); in the original code, even though it's called in a different location (much later). If calling vout_display_DeleteWindow should be avoided, why is it explicitly called in the current code? Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From remi at remlab.net Thu Jul 22 14:42:36 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Thu, 22 Jul 2010 14:42:36 +0200 Subject: [vlc-devel] =?utf-8?q?=5Bvlc-commits=5D_commit=3A_Really_check_if?= =?utf-8?q?_Qt4_needs_-lX11_=28_R=C3=A9mi_=3FDenis-Courmont_=29?= In-Reply-To: <20100722101107.GA12630@videolan.org> References: <20100721185256.EF37910AB90@albiero.videolan.org> <20100721231800.GA19597@videolan.org> <20100722101107.GA12630@videolan.org> Message-ID: <95007bc93c97f9ffeb0bc7d392533f31@chewa.net> On Thu, 22 Jul 2010 12:11:07 +0200, Jean-Baptiste Kempf wrote: > On Thu, Jul 22, 2010 at 08:42:13AM +0200, R?mi Denis-Courmont wrote : >> >> On Thu, 22 Jul 2010 01:18:00 +0200, Jean-Baptiste Kempf > >> wrote: >> > This commits breaks win32 configure >> >> The buildbot disagrees with that assertion. > > It doesn't: > > http://buildbot.videolan.org/builders/NB-I386-Win32Cross-Trunk/builds/649/steps/Configure/logs/stdio You mean this breaks gcrypt detection? Maybe a problem with C*FLAGS environment variables then. Do we have the config.log for this? -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From fenrir at elivagar.org Thu Jul 22 14:51:41 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 22 Jul 2010 14:51:41 +0200 Subject: [vlc-devel] [PATCH] Another attempt to add vout_window_t support to macosx video output In-Reply-To: References: <9495FCED-5481-4B83-9B23-D2F1EAE95F0C@gmail.com> <20100722122754.GA15904@elivagar.org> Message-ID: <20100722125141.GA16652@elivagar.org> On Thu, Jul 22, 2010 at 03:33:30PM +0300, Juho V?h?-Herttua wrote: > On 22.7.2010, at 15.27, Laurent Aimar wrote: > > On Thu, Jul 22, 2010 at 03:15:47PM +0300, Juho V?h?-Herttua wrote: > >> I should note that it still gives a warning about drawable-nsobject variable not found, but that is not fatal. I left it there to keep Lunettes working. > >> > >> @@ -220,6 +237,7 @@ void Close(vlc_object_t *this) > >> if (sys->gl.sys != NULL) > >> vout_display_opengl_Clean(&sys->vgl); > >> > >> + vout_display_DeleteWindow(vd, sys->embed); > > If this line can be reached while sys->embed is NULL, then you should > > add a check to avoid calling vout_display_DeleteWindow. > > I left it there as a sort of a replacement of the: > > vout_display_DeleteWindow(vd, NULL); vout_display_DeleteWindow(vd, NULL) means that any windows kept and unused (not yet destroyed) must be destroyed. It must be called in a vout_display that does not use vout_display_NewWindow() in the Open() function but create/retreive a window by another mean. So, when using the value from "drawable-nsobject", you should keet the call. Calling it in the close function is not what you want and has potential side effects. -- fenrir From juhovh at iki.fi Thu Jul 22 15:34:16 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Thu, 22 Jul 2010 16:34:16 +0300 Subject: [vlc-devel] [PATCH] Another attempt to add vout_window_t support to macosx video output In-Reply-To: <20100722125141.GA16652@elivagar.org> References: <9495FCED-5481-4B83-9B23-D2F1EAE95F0C@gmail.com> <20100722122754.GA15904@elivagar.org> <20100722125141.GA16652@elivagar.org> Message-ID: <354007D2-575D-478B-A680-EFEA3FFDD2FC@iki.fi> On 22.7.2010, at 15.51, Laurent Aimar wrote: > On Thu, Jul 22, 2010 at 03:33:30PM +0300, Juho V?h?-Herttua wrote: >> On 22.7.2010, at 15.27, Laurent Aimar wrote: >>> On Thu, Jul 22, 2010 at 03:15:47PM +0300, Juho V?h?-Herttua wrote: >>>> I should note that it still gives a warning about drawable-nsobject variable not found, but that is not fatal. I left it there to keep Lunettes working. >>>> >>>> @@ -220,6 +237,7 @@ void Close(vlc_object_t *this) >>>> if (sys->gl.sys != NULL) >>>> vout_display_opengl_Clean(&sys->vgl); >>>> >>>> + vout_display_DeleteWindow(vd, sys->embed); >>> If this line can be reached while sys->embed is NULL, then you should >>> add a check to avoid calling vout_display_DeleteWindow. >> >> I left it there as a sort of a replacement of the: >> >> vout_display_DeleteWindow(vd, NULL); > vout_display_DeleteWindow(vd, NULL) means that any windows kept and > unused (not yet destroyed) must be destroyed. > It must be called in a vout_display that does not use vout_display_NewWindow() > in the Open() function but create/retreive a window by another mean. So, when > using the value from "drawable-nsobject", you should keet the call. > Calling it in the close function is not what you want and has potential side > effects. Ok, how about if I write it like this? -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-osx-Add-vout_window_t-support-to-macosx-vout-module.patch Type: application/octet-stream Size: 2260 bytes Desc: not available URL: -------------- next part -------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From juhovh at iki.fi Thu Jul 22 16:08:35 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Thu, 22 Jul 2010 17:08:35 +0300 Subject: [vlc-devel] [PATCH] Fix getting the application font in Equalizer Message-ID: <927A48D2-BF6B-4F9D-AE00-AD0F223F5F6C@iki.fi> Qt4 on OSX crashed a lot because of this static_cast, it looks strange anyway... -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-qt4-Prevent-an-equalizer-crash-on-Mac-OSX.patch Type: application/octet-stream Size: 1423 bytes Desc: not available URL: -------------- next part -------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From david at 2of1.org Thu Jul 22 16:16:08 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 22 Jul 2010 17:16:08 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module Message-ID: <1279808169-10726-1-git-send-email-david@2of1.org> Adds support for the D2D API on Win7/Vista SP2 with Platform Update Requires d2d1 contrib headers --- configure.ac | 27 ++- modules/video_output/msw/Modules.am | 8 + modules/video_output/msw/common.c | 9 +- modules/video_output/msw/common.h | 9 + modules/video_output/msw/direct2d.c | 399 +++++++++++++++++++++++++++++++++++ modules/video_output/msw/events.c | 3 + 6 files changed, 447 insertions(+), 8 deletions(-) create mode 100644 modules/video_output/msw/direct2d.c diff --git a/configure.ac b/configure.ac index 8a8701e..45aaf30 100644 --- a/configure.ac +++ b/configure.ac @@ -876,7 +876,7 @@ AC_ARG_VAR(PKG_CONFIG_PATH, [Paths where to find .pc not at the default location]) PKG_PROG_PKG_CONFIG() -dnl On some OS we need static linking +dnl On some OS we need static linking AS_IF([test -n "${PKG_CONFIG}" ],[ AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" ],[ PKG_CONFIG="${PKG_CONFIG} --static" @@ -886,14 +886,14 @@ dnl On some OS we need static linking dnl dnl Check for zlib.h and -lz along with system -lminizip if available -dnl +dnl AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ]) AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ]) if test "${have_zlib}" = "yes" then VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz]) PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [ - AC_CHECK_HEADERS([unzip.h], [ + AC_CHECK_HEADERS([unzip.h], [ have_minizip=yes MINIZIP_LIBS="-lminizip -lz" ], [ @@ -1841,7 +1841,7 @@ lternatively you can use --disable-live555 to disable the liveMedia plugin.]) AC_MSG_RESULT(no) if test "${enable_live555}" = "yes"; then AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}]) - fi + fi fi fi fi @@ -2697,7 +2697,7 @@ AC_ARG_ENABLE(dxva2, AS_IF([test "${enable_dxva2}" != "no"], [ if test "${SYS}" = "mingw32"; then AS_IF([test "x${have_avcodec}" = "xyes"], [ - AC_CHECK_HEADERS(dxva2api.h, + AC_CHECK_HEADERS(dxva2api.h, [ AC_CHECK_HEADERS(libavcodec/dxva2.h, [ VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid]) @@ -3458,6 +3458,23 @@ then fi dnl +dnl Windows Direct2D plugin +dnl +AC_ARG_ENABLE(direct2d, + [ --enable-direct2d Win32 Direct2D support (default enabled on Win32)]) +if test "${enable_direct2d}" != "no"; then + if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" + then + AC_CHECK_HEADERS(d2d1.h, + [ + VLC_ADD_PLUGIN([direct2d]) + VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32]) + ], [AC_MSG_ERROR([Cannot find Direct2D headers!])] + ) + fi +fi + +dnl dnl Windows DirectX module dnl diff --git a/modules/video_output/msw/Modules.am b/modules/video_output/msw/Modules.am index 51807c8..0613bae 100644 --- a/modules/video_output/msw/Modules.am +++ b/modules/video_output/msw/Modules.am @@ -1,3 +1,11 @@ +SOURCES_direct2d = \ + direct2d.c \ + common.h \ + events.h \ + events.c \ + common.c \ + $(NULL) + SOURCES_directx = \ directx.c \ common.h \ diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c index 5704d5c..fddbd3d 100644 --- a/modules/video_output/msw/common.c +++ b/modules/video_output/msw/common.c @@ -48,6 +48,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include "common.h" @@ -379,7 +382,7 @@ void UpdateRects(vout_display_t *vd, SWP_NOCOPYBITS|SWP_NOZORDER|SWP_ASYNCWINDOWPOS); /* Destination image position and dimensions */ -#if defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) rect_dest.left = 0; rect_dest.right = place.width; rect_dest.top = 0; @@ -398,7 +401,7 @@ void UpdateRects(vout_display_t *vd, #endif -#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* UpdateOverlay directdraw function doesn't automatically clip to the * display size so we need to do it otherwise it will fail * It is also needed for d3d to avoid exceding our surface size */ @@ -457,7 +460,7 @@ void UpdateRects(vout_display_t *vd, /* Apply overlay hardware constraints */ if (sys->use_overlay) AlignRect(&rect_src_clipped, sys->i_align_src_boundary, sys->i_align_src_size); -#elif defined(MODULE_NAME_IS_direct3d) +#elif defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* Needed at least with YUV content */ rect_src_clipped.left &= ~1; rect_src_clipped.right &= ~1; diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h index e023ef4..db6a2d8 100644 --- a/modules/video_output/msw/common.h +++ b/modules/video_output/msw/common.h @@ -157,6 +157,15 @@ struct vout_display_sys_t vout_display_opengl_t vgl; #endif +#ifdef MODULE_NAME_IS_direct2d + HINSTANCE h_d2_dll; /* handle of the opened d3d9 dll */ + FLOAT f_d2_dpi_x; /* DPI x */ + FLOAT f_d2_dpi_y; /* DPI y */ + ID2D1Factory *p_d2_factory; /* D2D factory */ + ID2D1HwndRenderTarget *p_d2_render_target; /* D2D rendering target */ + ID2D1Bitmap *p_d2_bitmap; /* D2 bitmap */ +#endif + #ifdef MODULE_NAME_IS_direct3d bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ /* show video on desktop window ? */ diff --git a/modules/video_output/msw/direct2d.c b/modules/video_output/msw/direct2d.c new file mode 100644 index 0000000..c04cdf6 --- /dev/null +++ b/modules/video_output/msw/direct2d.c @@ -0,0 +1,399 @@ +/***************************************************************************** + * direct2d.c : Direct2D video output plugin for vlc (Win7/Vista SP2 PF update) + ***************************************************************************** + * Copyright (C) 2010 VideoLAN and AUTHORS + * $Id$ + * + * Author: David Kaplan + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +/***************************************************************************** + * Preamble + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif +#include + +#include +#include +#include +#include + +#include +#include + +#include + +#include "common.h" + +#include +#undef GUID_EXT +#define GUID_EXT +DEFINE_GUID(IID_ID2D1Factory, 102048327, 28496, 18010, 146, 69, 17, 139, 253, 59, 96, 7); + +#ifndef WS_NONAVDONEBUTTON +# define WS_NONAVDONEBUTTON 0 +#endif + +/***************************************************************************** + * Module descriptor + *****************************************************************************/ +static int Open (vlc_object_t *); +static void Close(vlc_object_t *); + +#define D2D_HELP N_("Video output for Windows 7/Windows Vista with Platform update") + +vlc_module_begin () + set_category(CAT_VIDEO) + set_subcategory(SUBCAT_VIDEO_VOUT) + set_help(D2D_HELP) + set_shortname("Direct2D") + set_description(N_("Direct2D video output")) + set_capability("vout display", 10) + add_shortcut("direct2d") + set_callbacks(Open, Close) +vlc_module_end () + + +/***************************************************************************** + * Local prototypes + *****************************************************************************/ +static picture_pool_t *Pool (vout_display_t *, unsigned); +static void Prepare(vout_display_t *, picture_t *); +static void Display(vout_display_t *, picture_t *); +static int Control(vout_display_t *, int, va_list); +static void Manage (vout_display_t *); + +void D2D_CreateRenderTarget(vout_display_t *vd); +void D2D_ResizeRenderTarget(vout_display_t *vd); +void D2D_DestroyRenderTarget(vout_display_t *vd); + +/** + * Initialises Direct2D vout module + */ +static int Open(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + vout_display_sys_t *sys; + + vd->sys = sys = calloc(1, sizeof(*sys)); + if (!sys) + return VLC_ENOMEM; + + if (CommonInit(vd)) + goto error; + + sys->h_d2_dll = LoadLibrary(TEXT("D2D1.DLL")); + if (!sys->h_d2_dll) { + if (object->b_force) + msg_Err(vd, "Cannot load D2D1.DLL, aborting"); + goto error; + } + + D2D1_FACTORY_OPTIONS fo = { + D2D1_DEBUG_LEVEL_NONE + }; + + HRESULT (WINAPI *_D2D1CreateFactory)( D2D1_FACTORY_TYPE, REFIID, + const D2D1_FACTORY_OPTIONS *, void ** ); + + _D2D1CreateFactory = (void *)GetProcAddress(sys->h_d2_dll, + TEXT("D2D1CreateFactory")); + if (!_D2D1CreateFactory) { + if (object->b_force) + msg_Err(vd, + "Cannot locate reference to a D2D1CreateFactory ABI in D2D1.DLL"); + goto error; + } + +#ifndef NDEBUG + msg_Dbg(vd, "D2D1.DLL loaded"); +#endif + + HRESULT hr = _D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, + (REFIID)&IID_ID2D1Factory, &fo, (void **)&sys->p_d2_factory); + if (hr != S_OK) { + if (object->b_force) + msg_Err(vd, "Cannot create Direct2D factory (hr = 0x%x)!", + (uint32_t)hr); + goto error; + } + + sys->p_d2_render_target = NULL; + D2D_CreateRenderTarget(vd); + + vout_display_info_t info = vd->info; + info.is_slow = false; + info.has_double_click = true; + info.has_hide_mouse = true; + info.has_pictures_invalid = true; + vd->info = info; + + RECT rc; + GetClientRect(sys->hvideownd, &rc); + D2D1_SIZE_U size = { + rc.right - rc.left, + rc.bottom - rc.top + }; + + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 for ID2D1Bitmap */ + vd->fmt.i_rmask = 0x000000ff; + vd->fmt.i_gmask = 0x0000ff00; + vd->fmt.i_bmask = 0x00000000; /* todo - fix this (should be 0x00ff0000) */ + vd->fmt.i_width = size.width; + vd->fmt.i_height = size.height; + + vd->pool = Pool; + vd->prepare = Prepare; + vd->display = Display; + vd->manage = Manage; + vd->control = Control; + + EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct2D output)"); + +#ifndef NDEBUG + msg_Dbg(vd, "Ready"); +#endif + + return VLC_SUCCESS; + +error: + Close(VLC_OBJECT(vd)); + return VLC_EGENERIC; +} + +/** + * Close Direct2D vout + */ +static void Close(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + + D2D_DestroyRenderTarget(vd); + + if (vd->sys->pool) + picture_pool_Delete(vd->sys->pool); + + CommonClean(vd); + + free(vd->sys); +} + +/** + * Handles pool allocations for bitmaps + */ +static picture_pool_t *Pool(vout_display_t *vd, unsigned count) +{ + vout_display_sys_t *sys = vd->sys; + + if (!sys->pool) { + sys->pool = picture_pool_NewFromFormat(&vd->fmt, count); +#ifndef NDEBUG + msg_Dbg(vd, "New picture pool created"); +#endif + } + + return sys->pool; +} + +/** + * Performs set up of ID2D1Bitmap memory ready for blitting + */ +static void Prepare(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + if (sys->p_d2_render_target && sys->p_d2_bitmap) + { + UINT32 pitch = vd->fmt.i_width * 4; + + HRESULT hr = ID2D1Bitmap_CopyFromMemory(sys->p_d2_bitmap, NULL, + picture->p[0].p_pixels, pitch); + if( hr != S_OK ) + msg_Err(vd, "Failed to copy bitmap memory (hr = 0x%x)!", + (uint32_t)hr); + +#ifndef NDEBUG + /*msg_Dbg(vd, "Bitmap dbg: target = %p, pitch = %d, bitmap = %p", + sys->p_d2_render_target, pitch, sys->p_d2_bitmap);*/ +#endif + } +} + +/** + * Blits a scaled picture_t to the render target + */ +static void Display(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_RECT_F rc = { + sys->rect_dest.left, + sys->rect_dest.top, + sys->rect_dest.right, + sys->rect_dest.bottom + }; + + if (sys->p_d2_render_target && sys->p_d2_bitmap) { + ID2D1HwndRenderTarget_BeginDraw(sys->p_d2_render_target); + ID2D1HwndRenderTarget_DrawBitmap(sys->p_d2_render_target, + sys->p_d2_bitmap, &rc, 1.0f, + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, NULL); + ID2D1HwndRenderTarget_EndDraw(sys->p_d2_render_target, NULL, NULL); + } + + picture_Release(picture); + + CommonDisplay(vd); +} + + /** + * Control event handler + */ +static int Control(vout_display_t *vd, int query, va_list args) +{ + return CommonControl(vd, query, args); +} + +/** + * Handles surface management + * ID2D1RenderTargets cannot be resized and must be recreated + */ +static void Manage(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + CommonManage(vd); + + if (sys->changes & DX_POSITION_CHANGE) { + D2D_ResizeRenderTarget(vd); + sys->changes &= ~DX_POSITION_CHANGE; + } +} + +/** + * Resizes a ID2D1HWndRenderTarget + */ +void D2D_ResizeRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + HRESULT hr = ID2D1HwndRenderTarget_Resize(sys->p_d2_render_target, &size); + if(hr != S_OK) { + msg_Err(vd, "Cannot resize render target (width = %d, height = %d, hr = 0x%x)!", + size.width, size.height, (uint32_t)hr); + + D2D_DestroyRenderTarget(vd); + } +} + +/** + * Creates a ID2D1HwndRenderTarget and associated ID2D1Bitmap + */ +void D2D_CreateRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_PIXEL_FORMAT pf = { + DXGI_FORMAT_B8G8R8A8_UNORM, + D2D1_ALPHA_MODE_IGNORE + }; + + D2D1_RENDER_TARGET_PROPERTIES rtp = { + D2D1_RENDER_TARGET_TYPE_DEFAULT, + pf, + 0, + 0, + D2D1_RENDER_TARGET_USAGE_NONE, + D2D1_FEATURE_LEVEL_DEFAULT + }; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + D2D1_HWND_RENDER_TARGET_PROPERTIES hrtp = { + sys->hvideownd, + size, + D2D1_PRESENT_OPTIONS_IMMEDIATELY /* this might need fiddling */ + }; + + HRESULT hr = ID2D1Factory_CreateHwndRenderTarget(sys->p_d2_factory, + &rtp, &hrtp, &sys->p_d2_render_target); + if(hr != S_OK) { + msg_Err(vd, "Cannot create render target (hvideownd = 0x%x, width = %d, height = %d, pf.format = %d, hr = 0x%x)!", + (uint32_t)hrtp.hwnd, hrtp.pixelSize.width, hrtp.pixelSize.height, + pf.format, (uint32_t)hr); + + D2D_DestroyRenderTarget(vd); + } + + ID2D1Factory_GetDesktopDpi(sys->p_d2_factory, &sys->f_d2_dpi_x, + &sys->f_d2_dpi_y); + + D2D1_BITMAP_PROPERTIES bp = { + pf, + sys->f_d2_dpi_x, + sys->f_d2_dpi_y + }; + + D2D1_SIZE_U bitmap_size = { + vd->fmt.i_width, + vd->fmt.i_height + }; + + hr = ID2D1HwndRenderTarget_CreateBitmap(sys->p_d2_render_target, + bitmap_size, NULL, 0, &bp, &sys->p_d2_bitmap); + if (hr != S_OK) { + msg_Err(vd, "Failed to create bitmap (hr = 0x%x)!", (uint32_t)hr); + } + +#ifndef NDEBUG + msg_Dbg(vd, "Render trgt dbg: dpi = %f, render_target = %p, bitmap = %p", + sys->f_d2_dpi_x, sys->p_d2_render_target, sys->p_d2_bitmap); +#endif +} + +/** + * Cleans up ID2D1HwndRenderTarget and ID2D1Bitmap + */ +void D2D_DestroyRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + if(sys->p_d2_render_target) { + ID2D1HwndRenderTarget_Release(sys->p_d2_render_target); + sys->p_d2_render_target = NULL; + } + + if (sys->p_d2_bitmap) { + ID2D1Bitmap_Release(sys->p_d2_bitmap); + sys->p_d2_bitmap = NULL; + } + +#ifndef NDEBUG + msg_Dbg(vd, "Destroyed"); +#endif +} diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c index d2d5e26..46c15c4 100644 --- a/modules/video_output/msw/events.c +++ b/modules/video_output/msw/events.c @@ -49,6 +49,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include #include "common.h" -- 1.7.0.4 From ileoo at videolan.org Thu Jul 22 16:16:30 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Thu, 22 Jul 2010 17:16:30 +0300 Subject: [vlc-devel] [PATCH] Fix getting the application font in Equalizer In-Reply-To: <927A48D2-BF6B-4F9D-AE00-AD0F223F5F6C@iki.fi> References: <927A48D2-BF6B-4F9D-AE00-AD0F223F5F6C@iki.fi> Message-ID: <20100722141630.GA9960@ileoo> On Thu, Jul 22, 2010 at 05:08:35PM +0300, Juho V?h?-Herttua wrote: > Qt4 on OSX crashed a lot because of this static_cast, it looks strange anyway... Applied in [7ba91883bfc80375dc17ced94501c6c4e1baf82b] -- Ilkka Ollakka Nothing cures insomnia like the realization that it's time to get up. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From david at 2of1.org Thu Jul 22 16:17:24 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 22 Jul 2010 17:17:24 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <1279808169-10726-1-git-send-email-david@2of1.org> References: <1279808169-10726-1-git-send-email-david@2of1.org> Message-ID: sorry - got some artifacts in configure.ac - will resubmit On Thu, Jul 22, 2010 at 5:16 PM, David Kaplan wrote: > Adds support for the D2D API on Win7/Vista SP2 with Platform Update > Requires d2d1 contrib headers > --- > configure.ac | 27 ++- > modules/video_output/msw/Modules.am | 8 + > modules/video_output/msw/common.c | 9 +- > modules/video_output/msw/common.h | 9 + > modules/video_output/msw/direct2d.c | 399 > +++++++++++++++++++++++++++++++++++ > modules/video_output/msw/events.c | 3 + > 6 files changed, 447 insertions(+), 8 deletions(-) > create mode 100644 modules/video_output/msw/direct2d.c > > diff --git a/configure.ac b/configure.ac > index 8a8701e..45aaf30 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -876,7 +876,7 @@ AC_ARG_VAR(PKG_CONFIG_PATH, > [Paths where to find .pc not at the default location]) > PKG_PROG_PKG_CONFIG() > > -dnl On some OS we need static linking > +dnl On some OS we need static linking > AS_IF([test -n "${PKG_CONFIG}" ],[ > AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o > "${SYS}" = "darwin" ],[ > PKG_CONFIG="${PKG_CONFIG} --static" > @@ -886,14 +886,14 @@ dnl On some OS we need static linking > > dnl > dnl Check for zlib.h and -lz along with system -lminizip if available > -dnl > +dnl > AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ]) > AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ]) > if test "${have_zlib}" = "yes" > then > VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz]) > PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [ > - AC_CHECK_HEADERS([unzip.h], [ > + AC_CHECK_HEADERS([unzip.h], [ > have_minizip=yes > MINIZIP_LIBS="-lminizip -lz" > ], [ > @@ -1841,7 +1841,7 @@ lternatively you can use --disable-live555 to disable > the liveMedia plugin.]) > AC_MSG_RESULT(no) > if test "${enable_live555}" = "yes"; then > AC_MSG_ERROR([cannot find > ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled > live555 in ${with_live555_tree}]) > - fi > + fi > fi > fi > fi > @@ -2697,7 +2697,7 @@ AC_ARG_ENABLE(dxva2, > AS_IF([test "${enable_dxva2}" != "no"], [ > if test "${SYS}" = "mingw32"; then > AS_IF([test "x${have_avcodec}" = "xyes"], [ > - AC_CHECK_HEADERS(dxva2api.h, > + AC_CHECK_HEADERS(dxva2api.h, > [ > AC_CHECK_HEADERS(libavcodec/dxva2.h, [ > VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid]) > @@ -3458,6 +3458,23 @@ then > fi > > dnl > +dnl Windows Direct2D plugin > +dnl > +AC_ARG_ENABLE(direct2d, > + [ --enable-direct2d Win32 Direct2D support (default enabled on > Win32)]) > +if test "${enable_direct2d}" != "no"; then > + if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" > + then > + AC_CHECK_HEADERS(d2d1.h, > + [ > + VLC_ADD_PLUGIN([direct2d]) > + VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32]) > + ], [AC_MSG_ERROR([Cannot find Direct2D headers!])] > + ) > + fi > +fi > + > +dnl > dnl Windows DirectX module > dnl > > diff --git a/modules/video_output/msw/Modules.am > b/modules/video_output/msw/Modules.am > index 51807c8..0613bae 100644 > --- a/modules/video_output/msw/Modules.am > +++ b/modules/video_output/msw/Modules.am > @@ -1,3 +1,11 @@ > +SOURCES_direct2d = \ > + direct2d.c \ > + common.h \ > + events.h \ > + events.c \ > + common.c \ > + $(NULL) > + > SOURCES_directx = \ > directx.c \ > common.h \ > diff --git a/modules/video_output/msw/common.c > b/modules/video_output/msw/common.c > index 5704d5c..fddbd3d 100644 > --- a/modules/video_output/msw/common.c > +++ b/modules/video_output/msw/common.c > @@ -48,6 +48,9 @@ > #ifdef MODULE_NAME_IS_glwin32 > #include "../opengl.h" > #endif > +#ifdef MODULE_NAME_IS_direct2d > +#include > +#endif > > #include "common.h" > > @@ -379,7 +382,7 @@ void UpdateRects(vout_display_t *vd, > SWP_NOCOPYBITS|SWP_NOZORDER|SWP_ASYNCWINDOWPOS); > > /* Destination image position and dimensions */ > -#if defined(MODULE_NAME_IS_direct3d) > +#if defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) > rect_dest.left = 0; > rect_dest.right = place.width; > rect_dest.top = 0; > @@ -398,7 +401,7 @@ void UpdateRects(vout_display_t *vd, > > #endif > > -#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) > +#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) || > defined(MODULE_NAME_IS_direct2d) > /* UpdateOverlay directdraw function doesn't automatically clip to the > * display size so we need to do it otherwise it will fail > * It is also needed for d3d to avoid exceding our surface size */ > @@ -457,7 +460,7 @@ void UpdateRects(vout_display_t *vd, > /* Apply overlay hardware constraints */ > if (sys->use_overlay) > AlignRect(&rect_src_clipped, sys->i_align_src_boundary, > sys->i_align_src_size); > -#elif defined(MODULE_NAME_IS_direct3d) > +#elif defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) > /* Needed at least with YUV content */ > rect_src_clipped.left &= ~1; > rect_src_clipped.right &= ~1; > diff --git a/modules/video_output/msw/common.h > b/modules/video_output/msw/common.h > index e023ef4..db6a2d8 100644 > --- a/modules/video_output/msw/common.h > +++ b/modules/video_output/msw/common.h > @@ -157,6 +157,15 @@ struct vout_display_sys_t > vout_display_opengl_t vgl; > #endif > > +#ifdef MODULE_NAME_IS_direct2d > + HINSTANCE h_d2_dll; /* handle of the opened > d3d9 dll */ > + FLOAT f_d2_dpi_x; /* > DPI x */ > + FLOAT f_d2_dpi_y; /* > DPI y */ > + ID2D1Factory *p_d2_factory; /* D2D > factory */ > + ID2D1HwndRenderTarget *p_d2_render_target; /* D2D rendering > target */ > + ID2D1Bitmap *p_d2_bitmap; /* D2 > bitmap */ > +#endif > + > #ifdef MODULE_NAME_IS_direct3d > bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ > /* show video on desktop window ? */ > diff --git a/modules/video_output/msw/direct2d.c > b/modules/video_output/msw/direct2d.c > new file mode 100644 > index 0000000..c04cdf6 > --- /dev/null > +++ b/modules/video_output/msw/direct2d.c > @@ -0,0 +1,399 @@ > > +/***************************************************************************** > + * direct2d.c : Direct2D video output plugin for vlc (Win7/Vista SP2 PF > update) > + > ***************************************************************************** > + * Copyright (C) 2010 VideoLAN and AUTHORS > + * $Id$ > + * > + * Author: David Kaplan > + * > + * 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 > + * (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. > + * > + * 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. > + > *****************************************************************************/ > + > > +/***************************************************************************** > + * Preamble > + > *****************************************************************************/ > + > +#ifdef HAVE_CONFIG_H > +# include "config.h" > +#endif > +#include > + > +#include > +#include > +#include > +#include > + > +#include > +#include > + > +#include > + > +#include "common.h" > + > +#include > +#undef GUID_EXT > +#define GUID_EXT > +DEFINE_GUID(IID_ID2D1Factory, 102048327, 28496, 18010, 146, 69, 17, 139, > 253, 59, 96, 7); > + > +#ifndef WS_NONAVDONEBUTTON > +# define WS_NONAVDONEBUTTON 0 > +#endif > + > > +/***************************************************************************** > + * Module descriptor > + > *****************************************************************************/ > +static int Open (vlc_object_t *); > +static void Close(vlc_object_t *); > + > +#define D2D_HELP N_("Video output for Windows 7/Windows Vista with > Platform update") > + > +vlc_module_begin () > + set_category(CAT_VIDEO) > + set_subcategory(SUBCAT_VIDEO_VOUT) > + set_help(D2D_HELP) > + set_shortname("Direct2D") > + set_description(N_("Direct2D video output")) > + set_capability("vout display", 10) > + add_shortcut("direct2d") > + set_callbacks(Open, Close) > +vlc_module_end () > + > + > > +/***************************************************************************** > + * Local prototypes > + > *****************************************************************************/ > +static picture_pool_t *Pool (vout_display_t *, unsigned); > +static void Prepare(vout_display_t *, picture_t *); > +static void Display(vout_display_t *, picture_t *); > +static int Control(vout_display_t *, int, va_list); > +static void Manage (vout_display_t *); > + > +void D2D_CreateRenderTarget(vout_display_t *vd); > +void D2D_ResizeRenderTarget(vout_display_t *vd); > +void D2D_DestroyRenderTarget(vout_display_t *vd); > + > +/** > + * Initialises Direct2D vout module > + */ > +static int Open(vlc_object_t *object) > +{ > + vout_display_t *vd = (vout_display_t *)object; > + vout_display_sys_t *sys; > + > + vd->sys = sys = calloc(1, sizeof(*sys)); > + if (!sys) > + return VLC_ENOMEM; > + > + if (CommonInit(vd)) > + goto error; > + > + sys->h_d2_dll = LoadLibrary(TEXT("D2D1.DLL")); > + if (!sys->h_d2_dll) { > + if (object->b_force) > + msg_Err(vd, "Cannot load D2D1.DLL, aborting"); > + goto error; > + } > + > + D2D1_FACTORY_OPTIONS fo = { > + D2D1_DEBUG_LEVEL_NONE > + }; > + > + HRESULT (WINAPI *_D2D1CreateFactory)( D2D1_FACTORY_TYPE, REFIID, > + const D2D1_FACTORY_OPTIONS *, void ** ); > + > + _D2D1CreateFactory = (void *)GetProcAddress(sys->h_d2_dll, > + TEXT("D2D1CreateFactory")); > + if (!_D2D1CreateFactory) { > + if (object->b_force) > + msg_Err(vd, > + "Cannot locate reference to a D2D1CreateFactory ABI in > D2D1.DLL"); > + goto error; > + } > + > +#ifndef NDEBUG > + msg_Dbg(vd, "D2D1.DLL loaded"); > +#endif > + > + HRESULT hr = _D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, > + (REFIID)&IID_ID2D1Factory, &fo, (void **)&sys->p_d2_factory); > + if (hr != S_OK) { > + if (object->b_force) > + msg_Err(vd, "Cannot create Direct2D factory (hr = 0x%x)!", > + (uint32_t)hr); > + goto error; > + } > + > + sys->p_d2_render_target = NULL; > + D2D_CreateRenderTarget(vd); > + > + vout_display_info_t info = vd->info; > + info.is_slow = false; > + info.has_double_click = true; > + info.has_hide_mouse = true; > + info.has_pictures_invalid = true; > + vd->info = info; > + > + RECT rc; > + GetClientRect(sys->hvideownd, &rc); > + D2D1_SIZE_U size = { > + rc.right - rc.left, > + rc.bottom - rc.top > + }; > + > + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 for > ID2D1Bitmap */ > + vd->fmt.i_rmask = 0x000000ff; > + vd->fmt.i_gmask = 0x0000ff00; > + vd->fmt.i_bmask = 0x00000000; /* todo - fix this (should be > 0x00ff0000) */ > + vd->fmt.i_width = size.width; > + vd->fmt.i_height = size.height; > + > + vd->pool = Pool; > + vd->prepare = Prepare; > + vd->display = Display; > + vd->manage = Manage; > + vd->control = Control; > + > + EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct2D output)"); > + > +#ifndef NDEBUG > + msg_Dbg(vd, "Ready"); > +#endif > + > + return VLC_SUCCESS; > + > +error: > + Close(VLC_OBJECT(vd)); > + return VLC_EGENERIC; > +} > + > +/** > + * Close Direct2D vout > + */ > +static void Close(vlc_object_t *object) > +{ > + vout_display_t *vd = (vout_display_t *)object; > + > + D2D_DestroyRenderTarget(vd); > + > + if (vd->sys->pool) > + picture_pool_Delete(vd->sys->pool); > + > + CommonClean(vd); > + > + free(vd->sys); > +} > + > +/** > + * Handles pool allocations for bitmaps > + */ > +static picture_pool_t *Pool(vout_display_t *vd, unsigned count) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + if (!sys->pool) { > + sys->pool = picture_pool_NewFromFormat(&vd->fmt, count); > +#ifndef NDEBUG > + msg_Dbg(vd, "New picture pool created"); > +#endif > + } > + > + return sys->pool; > +} > + > +/** > + * Performs set up of ID2D1Bitmap memory ready for blitting > + */ > +static void Prepare(vout_display_t *vd, picture_t *picture) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + if (sys->p_d2_render_target && sys->p_d2_bitmap) > + { > + UINT32 pitch = vd->fmt.i_width * 4; > + > + HRESULT hr = ID2D1Bitmap_CopyFromMemory(sys->p_d2_bitmap, NULL, > + picture->p[0].p_pixels, pitch); > + if( hr != S_OK ) > + msg_Err(vd, "Failed to copy bitmap memory (hr = 0x%x)!", > + (uint32_t)hr); > + > +#ifndef NDEBUG > + /*msg_Dbg(vd, "Bitmap dbg: target = %p, pitch = %d, bitmap = %p", > + sys->p_d2_render_target, pitch, sys->p_d2_bitmap);*/ > +#endif > + } > +} > + > +/** > + * Blits a scaled picture_t to the render target > + */ > +static void Display(vout_display_t *vd, picture_t *picture) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + D2D1_RECT_F rc = { > + sys->rect_dest.left, > + sys->rect_dest.top, > + sys->rect_dest.right, > + sys->rect_dest.bottom > + }; > + > + if (sys->p_d2_render_target && sys->p_d2_bitmap) { > + ID2D1HwndRenderTarget_BeginDraw(sys->p_d2_render_target); > + ID2D1HwndRenderTarget_DrawBitmap(sys->p_d2_render_target, > + sys->p_d2_bitmap, &rc, 1.0f, > + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, NULL); > + ID2D1HwndRenderTarget_EndDraw(sys->p_d2_render_target, NULL, > NULL); > + } > + > + picture_Release(picture); > + > + CommonDisplay(vd); > +} > + > + /** > + * Control event handler > + */ > +static int Control(vout_display_t *vd, int query, va_list args) > +{ > + return CommonControl(vd, query, args); > +} > + > +/** > + * Handles surface management > + * ID2D1RenderTargets cannot be resized and must be recreated > + */ > +static void Manage(vout_display_t *vd) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + CommonManage(vd); > + > + if (sys->changes & DX_POSITION_CHANGE) { > + D2D_ResizeRenderTarget(vd); > + sys->changes &= ~DX_POSITION_CHANGE; > + } > +} > + > +/** > + * Resizes a ID2D1HWndRenderTarget > + */ > +void D2D_ResizeRenderTarget(vout_display_t *vd) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + D2D1_SIZE_U size = { > + sys->rect_dest.right - sys->rect_dest.left, > + sys->rect_dest.bottom - sys->rect_dest.top > + }; > + > + HRESULT hr = ID2D1HwndRenderTarget_Resize(sys->p_d2_render_target, > &size); > + if(hr != S_OK) { > + msg_Err(vd, "Cannot resize render target (width = %d, height = %d, > hr = 0x%x)!", > + size.width, size.height, (uint32_t)hr); > + > + D2D_DestroyRenderTarget(vd); > + } > +} > + > +/** > + * Creates a ID2D1HwndRenderTarget and associated ID2D1Bitmap > + */ > +void D2D_CreateRenderTarget(vout_display_t *vd) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + D2D1_PIXEL_FORMAT pf = { > + DXGI_FORMAT_B8G8R8A8_UNORM, > + D2D1_ALPHA_MODE_IGNORE > + }; > + > + D2D1_RENDER_TARGET_PROPERTIES rtp = { > + D2D1_RENDER_TARGET_TYPE_DEFAULT, > + pf, > + 0, > + 0, > + D2D1_RENDER_TARGET_USAGE_NONE, > + D2D1_FEATURE_LEVEL_DEFAULT > + }; > + > + D2D1_SIZE_U size = { > + sys->rect_dest.right - sys->rect_dest.left, > + sys->rect_dest.bottom - sys->rect_dest.top > + }; > + > + D2D1_HWND_RENDER_TARGET_PROPERTIES hrtp = { > + sys->hvideownd, > + size, > + D2D1_PRESENT_OPTIONS_IMMEDIATELY /* this might need fiddling */ > + }; > + > + HRESULT hr = ID2D1Factory_CreateHwndRenderTarget(sys->p_d2_factory, > + &rtp, &hrtp, &sys->p_d2_render_target); > + if(hr != S_OK) { > + msg_Err(vd, "Cannot create render target (hvideownd = 0x%x, width > = %d, height = %d, pf.format = %d, hr = 0x%x)!", > + (uint32_t)hrtp.hwnd, hrtp.pixelSize.width, > hrtp.pixelSize.height, > + pf.format, (uint32_t)hr); > + > + D2D_DestroyRenderTarget(vd); > + } > + > + ID2D1Factory_GetDesktopDpi(sys->p_d2_factory, &sys->f_d2_dpi_x, > + &sys->f_d2_dpi_y); > + > + D2D1_BITMAP_PROPERTIES bp = { > + pf, > + sys->f_d2_dpi_x, > + sys->f_d2_dpi_y > + }; > + > + D2D1_SIZE_U bitmap_size = { > + vd->fmt.i_width, > + vd->fmt.i_height > + }; > + > + hr = ID2D1HwndRenderTarget_CreateBitmap(sys->p_d2_render_target, > + bitmap_size, NULL, 0, &bp, &sys->p_d2_bitmap); > + if (hr != S_OK) { > + msg_Err(vd, "Failed to create bitmap (hr = 0x%x)!", (uint32_t)hr); > + } > + > +#ifndef NDEBUG > + msg_Dbg(vd, "Render trgt dbg: dpi = %f, render_target = %p, bitmap = > %p", > + sys->f_d2_dpi_x, sys->p_d2_render_target, sys->p_d2_bitmap); > +#endif > +} > + > +/** > + * Cleans up ID2D1HwndRenderTarget and ID2D1Bitmap > + */ > +void D2D_DestroyRenderTarget(vout_display_t *vd) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + if(sys->p_d2_render_target) { > + ID2D1HwndRenderTarget_Release(sys->p_d2_render_target); > + sys->p_d2_render_target = NULL; > + } > + > + if (sys->p_d2_bitmap) { > + ID2D1Bitmap_Release(sys->p_d2_bitmap); > + sys->p_d2_bitmap = NULL; > + } > + > +#ifndef NDEBUG > + msg_Dbg(vd, "Destroyed"); > +#endif > +} > diff --git a/modules/video_output/msw/events.c > b/modules/video_output/msw/events.c > index d2d5e26..46c15c4 100644 > --- a/modules/video_output/msw/events.c > +++ b/modules/video_output/msw/events.c > @@ -49,6 +49,9 @@ > #ifdef MODULE_NAME_IS_glwin32 > #include "../opengl.h" > #endif > +#ifdef MODULE_NAME_IS_direct2d > +#include > +#endif > > #include > #include "common.h" > -- > 1.7.0.4 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Thu Jul 22 16:24:05 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Thu, 22 Jul 2010 17:24:05 +0300 Subject: [vlc-devel] [PATCH] Another attempt to make Qt4 interface compile on OS X In-Reply-To: References: Message-ID: <201007221724.08010.remi@remlab.net> Le jeudi 22 juillet 2010 15:17:29 Juho V?h?-Herttua, vous avez ?crit : > I tried to only keep the necessary changes in this patch, I'll try to work > out other possible issues later. Breaks the build on Linux. Nack. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Thu Jul 22 16:24:19 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Thu, 22 Jul 2010 17:24:19 +0300 Subject: [vlc-devel] [PATCH] Another attempt to patch the towlower function In-Reply-To: References: Message-ID: <201007221724.20051.remi@remlab.net> Le jeudi 22 juillet 2010 15:14:32 Juho V?h?-Herttua, vous avez ?crit : > Merged, thanks. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From david at 2of1.org Thu Jul 22 16:26:25 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 22 Jul 2010 17:26:25 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module Message-ID: <1279808785-10933-1-git-send-email-david@2of1.org> Adds support for the D2D API on Win7/Vista SP2 with Platform Update Requires d2d1 contrib headers --- configure.ac | 17 ++ modules/video_output/msw/Modules.am | 8 + modules/video_output/msw/common.c | 9 +- modules/video_output/msw/common.h | 9 + modules/video_output/msw/direct2d.c | 399 +++++++++++++++++++++++++++++++++++ modules/video_output/msw/events.c | 3 + 6 files changed, 442 insertions(+), 3 deletions(-) create mode 100644 modules/video_output/msw/direct2d.c diff --git a/configure.ac b/configure.ac index 8a8701e..221f7c4 100644 --- a/configure.ac +++ b/configure.ac @@ -3490,6 +3490,23 @@ then fi dnl +dnl Windows Direct2D plugin +dnl +AC_ARG_ENABLE(direct2d, + [ --enable-direct2d Win32 Direct2D support (default enabled on Win32)]) +if test "${enable_direct2d}" != "no"; then + if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" + then + AC_CHECK_HEADERS(d2d1.h, + [ + VLC_ADD_PLUGIN([direct2d]) + VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32]) + ], [AC_MSG_ERROR([Cannot find Direct2D headers!])] + ) + fi +fi + +dnl dnl win32 GDI plugin dnl AC_ARG_ENABLE(wingdi, diff --git a/modules/video_output/msw/Modules.am b/modules/video_output/msw/Modules.am index 51807c8..0613bae 100644 --- a/modules/video_output/msw/Modules.am +++ b/modules/video_output/msw/Modules.am @@ -1,3 +1,11 @@ +SOURCES_direct2d = \ + direct2d.c \ + common.h \ + events.h \ + events.c \ + common.c \ + $(NULL) + SOURCES_directx = \ directx.c \ common.h \ diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c index 5704d5c..fddbd3d 100644 --- a/modules/video_output/msw/common.c +++ b/modules/video_output/msw/common.c @@ -48,6 +48,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include "common.h" @@ -379,7 +382,7 @@ void UpdateRects(vout_display_t *vd, SWP_NOCOPYBITS|SWP_NOZORDER|SWP_ASYNCWINDOWPOS); /* Destination image position and dimensions */ -#if defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) rect_dest.left = 0; rect_dest.right = place.width; rect_dest.top = 0; @@ -398,7 +401,7 @@ void UpdateRects(vout_display_t *vd, #endif -#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* UpdateOverlay directdraw function doesn't automatically clip to the * display size so we need to do it otherwise it will fail * It is also needed for d3d to avoid exceding our surface size */ @@ -457,7 +460,7 @@ void UpdateRects(vout_display_t *vd, /* Apply overlay hardware constraints */ if (sys->use_overlay) AlignRect(&rect_src_clipped, sys->i_align_src_boundary, sys->i_align_src_size); -#elif defined(MODULE_NAME_IS_direct3d) +#elif defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* Needed at least with YUV content */ rect_src_clipped.left &= ~1; rect_src_clipped.right &= ~1; diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h index e023ef4..db6a2d8 100644 --- a/modules/video_output/msw/common.h +++ b/modules/video_output/msw/common.h @@ -157,6 +157,15 @@ struct vout_display_sys_t vout_display_opengl_t vgl; #endif +#ifdef MODULE_NAME_IS_direct2d + HINSTANCE h_d2_dll; /* handle of the opened d3d9 dll */ + FLOAT f_d2_dpi_x; /* DPI x */ + FLOAT f_d2_dpi_y; /* DPI y */ + ID2D1Factory *p_d2_factory; /* D2D factory */ + ID2D1HwndRenderTarget *p_d2_render_target; /* D2D rendering target */ + ID2D1Bitmap *p_d2_bitmap; /* D2 bitmap */ +#endif + #ifdef MODULE_NAME_IS_direct3d bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ /* show video on desktop window ? */ diff --git a/modules/video_output/msw/direct2d.c b/modules/video_output/msw/direct2d.c new file mode 100644 index 0000000..c04cdf6 --- /dev/null +++ b/modules/video_output/msw/direct2d.c @@ -0,0 +1,399 @@ +/***************************************************************************** + * direct2d.c : Direct2D video output plugin for vlc (Win7/Vista SP2 PF update) + ***************************************************************************** + * Copyright (C) 2010 VideoLAN and AUTHORS + * $Id$ + * + * Author: David Kaplan + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +/***************************************************************************** + * Preamble + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif +#include + +#include +#include +#include +#include + +#include +#include + +#include + +#include "common.h" + +#include +#undef GUID_EXT +#define GUID_EXT +DEFINE_GUID(IID_ID2D1Factory, 102048327, 28496, 18010, 146, 69, 17, 139, 253, 59, 96, 7); + +#ifndef WS_NONAVDONEBUTTON +# define WS_NONAVDONEBUTTON 0 +#endif + +/***************************************************************************** + * Module descriptor + *****************************************************************************/ +static int Open (vlc_object_t *); +static void Close(vlc_object_t *); + +#define D2D_HELP N_("Video output for Windows 7/Windows Vista with Platform update") + +vlc_module_begin () + set_category(CAT_VIDEO) + set_subcategory(SUBCAT_VIDEO_VOUT) + set_help(D2D_HELP) + set_shortname("Direct2D") + set_description(N_("Direct2D video output")) + set_capability("vout display", 10) + add_shortcut("direct2d") + set_callbacks(Open, Close) +vlc_module_end () + + +/***************************************************************************** + * Local prototypes + *****************************************************************************/ +static picture_pool_t *Pool (vout_display_t *, unsigned); +static void Prepare(vout_display_t *, picture_t *); +static void Display(vout_display_t *, picture_t *); +static int Control(vout_display_t *, int, va_list); +static void Manage (vout_display_t *); + +void D2D_CreateRenderTarget(vout_display_t *vd); +void D2D_ResizeRenderTarget(vout_display_t *vd); +void D2D_DestroyRenderTarget(vout_display_t *vd); + +/** + * Initialises Direct2D vout module + */ +static int Open(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + vout_display_sys_t *sys; + + vd->sys = sys = calloc(1, sizeof(*sys)); + if (!sys) + return VLC_ENOMEM; + + if (CommonInit(vd)) + goto error; + + sys->h_d2_dll = LoadLibrary(TEXT("D2D1.DLL")); + if (!sys->h_d2_dll) { + if (object->b_force) + msg_Err(vd, "Cannot load D2D1.DLL, aborting"); + goto error; + } + + D2D1_FACTORY_OPTIONS fo = { + D2D1_DEBUG_LEVEL_NONE + }; + + HRESULT (WINAPI *_D2D1CreateFactory)( D2D1_FACTORY_TYPE, REFIID, + const D2D1_FACTORY_OPTIONS *, void ** ); + + _D2D1CreateFactory = (void *)GetProcAddress(sys->h_d2_dll, + TEXT("D2D1CreateFactory")); + if (!_D2D1CreateFactory) { + if (object->b_force) + msg_Err(vd, + "Cannot locate reference to a D2D1CreateFactory ABI in D2D1.DLL"); + goto error; + } + +#ifndef NDEBUG + msg_Dbg(vd, "D2D1.DLL loaded"); +#endif + + HRESULT hr = _D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, + (REFIID)&IID_ID2D1Factory, &fo, (void **)&sys->p_d2_factory); + if (hr != S_OK) { + if (object->b_force) + msg_Err(vd, "Cannot create Direct2D factory (hr = 0x%x)!", + (uint32_t)hr); + goto error; + } + + sys->p_d2_render_target = NULL; + D2D_CreateRenderTarget(vd); + + vout_display_info_t info = vd->info; + info.is_slow = false; + info.has_double_click = true; + info.has_hide_mouse = true; + info.has_pictures_invalid = true; + vd->info = info; + + RECT rc; + GetClientRect(sys->hvideownd, &rc); + D2D1_SIZE_U size = { + rc.right - rc.left, + rc.bottom - rc.top + }; + + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 for ID2D1Bitmap */ + vd->fmt.i_rmask = 0x000000ff; + vd->fmt.i_gmask = 0x0000ff00; + vd->fmt.i_bmask = 0x00000000; /* todo - fix this (should be 0x00ff0000) */ + vd->fmt.i_width = size.width; + vd->fmt.i_height = size.height; + + vd->pool = Pool; + vd->prepare = Prepare; + vd->display = Display; + vd->manage = Manage; + vd->control = Control; + + EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct2D output)"); + +#ifndef NDEBUG + msg_Dbg(vd, "Ready"); +#endif + + return VLC_SUCCESS; + +error: + Close(VLC_OBJECT(vd)); + return VLC_EGENERIC; +} + +/** + * Close Direct2D vout + */ +static void Close(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + + D2D_DestroyRenderTarget(vd); + + if (vd->sys->pool) + picture_pool_Delete(vd->sys->pool); + + CommonClean(vd); + + free(vd->sys); +} + +/** + * Handles pool allocations for bitmaps + */ +static picture_pool_t *Pool(vout_display_t *vd, unsigned count) +{ + vout_display_sys_t *sys = vd->sys; + + if (!sys->pool) { + sys->pool = picture_pool_NewFromFormat(&vd->fmt, count); +#ifndef NDEBUG + msg_Dbg(vd, "New picture pool created"); +#endif + } + + return sys->pool; +} + +/** + * Performs set up of ID2D1Bitmap memory ready for blitting + */ +static void Prepare(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + if (sys->p_d2_render_target && sys->p_d2_bitmap) + { + UINT32 pitch = vd->fmt.i_width * 4; + + HRESULT hr = ID2D1Bitmap_CopyFromMemory(sys->p_d2_bitmap, NULL, + picture->p[0].p_pixels, pitch); + if( hr != S_OK ) + msg_Err(vd, "Failed to copy bitmap memory (hr = 0x%x)!", + (uint32_t)hr); + +#ifndef NDEBUG + /*msg_Dbg(vd, "Bitmap dbg: target = %p, pitch = %d, bitmap = %p", + sys->p_d2_render_target, pitch, sys->p_d2_bitmap);*/ +#endif + } +} + +/** + * Blits a scaled picture_t to the render target + */ +static void Display(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_RECT_F rc = { + sys->rect_dest.left, + sys->rect_dest.top, + sys->rect_dest.right, + sys->rect_dest.bottom + }; + + if (sys->p_d2_render_target && sys->p_d2_bitmap) { + ID2D1HwndRenderTarget_BeginDraw(sys->p_d2_render_target); + ID2D1HwndRenderTarget_DrawBitmap(sys->p_d2_render_target, + sys->p_d2_bitmap, &rc, 1.0f, + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, NULL); + ID2D1HwndRenderTarget_EndDraw(sys->p_d2_render_target, NULL, NULL); + } + + picture_Release(picture); + + CommonDisplay(vd); +} + + /** + * Control event handler + */ +static int Control(vout_display_t *vd, int query, va_list args) +{ + return CommonControl(vd, query, args); +} + +/** + * Handles surface management + * ID2D1RenderTargets cannot be resized and must be recreated + */ +static void Manage(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + CommonManage(vd); + + if (sys->changes & DX_POSITION_CHANGE) { + D2D_ResizeRenderTarget(vd); + sys->changes &= ~DX_POSITION_CHANGE; + } +} + +/** + * Resizes a ID2D1HWndRenderTarget + */ +void D2D_ResizeRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + HRESULT hr = ID2D1HwndRenderTarget_Resize(sys->p_d2_render_target, &size); + if(hr != S_OK) { + msg_Err(vd, "Cannot resize render target (width = %d, height = %d, hr = 0x%x)!", + size.width, size.height, (uint32_t)hr); + + D2D_DestroyRenderTarget(vd); + } +} + +/** + * Creates a ID2D1HwndRenderTarget and associated ID2D1Bitmap + */ +void D2D_CreateRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_PIXEL_FORMAT pf = { + DXGI_FORMAT_B8G8R8A8_UNORM, + D2D1_ALPHA_MODE_IGNORE + }; + + D2D1_RENDER_TARGET_PROPERTIES rtp = { + D2D1_RENDER_TARGET_TYPE_DEFAULT, + pf, + 0, + 0, + D2D1_RENDER_TARGET_USAGE_NONE, + D2D1_FEATURE_LEVEL_DEFAULT + }; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + D2D1_HWND_RENDER_TARGET_PROPERTIES hrtp = { + sys->hvideownd, + size, + D2D1_PRESENT_OPTIONS_IMMEDIATELY /* this might need fiddling */ + }; + + HRESULT hr = ID2D1Factory_CreateHwndRenderTarget(sys->p_d2_factory, + &rtp, &hrtp, &sys->p_d2_render_target); + if(hr != S_OK) { + msg_Err(vd, "Cannot create render target (hvideownd = 0x%x, width = %d, height = %d, pf.format = %d, hr = 0x%x)!", + (uint32_t)hrtp.hwnd, hrtp.pixelSize.width, hrtp.pixelSize.height, + pf.format, (uint32_t)hr); + + D2D_DestroyRenderTarget(vd); + } + + ID2D1Factory_GetDesktopDpi(sys->p_d2_factory, &sys->f_d2_dpi_x, + &sys->f_d2_dpi_y); + + D2D1_BITMAP_PROPERTIES bp = { + pf, + sys->f_d2_dpi_x, + sys->f_d2_dpi_y + }; + + D2D1_SIZE_U bitmap_size = { + vd->fmt.i_width, + vd->fmt.i_height + }; + + hr = ID2D1HwndRenderTarget_CreateBitmap(sys->p_d2_render_target, + bitmap_size, NULL, 0, &bp, &sys->p_d2_bitmap); + if (hr != S_OK) { + msg_Err(vd, "Failed to create bitmap (hr = 0x%x)!", (uint32_t)hr); + } + +#ifndef NDEBUG + msg_Dbg(vd, "Render trgt dbg: dpi = %f, render_target = %p, bitmap = %p", + sys->f_d2_dpi_x, sys->p_d2_render_target, sys->p_d2_bitmap); +#endif +} + +/** + * Cleans up ID2D1HwndRenderTarget and ID2D1Bitmap + */ +void D2D_DestroyRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + if(sys->p_d2_render_target) { + ID2D1HwndRenderTarget_Release(sys->p_d2_render_target); + sys->p_d2_render_target = NULL; + } + + if (sys->p_d2_bitmap) { + ID2D1Bitmap_Release(sys->p_d2_bitmap); + sys->p_d2_bitmap = NULL; + } + +#ifndef NDEBUG + msg_Dbg(vd, "Destroyed"); +#endif +} diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c index d2d5e26..46c15c4 100644 --- a/modules/video_output/msw/events.c +++ b/modules/video_output/msw/events.c @@ -49,6 +49,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include #include "common.h" -- 1.7.0.4 From juhovh at iki.fi Thu Jul 22 16:31:55 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Thu, 22 Jul 2010 17:31:55 +0300 Subject: [vlc-devel] [PATCH] Another attempt to make Qt4 interface compile on OS X In-Reply-To: <201007221724.08010.remi@remlab.net> References: <201007221724.08010.remi@remlab.net> Message-ID: On 22.7.2010, at 17.24, R?mi Denis-Courmont wrote: > Le jeudi 22 juillet 2010 15:17:29 Juho V?h?-Herttua, vous avez ?crit : >> I tried to only keep the necessary changes in this patch, I'll try to work >> out other possible issues later. > > Breaks the build on Linux. Nack. Sorry and thanks for testing, I'll fix it when I get to a linux computer to make sure it works on both. I was trying to get rid of Q_WS_MAC definitions and forgot that b_should_run_on_first_thread hack is only defined on Mac and Windows... Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From man40dev at gmail.com Thu Jul 22 16:34:25 2010 From: man40dev at gmail.com (Manol Manolov) Date: Thu, 22 Jul 2010 10:34:25 -0400 Subject: [vlc-devel] Subtitles Rendering Message-ID: <002d01cb29aa$fc89cea0$f59d6be0$@com> Hello There, I've always wondered why nobody takes this player's example for rendering the subtitles http://mv2.czweb.org/ Yes, I know it is an old and dead project. But the idea is great: The subtitles can be rendered in an outer layer instead of inside the video itself. Pros: - Watching different resolution videos on the same screen size won't change the subtitles size (very important). - With the current rendering, if the video has black stripes (non-cropped wider than the screen) the subtitles go way to the center instead of staying in the bottom (very important). - With the current rendering, if one decides to crop the video (during playback) to fit the screen, the subtitles may be cut off (very important). - If a line of subtitles is too long set in the subtitles source, it can be easily wrapped to fit the screen (either new line or decrease the font size on the long line only) (important). - In the MV2 player one can move freely the subtitles with the mouse, also click on + and - buttons to adjust the size (not necessary feature, but eye candy). Cons: - It won't apply for transcoding - in most cases subtitles are applied during playback. Please, share your opinion. P.S.> MV2 Player has and HAD amazing settings and deep customization. Best regards, Manol From remi at remlab.net Thu Jul 22 16:39:49 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Thu, 22 Jul 2010 17:39:49 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Really_che?= =?iso-8859-1?q?ck_if_Qt4_needs_-lX11_=28_R=E9mi_=09Denis-Courmont_=29?= In-Reply-To: <20100721231800.GA19597@videolan.org> References: <20100721185256.EF37910AB90@albiero.videolan.org> <20100721231800.GA19597@videolan.org> Message-ID: <201007221739.49489.remi@remlab.net> Le jeudi 22 juillet 2010 02:18:00 Jean-Baptiste Kempf, vous avez ?crit : > This commits breaks win32 configure Works fine here and on the current buildbot. Tested on a clean config.cache. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Thu Jul 22 16:46:12 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Thu, 22 Jul 2010 17:46:12 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Really_che?= =?iso-8859-1?q?ck_if_Qt4_needs_-lX11_=28_R=E9mi_=09Denis-Courmont_=29?= In-Reply-To: <20100721231800.GA19597@videolan.org> References: <20100721185256.EF37910AB90@albiero.videolan.org> <20100721231800.GA19597@videolan.org> Message-ID: <201007221746.13248.remi@remlab.net> Le jeudi 22 juillet 2010 02:18:00 Jean-Baptiste Kempf, vous avez ?crit : > This commits breaks moc on Linux, Windows and Mac Should be fixed. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From geo.couprie at gmail.com Thu Jul 22 16:51:07 2010 From: geo.couprie at gmail.com (Geoffroy Couprie) Date: Thu, 22 Jul 2010 16:51:07 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <1279808785-10933-1-git-send-email-david@2of1.org> References: <1279808785-10933-1-git-send-email-david@2of1.org> Message-ID: Hello, thank you for your work! On Thu, Jul 22, 2010 at 4:26 PM, David Kaplan wrote: > Adds support for the D2D API on Win7/Vista SP2 with Platform Update > Requires d2d1 contrib headers > --- > > +++ b/modules/video_output/msw/direct2d.c > > + HRESULT hr = _D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, > + (REFIID)&IID_ID2D1Factory, &fo, (void **)&sys->p_d2_factory); > + if (hr != S_OK) { > + if (object->b_force) > + msg_Err(vd, "Cannot create Direct2D factory (hr = 0x%x)!", > + (uint32_t)hr); > Could you make a more explicit error message? Or don't display the hresult in a msg_Err, but in a msg_Dbg. > > +/** > + * Creates a ID2D1HwndRenderTarget and associated ID2D1Bitmap > + */ > +void D2D_CreateRenderTarget(vout_display_t *vd) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + D2D1_PIXEL_FORMAT pf = { > + DXGI_FORMAT_B8G8R8A8_UNORM, > + D2D1_ALPHA_MODE_IGNORE > + }; > + > + D2D1_RENDER_TARGET_PROPERTIES rtp = { > + D2D1_RENDER_TARGET_TYPE_DEFAULT, > + pf, > + 0, > + 0, > + D2D1_RENDER_TARGET_USAGE_NONE, > + D2D1_FEATURE_LEVEL_DEFAULT > + }; > + > + D2D1_SIZE_U size = { > + sys->rect_dest.right - sys->rect_dest.left, > + sys->rect_dest.bottom - sys->rect_dest.top > + }; > + > + D2D1_HWND_RENDER_TARGET_PROPERTIES hrtp = { > + sys->hvideownd, > + size, > + D2D1_PRESENT_OPTIONS_IMMEDIATELY /* this might need fiddling */ > + }; > + > + HRESULT hr = ID2D1Factory_CreateHwndRenderTarget(sys->p_d2_factory, > + &rtp, &hrtp, &sys->p_d2_render_target); > + if(hr != S_OK) { > + msg_Err(vd, "Cannot create render target (hvideownd = 0x%x, width > = %d, height = %d, pf.format = %d, hr = 0x%x)!", > + (uint32_t)hrtp.hwnd, hrtp.pixelSize.width, > hrtp.pixelSize.height, > + pf.format, (uint32_t)hr); > + > + D2D_DestroyRenderTarget(vd); > + } > + > + ID2D1Factory_GetDesktopDpi(sys->p_d2_factory, &sys->f_d2_dpi_x, > + &sys->f_d2_dpi_y); > + > + D2D1_BITMAP_PROPERTIES bp = { > + pf, > + sys->f_d2_dpi_x, > + sys->f_d2_dpi_y > + }; > + > + D2D1_SIZE_U bitmap_size = { > + vd->fmt.i_width, > + vd->fmt.i_height > + }; > + > + hr = ID2D1HwndRenderTarget_CreateBitmap(sys->p_d2_render_target, > + bitmap_size, NULL, 0, &bp, &sys->p_d2_bitmap); > + if (hr != S_OK) { > + msg_Err(vd, "Failed to create bitmap (hr = 0x%x)!", (uint32_t)hr); > + } > + > +#ifndef NDEBUG > + msg_Dbg(vd, "Render trgt dbg: dpi = %f, render_target = %p, bitmap = > %p", > + sys->f_d2_dpi_x, sys->p_d2_render_target, sys->p_d2_bitmap); > +#endif > +} > How is the calling function handling the case where a render target could not be created? Is it crashing? Is it throwing an error because it can't write to the render target? Best regards, Geoffroy -------------- next part -------------- An HTML attachment was scrubbed... URL: From david at 2of1.org Thu Jul 22 17:02:37 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 22 Jul 2010 18:02:37 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1279808785-10933-1-git-send-email-david@2of1.org> Message-ID: On Thu, Jul 22, 2010 at 5:51 PM, Geoffroy Couprie wrote: > + msg_Err(vd, "Cannot create Direct2D factory (hr = 0x%x)!", >> + (uint32_t)hr); >> > > Could you make a more explicit error message? Or don't display the hresult > in a msg_Err, but in a msg_Dbg. > Well it's hard to make more explicit without parsing HRESULT vals (and there's no point in doing this). I can convert to msg_Dbg() but I thought msg_Err() would make more sense because it's a complete fail? Please advise... > > How is the calling function handling the case where a render target could > not be created? Is it crashing? Is it throwing an error because it can't > write to the render target? > It goes to 'error:' which cleans up and returns VLC_EGENERIC But I notice that I'm not handling a failure of D2D_CreateRenderTarget() at all. This I'll fix. -------------- next part -------------- An HTML attachment was scrubbed... URL: From david at 2of1.org Thu Jul 22 17:06:43 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 22 Jul 2010 18:06:43 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1279808785-10933-1-git-send-email-david@2of1.org> Message-ID: On Thu, Jul 22, 2010 at 6:02 PM, David Kaplan wrote: > > How is the calling function handling the case where a render target could >> not be created? Is it crashing? Is it throwing an error because it can't >> write to the render target? >> > > It goes to 'error:' which cleans up and returns VLC_EGENERIC > But I notice that I'm not handling a failure of D2D_CreateRenderTarget() at > all. This I'll fix. > Ahh I thought you were speaking about creating the factory. I'll fix the render target stuff -------------- next part -------------- An HTML attachment was scrubbed... URL: From jb at videolan.org Thu Jul 22 17:17:32 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 17:17:32 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Really_che?= =?iso-8859-1?q?ck_if_Qt4_needs_-lX11_=28_R=E9mi_=3FDenis-Courmont_?= =?iso-8859-1?q?=29?= In-Reply-To: <201007221746.13248.remi@remlab.net> References: <20100721185256.EF37910AB90@albiero.videolan.org> <20100721231800.GA19597@videolan.org> <201007221746.13248.remi@remlab.net> Message-ID: <20100722151732.GA13911@videolan.org> On Thu, Jul 22, 2010 at 05:46:12PM +0300, R?mi Denis-Courmont wrote : > Le jeudi 22 juillet 2010 02:18:00 Jean-Baptiste Kempf, vous avez ?crit : > > This commits breaks moc on Linux, Windows and Mac > > Should be fixed. Yep. thx Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 22 17:32:00 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 17:32:00 +0200 Subject: [vlc-devel] BDA fixes In-Reply-To: <00a101cb2907$d3052230$790f6690$@com> References: <005b01cb2870$29834cb0$7c89e610$@com> <20100721094123.GB21323@videolan.org> <007701cb28cc$b3a84560$1af8d020$@com> <20100721160620.GC1505@videolan.org> <00a101cb2907$d3052230$790f6690$@com> Message-ID: <20100722153200.GA17616@videolan.org> On Wed, Jul 21, 2010 at 03:06:28PM -0400, Manol Manolov wrote : > Do you need anything else in order to commit those? Applied 1 to 5. 6 is rejected because it needs more explanations and discussions Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From fenrir at elivagar.org Thu Jul 22 17:42:34 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 22 Jul 2010 17:42:34 +0200 Subject: [vlc-devel] [vlc-commits] commit: Remove Wrong BDA shortcuts (Manol Manolov ) In-Reply-To: <20100722153059.22EE710B0AB@albiero.videolan.org> References: <20100722153059.22EE710B0AB@albiero.videolan.org> Message-ID: <20100722154234.GA25940@elivagar.org> On Thu, Jul 22, 2010 at 05:30:58PM +0200, git at videolan.org wrote: > vlc | branch: master | Manol Manolov | Wed Jul 21 14:40:49 2010 -0400| [539dfc8477945811d07f59f2252d6454acaddeab] | committer: Jean-Baptiste Kempf > > Remove Wrong BDA shortcuts Then I think the same shorcuts should also be removed from the linux dvb access, otherwise it becomes inconsistant. -- fenrir From jpsaman at gmail.com Thu Jul 22 17:42:31 2010 From: jpsaman at gmail.com (Jean-Paul Saman) Date: Thu, 22 Jul 2010 17:42:31 +0200 Subject: [vlc-devel] [vlc-commits] commit: Remove Wrong BDA shortcuts (Manol Manolov ) In-Reply-To: <20100722154234.GA25940@elivagar.org> References: <20100722153059.22EE710B0AB@albiero.videolan.org> <20100722154234.GA25940@elivagar.org> Message-ID: On Thu, Jul 22, 2010 at 5:42 PM, Laurent Aimar wrote: > On Thu, Jul 22, 2010 at 05:30:58PM +0200, git at videolan.org wrote: >> vlc | branch: master | Manol Manolov | Wed Jul 21 14:40:49 2010 -0400| [539dfc8477945811d07f59f2252d6454acaddeab] | committer: Jean-Baptiste Kempf >> >> Remove Wrong BDA shortcuts > ?Then I think the same shorcuts should also be removed from the linux dvb > access, otherwise it becomes inconsistant. And you need to check if the GUI use only the shortcuts dvb-c, dvb-s or dvb-t. It used to use satellite for that in wxwidget days. gtz Jean-Paul Saman From jb at videolan.org Thu Jul 22 17:43:14 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 17:43:14 +0200 Subject: [vlc-devel] [vlc-commits] commit: Remove Wrong BDA shortcuts (Manol Manolov ) In-Reply-To: <20100722154234.GA25940@elivagar.org> References: <20100722153059.22EE710B0AB@albiero.videolan.org> <20100722154234.GA25940@elivagar.org> Message-ID: <20100722154314.GA19167@videolan.org> On Thu, Jul 22, 2010 at 05:42:34PM +0200, Laurent Aimar wrote : > On Thu, Jul 22, 2010 at 05:30:58PM +0200, git at videolan.org wrote: > > vlc | branch: master | Manol Manolov | Wed Jul 21 14:40:49 2010 -0400| [539dfc8477945811d07f59f2252d6454acaddeab] | committer: Jean-Baptiste Kempf > > > > Remove Wrong BDA shortcuts > Then I think the same shorcuts should also be removed from the linux dvb > access, otherwise it becomes inconsistant. Well, I am just wondering who uses: "qpsk", "satellite", "qam", "cable", "ofdm", "terrestrial", "usdigital"? - "satellite", "terrestrial" seems very long to me to be used in a MRL - "qam" is also used on air, like "cqam" - "ofdm" is a method, not really a MRL selection scheme - "atsc" is used outside the US, and "usdigital" is then weird maybe "cable" could be kept. Opinions? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 22 17:44:08 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 17:44:08 +0200 Subject: [vlc-devel] [vlc-commits] commit: Remove Wrong BDA shortcuts (Manol Manolov ) In-Reply-To: References: <20100722153059.22EE710B0AB@albiero.videolan.org> <20100722154234.GA25940@elivagar.org> Message-ID: <20100722154408.GA20025@videolan.org> On Thu, Jul 22, 2010 at 05:42:31PM +0200, Jean-Paul Saman wrote : > And you need to check if the GUI use only the shortcuts dvb-c, dvb-s > or dvb-t. It used to use satellite for that in wxwidget days. I think the Qt UI is fairly ok on that. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 22 17:48:20 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 17:48:20 +0200 Subject: [vlc-devel] Subtitles Rendering In-Reply-To: <002d01cb29aa$fc89cea0$f59d6be0$@com> References: <002d01cb29aa$fc89cea0$f59d6be0$@com> Message-ID: <20100722154820.GA20847@videolan.org> On Thu, Jul 22, 2010 at 10:34:25AM -0400, Manol Manolov wrote : > I've always wondered why nobody takes this player's example for rendering > the subtitles > http://mv2.czweb.org/ See the Vout Rework of those days... Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From remi at remlab.net Thu Jul 22 17:50:06 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Thu, 22 Jul 2010 18:50:06 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Remove_Wro?= =?iso-8859-1?q?ng_BDA_shortcuts_=28Manol_Manolov_=29?= In-Reply-To: <20100722154314.GA19167@videolan.org> References: <20100722153059.22EE710B0AB@albiero.videolan.org> <20100722154234.GA25940@elivagar.org> <20100722154314.GA19167@videolan.org> Message-ID: <201007221850.06455.remi@remlab.net> Le jeudi 22 juillet 2010 18:43:14 Jean-Baptiste Kempf, vous avez ?crit : > Well, I am just wondering who uses: > "qpsk", "satellite", "qam", "cable", "ofdm", "terrestrial", "usdigital"? > > - "satellite", "terrestrial" seems very long to me to be used in a MRL > - "qam" is also used on air, like "cqam" > - "ofdm" is a method, not really a MRL selection scheme QAM and OFDM are modulations. As you note, QAM is already ambiguous. I guess OFDM may become ambiguous once we get the second generation DVB standards. satellite, terrestrial and cable will become similarly ambiguous. In fact, they already are (DVB? ATSC? DMB? ISDB?) > - "atsc" is used outside the US, and "usdigital" is then weird > > maybe "cable" could be kept. Will we be able to distinguish DVB-C from DVB-C2 automatically? What if it's not DVB? -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Thu Jul 22 17:52:03 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 17:52:03 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <1279808785-10933-1-git-send-email-david@2of1.org> References: <1279808785-10933-1-git-send-email-david@2of1.org> Message-ID: <20100722155203.GB20847@videolan.org> On Thu, Jul 22, 2010 at 05:26:25PM +0300, David Kaplan wrote : > +dnl Windows Direct2D plugin > +dnl > +AC_ARG_ENABLE(direct2d, > + [ --enable-direct2d Win32 Direct2D support (default enabled on Win32)]) > +if test "${enable_direct2d}" != "no"; then > + if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" > + then > + AC_CHECK_HEADERS(d2d1.h, > + [ > + VLC_ADD_PLUGIN([direct2d]) > + VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32]) > + ], [AC_MSG_ERROR([Cannot find Direct2D headers!])] > + ) > + fi > +fi Why not autodected: ie, "if d2d1.h is present enable it, else no" ? > + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 for ID2D1Bitmap */ No other chroma supported than RGB32 ? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 22 17:55:02 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 17:55:02 +0200 Subject: [vlc-devel] DLNA Server Module Placement In-Reply-To: References: <006301cb2836$220689f0$66139dd0$@com> Message-ID: <20100722155502.GA22076@videolan.org> On Wed, Jul 21, 2010 at 09:57:01AM +0200, R?mi Denis-Courmont wrote : > Then it might probably go to modules/control/dlna/ . +1 Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From keith at green-light.ca Tue Jul 20 23:02:09 2010 From: keith at green-light.ca (Keith Page) Date: Tue, 20 Jul 2010 14:02:09 -0700 Subject: [vlc-devel] [Live-devel] Seg Fault on VLC 1.1.0 Ubuntu 10.04 LTS In-Reply-To: References: <4C41E16F.3010608@green-light.ca> Message-ID: <4C460ED1.4000600@green-light.ca> On 18/07/10 6:25 AM, Ross Finlayson wrote: >> I just recompiled the latest stable vlc, x264 from the repo and the >> ffmpeg snapshot. When I shut down the recording of vlc I'm gettting >> segfaults that are tracing back to the live555 lib installed. >> >> http://pastebin.com/YE0b6ftg > > Thanks for the report. Unfortunately it wasn't clear from the report > exactly where the segmentation fault was happening in the > "MediaSubsession::getNormalPlayTime()" function, and an inspection of > the code suggests that this probably should not be happening *unless* > it is being called on a "MediaSubsession" object pointer that has > already been deleted (or is NULL). The fact that this error is > occurring when you shut down VLC adds support to this. > > Therefore, my current suspicion is that the problem is not in our > library, but instead in the VLC code ("modules_demux_live555.cpp") > that is calling our library. I suggest that you contact the VLC > developers (on a VLC mailing list), telling them about your segfault, > and asking them it it's possible that > "tk->sub->getNormalPlayTime(pts)" (in "modules_demux_live555.cpp") > could be getting called on after "tk->sub" has already been deleted. -- Green-Light Communications; Move Forward Green-Light Communications; Move Forward Keith Page, Chief Information Officer Phone: (403) 668-9184 Support Email: helpdesk at green-light.ca 911 Support: 911.support at green-light.ca Hours of Operation: 8am - 6pm -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: image/gif Size: 2257 bytes Desc: not available URL: From ed at boxpopu.li Wed Jul 21 20:46:50 2010 From: ed at boxpopu.li (Ed Groth) Date: Wed, 21 Jul 2010 11:46:50 -0700 Subject: [vlc-devel] [vlc-commits] commit: Force avcodec to be at least 52.25.0 and avfomat 52.30.0... ( Jean-Baptiste Kempf ) In-Reply-To: <20100721162013.GB4541@videolan.org> References: <20100720223224.8D80610A86D@albiero.videolan.org> <201007211814.32674.remi@remlab.net> <20100721162013.GB4541@videolan.org> Message-ID: Newbie question. I've compiled a newer version of ffmpeg to use with vlc, installed into /usr/local/ffmpeg. How do I tell vlc build process where to find it? Ed On Wed, Jul 21, 2010 at 9:20 AM, Jean-Baptiste Kempf wrote: > On Wed, Jul 21, 2010 at 06:14:32PM +0300, R?mi Denis-Courmont wrote : >> Le mercredi 21 juillet 2010 01:32:24 git at videolan.org, vous avez ?crit : >> > vlc | branch: master | Jean-Baptiste Kempf | Wed Jul 21 >> > 00:18:51 2010 +0200| [88041dfe447b0239779f0af66e212e04a1d14da8] | >> > committer: Jean-Baptiste Kempf >> > >> > Force avcodec to be at least 52.25.0 and avfomat 52.30.0... >> > >> > They are more than 1 year old... >> >> You broke Debian builds. > > Feel free to revert. > > Though, I believe that having a more than year old libavcodec for a > media player is quite annoying... > > Moreover, this blocks us from moving to the new decode functions... > > Best Regards, > > -- > Jean-Baptiste Kempf > http://www.jbkempf.com/ > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > From jb at videolan.org Thu Jul 22 18:20:00 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 18:20:00 +0200 Subject: [vlc-devel] [vlc-commits] commit: Force avcodec to be at least 52.25.0 and avfomat 52.30.0... ( Jean-Baptiste Kempf ) In-Reply-To: References: <20100720223224.8D80610A86D@albiero.videolan.org> <201007211814.32674.remi@remlab.net> <20100721162013.GB4541@videolan.org> Message-ID: <20100722162000.GC26771@videolan.org> On Wed, Jul 21, 2010 at 11:46:50AM -0700, Ed Groth wrote : > I've compiled a newer version of ffmpeg to use with vlc, installed > into /usr/local/ffmpeg. > > How do I tell vlc build process where to find it? PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig/ ./configure... - Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From david at 2of1.org Thu Jul 22 18:24:03 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 22 Jul 2010 19:24:03 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100722155203.GB20847@videolan.org> References: <1279808785-10933-1-git-send-email-david@2of1.org> <20100722155203.GB20847@videolan.org> Message-ID: On Thu, Jul 22, 2010 at 6:52 PM, Jean-Baptiste Kempf wrote: > Why not autodected: ie, "if d2d1.h is present enable it, else no" ? > Makes sense. I'll do that. > No other chroma supported than RGB32 ? > > No other useful ones unfortunately. I'm actually taking this issue up with Microsoft directly soon. There also doesn't seem to be any way - implicit or explicit - to perform YUV->RGB/BGR on the GPU with the D2D API. There are a number of workarounds I can think of (e.g. D3D shader interop) but I want to play around with that only after the initial Direct2D vout is committed. I'm also hoping that this will be addressed in the next version of the API (keep in mind the Direct2D APIs are brand new). Obviously using DirectCompute is the way to do this - but that's not relevant in this area of code (I believe there's a GSoC project doing this? How's that going?) -------------- next part -------------- An HTML attachment was scrubbed... URL: From greg at chown.ath.cx Thu Jul 22 18:29:33 2010 From: greg at chown.ath.cx (Grigori Goronzy) Date: Thu, 22 Jul 2010 18:29:33 +0200 Subject: [vlc-devel] Subtitles Rendering In-Reply-To: <20100722154820.GA20847@videolan.org> References: <002d01cb29aa$fc89cea0$f59d6be0$@com> <20100722154820.GA20847@videolan.org> Message-ID: <4C4871ED.5070207@chown.ath.cx> On 07/22/2010 05:48 PM, Jean-Baptiste Kempf wrote: >> http://mv2.czweb.org/ > > See the Vout Rework of those days... > i.e. #29? This bug seems dead, so what is really planned? IMO it would make sense to pull SPU rendering as much as possible into vouts, as blending can be nicely accelerated on GPUs. Grigori From jb at videolan.org Thu Jul 22 18:35:37 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 22 Jul 2010 18:35:37 +0200 Subject: [vlc-devel] Subtitles Rendering In-Reply-To: <4C4871ED.5070207@chown.ath.cx> References: <002d01cb29aa$fc89cea0$f59d6be0$@com> <20100722154820.GA20847@videolan.org> <4C4871ED.5070207@chown.ath.cx> Message-ID: <20100722163537.GA29733@videolan.org> On Thu, Jul 22, 2010 at 06:29:33PM +0200, Grigori Goronzy wrote : > This bug seems dead, so what is really planned? > IMO it would make sense to pull SPU rendering as much as possible into > vouts, as blending can be nicely accelerated on GPUs. As you might have seen, most of the video output core and most video outputs code has been rewritten in 1.1 and the code is going on in 1.2-git, made by our "Grand Master Jedi" fenrir. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From david at 2of1.org Thu Jul 22 20:22:39 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 22 Jul 2010 21:22:39 +0300 Subject: [vlc-devel] [vlc-commits] commit: Remove Wrong BDA shortcuts (Manol Manolov ) In-Reply-To: <201007221850.06455.remi@remlab.net> References: <20100722153059.22EE710B0AB@albiero.videolan.org> <20100722154234.GA25940@elivagar.org> <20100722154314.GA19167@videolan.org> <201007221850.06455.remi@remlab.net> Message-ID: 2010/7/22 R?mi Denis-Courmont > > Will we be able to distinguish DVB-C from DVB-C2 automatically? > There should be no problem with this as I believe it's handled on the driver level (I could be wrong though)? At least that's my understanding from my limited dvb api experience... -------------- next part -------------- An HTML attachment was scrubbed... URL: From fenrir at elivagar.org Thu Jul 22 21:07:57 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 22 Jul 2010 21:07:57 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <1279808785-10933-1-git-send-email-david@2of1.org> References: <1279808785-10933-1-git-send-email-david@2of1.org> Message-ID: <20100722190757.GA2370@elivagar.org> Hi, On Thu, Jul 22, 2010 at 05:26:25PM +0300, David Kaplan wrote: > diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h > index e023ef4..db6a2d8 100644 > --- a/modules/video_output/msw/common.h > +++ b/modules/video_output/msw/common.h > @@ -157,6 +157,15 @@ struct vout_display_sys_t > vout_display_opengl_t vgl; > #endif > > +#ifdef MODULE_NAME_IS_direct2d > + HINSTANCE h_d2_dll; /* handle of the opened d3d9 dll */ > + FLOAT f_d2_dpi_x; /* DPI x */ > + FLOAT f_d2_dpi_y; /* DPI y */ > + ID2D1Factory *p_d2_factory; /* D2D factory */ > + ID2D1HwndRenderTarget *p_d2_render_target; /* D2D rendering target */ > + ID2D1Bitmap *p_d2_bitmap; /* D2 bitmap */ No need for the p_/f_/h_ prefix. I plan to remove the remaining ones from msw vouts someday. > +#define GUID_EXT > +DEFINE_GUID(IID_ID2D1Factory, 102048327, 28496, 18010, 146, 69, 17, 139, 253, 59, 96, 7); Using hexa seems to be far more common (unless msdn used decimal here?). > +void D2D_CreateRenderTarget(vout_display_t *vd); > +void D2D_ResizeRenderTarget(vout_display_t *vd); > +void D2D_DestroyRenderTarget(vout_display_t *vd); If they are local functions, using static is better. You could also not use the D2D_ prefix. > +/** > + * Initialises Direct2D vout module > + */ > +static int Open(vlc_object_t *object) > +{ > + vout_display_t *vd = (vout_display_t *)object; > + vout_display_sys_t *sys; > + > + vd->sys = sys = calloc(1, sizeof(*sys)); > + if (!sys) > + return VLC_ENOMEM; > + > + if (CommonInit(vd)) > + goto error; I think that calling CommonInit after having loaded the dll and retreived the function D2D1CreateFactory is better. It's probably the easiest way to avoid too much initialization in case of failures. > + sys->h_d2_dll = LoadLibrary(TEXT("D2D1.DLL")); > + if (!sys->h_d2_dll) { > + if (object->b_force) > + msg_Err(vd, "Cannot load D2D1.DLL, aborting"); > + goto error; > + } > + > + D2D1_FACTORY_OPTIONS fo = { > + D2D1_DEBUG_LEVEL_NONE > + }; > + > + HRESULT (WINAPI *_D2D1CreateFactory)( D2D1_FACTORY_TYPE, REFIID, > + const D2D1_FACTORY_OPTIONS *, void ** ); > + > + _D2D1CreateFactory = (void *)GetProcAddress(sys->h_d2_dll, > + TEXT("D2D1CreateFactory")); Vertical alignements for function arguments is way easier to read. It applies to the whole file. Something like _D2D1CreateFactory = (void *)GetProcAddress(sys->h_d2_dll, TEXT("D2D1CreateFactory")); (if you use a fixed font for mails). Also, avoiding using _ prefix is prefered. > + if (!_D2D1CreateFactory) { > + if (object->b_force) > + msg_Err(vd, > + "Cannot locate reference to a D2D1CreateFactory ABI in D2D1.DLL"); Dunno if the check on b_force is actually needed here, a d2d1.dll without this function is probably broken, and so warning about it doesn't seem to be a bad idea to me. > + goto error; > + } > + > +#ifndef NDEBUG > + msg_Dbg(vd, "D2D1.DLL loaded"); > +#endif > + > + HRESULT hr = _D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, > + (REFIID)&IID_ID2D1Factory, &fo, (void **)&sys->p_d2_factory); > + if (hr != S_OK) { > + if (object->b_force) > + msg_Err(vd, "Cannot create Direct2D factory (hr = 0x%x)!", > + (uint32_t)hr); I think here, not checking on b_force would be better, otherwise there is no way to know why the loading failed. > + goto error; > + } > + > + sys->p_d2_render_target = NULL; It would be better to move that line before any goto. > + D2D_CreateRenderTarget(vd); Shouldn't you check that it succeeds (the vout is unusable if not) ? > + vout_display_info_t info = vd->info; > + info.is_slow = false; > + info.has_double_click = true; > + info.has_hide_mouse = true; > + info.has_pictures_invalid = true; > + vd->info = info; > + > + RECT rc; > + GetClientRect(sys->hvideownd, &rc); > + D2D1_SIZE_U size = { > + rc.right - rc.left, > + rc.bottom - rc.top > + }; > + > + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 for ID2D1Bitmap */ > + vd->fmt.i_rmask = 0x000000ff; > + vd->fmt.i_gmask = 0x0000ff00; > + vd->fmt.i_bmask = 0x00000000; /* todo - fix this (should be 0x00ff0000) */ > + vd->fmt.i_width = size.width; > + vd->fmt.i_height = size.height; D2D does not resize itself ? If it does, then you should not change the width/height of vd->fmt. > + vd->pool = Pool; > + vd->prepare = Prepare; > + vd->display = Display; > + vd->manage = Manage; > + vd->control = Control; > + > + EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct2D output)"); > + > +#ifndef NDEBUG > + msg_Dbg(vd, "Ready"); > +#endif > + > + return VLC_SUCCESS; > + > +error: > + Close(VLC_OBJECT(vd)); > + return VLC_EGENERIC; > +} > +/** > + * Performs set up of ID2D1Bitmap memory ready for blitting > + */ > +static void Prepare(vout_display_t *vd, picture_t *picture) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + if (sys->p_d2_render_target && sys->p_d2_bitmap) > + { > + UINT32 pitch = vd->fmt.i_width * 4; If pitch is the size in bytes of a line in picture->p[0].p_pixels, then you must use picture->p[0].i_pitch which may not be equal to vd->fmt.i_width * 4. (It may be higher). > + HRESULT hr = ID2D1Bitmap_CopyFromMemory(sys->p_d2_bitmap, NULL, > + picture->p[0].p_pixels, pitch); > + if( hr != S_OK ) > + msg_Err(vd, "Failed to copy bitmap memory (hr = 0x%x)!", > + (uint32_t)hr); %x takes an unsigned as argument, so (unsigned)hr should be used. > +#ifndef NDEBUG > + /*msg_Dbg(vd, "Bitmap dbg: target = %p, pitch = %d, bitmap = %p", > + sys->p_d2_render_target, pitch, sys->p_d2_bitmap);*/ > +#endif > + } > +} > + > +/** > + * Blits a scaled picture_t to the render target > + */ > +static void Display(vout_display_t *vd, picture_t *picture) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + D2D1_RECT_F rc = { > + sys->rect_dest.left, > + sys->rect_dest.top, > + sys->rect_dest.right, > + sys->rect_dest.bottom > + }; > + > + if (sys->p_d2_render_target && sys->p_d2_bitmap) { > + ID2D1HwndRenderTarget_BeginDraw(sys->p_d2_render_target); > + ID2D1HwndRenderTarget_DrawBitmap(sys->p_d2_render_target, > + sys->p_d2_bitmap, &rc, 1.0f, > + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, NULL); Just for information, what are the available interpolation modes? > + ID2D1HwndRenderTarget_EndDraw(sys->p_d2_render_target, NULL, NULL); > + } > + > + picture_Release(picture); > + > + CommonDisplay(vd); > +} > + > +/** > + * Resizes a ID2D1HWndRenderTarget > + */ > +void D2D_ResizeRenderTarget(vout_display_t *vd) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + D2D1_SIZE_U size = { > + sys->rect_dest.right - sys->rect_dest.left, > + sys->rect_dest.bottom - sys->rect_dest.top > + }; > + > + HRESULT hr = ID2D1HwndRenderTarget_Resize(sys->p_d2_render_target, &size); > + if(hr != S_OK) { > + msg_Err(vd, "Cannot resize render target (width = %d, height = %d, hr = 0x%x)!", > + size.width, size.height, (uint32_t)hr); > + > + D2D_DestroyRenderTarget(vd); Is it really needed? What happens when ID2D1HwndRenderTarget_Resize fails? Are the target/bitmap unusable? Are they still usables but aren't resized? If there are still usable, then I think it will simplify the code to ignore the error and will at least allows to continue displaying video. > + } > +} > +/** > + * Creates a ID2D1HwndRenderTarget and associated ID2D1Bitmap > + */ > +void D2D_CreateRenderTarget(vout_display_t *vd) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + D2D1_PIXEL_FORMAT pf = { > + DXGI_FORMAT_B8G8R8A8_UNORM, > + D2D1_ALPHA_MODE_IGNORE > + }; > + > + D2D1_RENDER_TARGET_PROPERTIES rtp = { > + D2D1_RENDER_TARGET_TYPE_DEFAULT, > + pf, > + 0, > + 0, > + D2D1_RENDER_TARGET_USAGE_NONE, > + D2D1_FEATURE_LEVEL_DEFAULT > + }; > + > + D2D1_SIZE_U size = { > + sys->rect_dest.right - sys->rect_dest.left, > + sys->rect_dest.bottom - sys->rect_dest.top > + }; > + > + D2D1_HWND_RENDER_TARGET_PROPERTIES hrtp = { > + sys->hvideownd, > + size, > + D2D1_PRESENT_OPTIONS_IMMEDIATELY /* this might need fiddling */ > + }; > + > + HRESULT hr = ID2D1Factory_CreateHwndRenderTarget(sys->p_d2_factory, > + &rtp, &hrtp, &sys->p_d2_render_target); > + if(hr != S_OK) { > + msg_Err(vd, "Cannot create render target (hvideownd = 0x%x, width = %d, height = %d, pf.format = %d, hr = 0x%x)!", > + (uint32_t)hrtp.hwnd, hrtp.pixelSize.width, hrtp.pixelSize.height, > + pf.format, (uint32_t)hr); > + > + D2D_DestroyRenderTarget(vd); You can just returns from here, there is nothing to destroy. Besides, if you don't I fear that trying to create the bitmap will segfault (p_d2_render_target is NULL). > + } > + > + ID2D1Factory_GetDesktopDpi(sys->p_d2_factory, &sys->f_d2_dpi_x, > + &sys->f_d2_dpi_y); > + > + D2D1_BITMAP_PROPERTIES bp = { > + pf, > + sys->f_d2_dpi_x, > + sys->f_d2_dpi_y > + }; > + > + D2D1_SIZE_U bitmap_size = { > + vd->fmt.i_width, > + vd->fmt.i_height > + }; > + > + hr = ID2D1HwndRenderTarget_CreateBitmap(sys->p_d2_render_target, > + bitmap_size, NULL, 0, &bp, &sys->p_d2_bitmap); > + if (hr != S_OK) { > + msg_Err(vd, "Failed to create bitmap (hr = 0x%x)!", (uint32_t)hr); > + } > + > +#ifndef NDEBUG > + msg_Dbg(vd, "Render trgt dbg: dpi = %f, render_target = %p, bitmap = %p", > + sys->f_d2_dpi_x, sys->p_d2_render_target, sys->p_d2_bitmap); > +#endif > +} Are you sure that when ID2D1Factory_CreateHwndRenderTarget or ID2D1HwndRenderTarget_CreateBitmap fails, they don't set an unspecified value in the pointer argument? If you don't know, it is safer to set them to NULL. Regards, -- fenrir From fenrir at elivagar.org Thu Jul 22 21:11:58 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 22 Jul 2010 21:11:58 +0200 Subject: [vlc-devel] Subtitles Rendering In-Reply-To: <4C4871ED.5070207@chown.ath.cx> References: <002d01cb29aa$fc89cea0$f59d6be0$@com> <20100722154820.GA20847@videolan.org> <4C4871ED.5070207@chown.ath.cx> Message-ID: <20100722191158.GA4266@elivagar.org> On Thu, Jul 22, 2010 at 06:29:33PM +0200, Grigori Goronzy wrote: > On 07/22/2010 05:48 PM, Jean-Baptiste Kempf wrote: > >> http://mv2.czweb.org/ > > > > See the Vout Rework of those days... > > > > i.e. #29? > This bug seems dead, so what is really planned? > IMO it would make sense to pull SPU rendering as much as possible into > vouts, as blending can be nicely accelerated on GPUs. It's the plan, but there are still some works on the vout needed for that to happen. -- fenrir From david at 2of1.org Thu Jul 22 21:20:01 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 22 Jul 2010 22:20:01 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100722190757.GA2370@elivagar.org> References: <1279808785-10933-1-git-send-email-david@2of1.org> <20100722190757.GA2370@elivagar.org> Message-ID: On Thu, Jul 22, 2010 at 10:07 PM, Laurent Aimar wrote: > If pitch is the size in bytes of a line in picture->p[0].p_pixels, then > you > must use picture->p[0].i_pitch which may not be equal to > vd->fmt.i_width * 4. (It may be higher). > If ii_pitch isn't equal to width*4 then how can I use it? D2D expects pitch (line byte size) to match the pixel format...? Is there something I'm missing here? Just for information, what are the available interpolation modes? > Linear and nearest neighbor. Which do you think is the better choice? Thanks for the rest of the comments as well. Will implement in the next patch. -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Thu Jul 22 21:38:54 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Thu, 22 Jul 2010 22:38:54 +0300 Subject: [vlc-devel] [Live-devel] Seg Fault on VLC 1.1.0 Ubuntu 10.04 LTS In-Reply-To: <4C460ED1.4000600@green-light.ca> References: <4C41E16F.3010608@green-light.ca> <4C460ED1.4000600@green-light.ca> Message-ID: <201007222238.55104.remi@remlab.net> Le mercredi 21 juillet 2010 00:02:09 Keith Page, vous avez ?crit : > On 18/07/10 6:25 AM, Ross Finlayson wrote: > >> I just recompiled the latest stable vlc, x264 from the repo and the > >> ffmpeg snapshot. When I shut down the recording of vlc I'm gettting > >> segfaults that are tracing back to the live555 lib installed. > >> > >> http://pastebin.com/YE0b6ftg This is not terribly useful without the debug symbols for VLC. Bug analysis would probably be easier with valgrind than gdb. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From fenrir at elivagar.org Thu Jul 22 22:09:09 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 22 Jul 2010 22:09:09 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1279808785-10933-1-git-send-email-david@2of1.org> <20100722190757.GA2370@elivagar.org> Message-ID: <20100722200909.GA5008@elivagar.org> On Thu, Jul 22, 2010 at 10:20:01PM +0300, David Kaplan wrote: > On Thu, Jul 22, 2010 at 10:07 PM, Laurent Aimar wrote: > > ?If pitch is the size in bytes of a line in picture->p[0].p_pixels, then > you > must use picture->p[0].i_pitch which may not be equal to > vd->fmt.i_width * 4. (It may be higher). > > ? > If ii_pitch isn't equal to width*4 then how can I use it? D2D expects pitch > (line byte size) to match the pixel format...? > Is there something I'm missing here? picture_pool_NewFromFormat creates pictures using picture_New(). picture_New() will allocates pictures with suitable width/height/pitch so that they works nicely with MMX/SSEx. If you have specific constraints about the pitch, you will have to use picture_pool_New() and picture_NewFromResource() where you can provides the memory/pitches to use. Do the D2D API allows to only copy/display part of a picture? > ?Just for information, what are the available interpolation modes? > > > Linear and nearest neighbor. Which do you think is the better choice? Linear. From fatbull at web.de Thu Jul 22 22:15:27 2010 From: fatbull at web.de (=?ISO-8859-15?Q?Tobias_G=FCntner?=) Date: Thu, 22 Jul 2010 22:15:27 +0200 Subject: [vlc-devel] [PATCH] Added support for VDR recordings. In-Reply-To: <20100720203319.GA5659@videolan.org> References: <4BC0CEA6.8090501@web.de> <4BC9B42A.7030607@web.de> <20100508200957.GA19075@elivagar.org> <4BE5F298.7060409@web.de> <4C4596A2.6060408@users.sourceforge.net> <20100720123735.GA13760@videolan.org> <4C45F4D3.9040103@web.de> <20100720203319.GA5659@videolan.org> Message-ID: <4C48A6DF.1040508@web.de> Am 20.07.2010 22:33, schrieb Jean-Baptiste Kempf: >> Not forgotten. I just have problems setting up and *keeping* a usable >> build environment, ranging from outdated packages and unreachable >> servers to crashes and corrupted repositories. What should be an easy >> fix turns out to be a nerve-wracking adventure. Sigh. > > Do you need help? Thanks, but that might not be necessary any more. I set up an Ubuntu VM and now use that to (cross-)compile VLC. Compilation takes a lot longer, but at least it *works*. I will post a revised patch soon. Regards, Tobias From david at 2of1.org Thu Jul 22 22:17:02 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 22 Jul 2010 23:17:02 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100722200909.GA5008@elivagar.org> References: <1279808785-10933-1-git-send-email-david@2of1.org> <20100722190757.GA2370@elivagar.org> <20100722200909.GA5008@elivagar.org> Message-ID: On Thu, Jul 22, 2010 at 11:09 PM, Laurent Aimar wrote: > picture_pool_NewFromFormat creates pictures using picture_New(). > picture_New() will allocates pictures with suitable width/height/pitch so > that > they works nicely with MMX/SSEx. > If you have specific constraints about the pitch, you will have to use > picture_pool_New() and picture_NewFromResource() where you can provides the > memory/pitches to use. > Oh I see. So as long as the fmt is correct, _NewFromFormat() should provide pictures with the correct pitch? I definately had some sort of issue with this when i was developing the patch (hence the *4 thingy) but le tme try again. > Do the D2D API allows to only copy/display part of a picture? > I believe we can do anything we want here (part/full/etc.). Why? -------------- next part -------------- An HTML attachment was scrubbed... URL: From fenrir at elivagar.org Thu Jul 22 22:26:30 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 22 Jul 2010 22:26:30 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1279808785-10933-1-git-send-email-david@2of1.org> <20100722190757.GA2370@elivagar.org> <20100722200909.GA5008@elivagar.org> Message-ID: <20100722202630.GA7903@elivagar.org> On Thu, Jul 22, 2010 at 11:17:02PM +0300, David Kaplan wrote: > > On Thu, Jul 22, 2010 at 11:09 PM, Laurent Aimar wrote: > > ?picture_pool_NewFromFormat creates pictures using picture_New(). > picture_New() will allocates pictures with suitable width/height/pitch so > that > they works nicely with MMX/SSEx. > ?If you have specific constraints about the pitch, you will have to use > picture_pool_New() and picture_NewFromResource() where you can provides the > memory/pitches to use. > > > Oh I see. So as long as the fmt is correct, _NewFromFormat() should provide > pictures with the correct pitch? > I definately had some sort of issue with this when i was developing the patch > (hence the *4 thingy) but le tme try again. > ? > > ?Do the D2D API allows to only copy/display part of a picture? > > > I believe we can do anything we want here (part/full/etc.). Why? Because, you need to do it when calling ID2D1HwndRenderTarget_DrawBitmap (not sure it's the right place) using rect_src_clipped. Otherwise the cropping won't work. Also, it means you can simply declare a picture of width equals to picture->p[0].i_pitch/4 for the above issue but copy only the real size. -- fenrir From david at 2of1.org Thu Jul 22 22:37:15 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 22 Jul 2010 23:37:15 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100722202630.GA7903@elivagar.org> References: <1279808785-10933-1-git-send-email-david@2of1.org> <20100722190757.GA2370@elivagar.org> <20100722200909.GA5008@elivagar.org> <20100722202630.GA7903@elivagar.org> Message-ID: On Thu, Jul 22, 2010 at 11:26 PM, Laurent Aimar wrote: > > Because, you need to do it when calling ID2D1HwndRenderTarget_DrawBitmap > (not sure it's the right place) using rect_src_clipped. Otherwise the > cropping won't work. Also, it means you can simply declare a picture of > width equals to picture->p[0].i_pitch/4 for the above issue but copy only > the real size. > Ok I need to play around with this. What's the best way to test the cropping? -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Thu Jul 22 22:40:03 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Thu, 22 Jul 2010 23:40:03 +0300 Subject: [vlc-devel] [RFC] v4l(1) removal Message-ID: <201007222340.03295.remi@remlab.net> Hello, V4L version 1 is not supported upstream Linux anymore, and has been superseded by V4L2 for a long time. Unless anyone provides a good reason to keep it, I suggest we remove it from VLC 1.2.x. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From fenrir at elivagar.org Thu Jul 22 22:59:04 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 22 Jul 2010 22:59:04 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1279808785-10933-1-git-send-email-david@2of1.org> <20100722190757.GA2370@elivagar.org> <20100722200909.GA5008@elivagar.org> <20100722202630.GA7903@elivagar.org> Message-ID: <20100722205904.GA9613@elivagar.org> On Thu, Jul 22, 2010 at 11:37:15PM +0300, David Kaplan wrote: > > > On Thu, Jul 22, 2010 at 11:26 PM, Laurent Aimar wrote: > > > ?Because, you need to do it when calling ID2D1HwndRenderTarget_DrawBitmap > (not sure it's the right place) using rect_src_clipped. Otherwise the > cropping won't work. Also, it means you can simply declare a picture of > width equals to picture->p[0].i_pitch/4 for the above issue but copy only > the real size. > > > Ok I need to play around with this. What's the best way to test the cropping? Video->Crop->.... and compare with the d3d video output for example. -- fenrir From beauze.h at gmail.com Fri Jul 23 00:31:30 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Fri, 23 Jul 2010 00:31:30 +0200 Subject: [vlc-devel] [Patch 1/3] avcodec: Allow usage of VLC_CODEC_RGBA Message-ID: Hi, Right now, VLC_CODEC_RGBA is disabled by : #if defined(PIX_FMT_RGBA) Though, PIX_FMT_RGBA appears to be an enum member, not a define, and thus is never defined to the preprocessor. -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-avcodec-Allow-usage-of-VLC_CODEC_RGBA.patch Type: text/x-patch Size: 1001 bytes Desc: not available URL: From beauze.h at gmail.com Fri Jul 23 00:32:39 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Fri, 23 Jul 2010 00:32:39 +0200 Subject: [vlc-devel] [Patch 2/3] Smem: Allow usage of RGBA Message-ID: Hi, The smem module states that it only handle raw format, but refuses to load RGBA. This patch corrects it. -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-smem-Allow-usage-of-RGBA.patch Type: text/x-patch Size: 774 bytes Desc: not available URL: From beauze.h at gmail.com Fri Jul 23 00:35:28 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Fri, 23 Jul 2010 00:35:28 +0200 Subject: [vlc-devel] [Patch 3/3] avcodec: Don't assume a maximum bpp of 24 Message-ID: Hi, When transcoding using the avcodec encoder, it currently assumes a maximum bpp of 24, which will obviously make vlc crashe when using a 32bpp format. I assumed the bit_per_pixel field could be 0, though i'm not sure this is really useful. Regards, -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0004-avcodec-encoder-Don-t-assume-a-maximum-BPP-of-24.patch Type: text/x-patch Size: 2152 bytes Desc: not available URL: From jb at videolan.org Fri Jul 23 01:26:34 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Fri, 23 Jul 2010 01:26:34 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Win32=3A_u?= =?iso-8859-1?q?se_Unicode_output_for_the_console_=28fixes_=233125?= =?iso-8859-1?q?=29_=28_R=E9mi_Denis-Courmont_=29?= In-Reply-To: <20100722173516.6C70910B1C1@albiero.videolan.org> References: <20100722173516.6C70910B1C1@albiero.videolan.org> Message-ID: <20100722232634.GA10079@videolan.org> On Thu, Jul 22, 2010 at 07:35:16PM +0200, git at videolan.org wrote : > vlc | branch: master | R?mi Denis-Courmont | Thu Jul 22 20:34:39 2010 +0300| [2b67ce72a9cbf2279bf8f6f769984aca968fe1f6] | committer: R?mi Denis-Courmont > > Win32: use Unicode output for the console (fixes #3125) > > > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2b67ce72a9cbf2279bf8f6f769984aca968fe1f6 > --- > > src/text/unicode.c | 41 +++++++++++++++++++++++++++++++++++++++-- > 1 files changed, 39 insertions(+), 2 deletions(-) > > diff --git a/src/text/unicode.c b/src/text/unicode.c > index bb1ec6b..6639328 100644 > --- a/src/text/unicode.c > +++ b/src/text/unicode.c > @@ -223,8 +223,45 @@ static int utf8_vasprintf( char **str, const char *fmt, va_list ap ) > int utf8_vfprintf( FILE *stream, const char *fmt, va_list ap ) > { > char *str; > - int res = utf8_vasprintf( &str, fmt, ap ); > - if( res == -1 ) > + int res; > + > +#ifdef WIN32 Maybe we should add a && !defined (UNDER_CE ) because this breaks WinCE and I doubt WinCE has a console. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From gregmarine at iccnet.org Fri Jul 23 05:34:42 2010 From: gregmarine at iccnet.org (Greg Marine) Date: Thu, 22 Jul 2010 23:34:42 -0400 Subject: [vlc-devel] wxPython VLC Widget Message-ID: Greetings, Is there still an interest in an example player similar to vlcwidget.py but for wxPython? I'm currently working on a production ready widget now. I could work on a more simple example along side my current work. I can just hand off the source to VideoLan to be licensed anyway needed. All of my code on this project is open source anyway. Since I rely on examples such as vlcwidget.py every day, I would love to share what little I know for others looking for a solution such as this. Just let me know! Thanks, Greg -------------- next part -------------- An HTML attachment was scrubbed... URL: From david at 2of1.org Fri Jul 23 07:57:01 2010 From: david at 2of1.org (David Kaplan) Date: Fri, 23 Jul 2010 08:57:01 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100722202630.GA7903@elivagar.org> References: <1279808785-10933-1-git-send-email-david@2of1.org> <20100722190757.GA2370@elivagar.org> <20100722200909.GA5008@elivagar.org> <20100722202630.GA7903@elivagar.org> Message-ID: On Thu, Jul 22, 2010 at 11:26 PM, Laurent Aimar wrote: > Because, you need to do it when calling ID2D1HwndRenderTarget_DrawBitmap > (not sure it's the right place) using rect_src_clipped. I've done this when I copy the picture into the bitmap. > Also, it means you can simply declare a picture of > width equals to picture->p[0].i_pitch/4 for the above issue but copy only > the real size. > Well I can't create a bitmap with width = picture->p[0].i_pitch/4 really because at the point where I create the bitmap, there is no picture. Reallocating bitmap resources is extremely expensive (that's why it's only done once and memory is copied into it). The only way I can see is the have a bitmap with width = fmt->width because that doesn't change and is available at the time we need it. -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Fri Jul 23 09:23:34 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Fri, 23 Jul 2010 09:23:34 +0200 Subject: [vlc-devel] =?utf-8?q?=5Bvlc-commits=5D_commit=3A_Win32=3A_use_Un?= =?utf-8?q?icode_output_for_the_console_=28fixes_=233125=29_=28_R=C3=A9mi_?= =?utf-8?q?Denis-Courmont_=29?= In-Reply-To: <20100722232634.GA10079@videolan.org> References: <20100722173516.6C70910B1C1@albiero.videolan.org> <20100722232634.GA10079@videolan.org> Message-ID: On Fri, 23 Jul 2010 01:26:34 +0200, Jean-Baptiste Kempf wrote: >> +#ifdef WIN32 > > Maybe we should add a && !defined (UNDER_CE ) because this breaks WinCE > and I doubt WinCE has a console. I don't know (and I don't really care). -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From david at 2of1.org Fri Jul 23 09:39:48 2010 From: david at 2of1.org (David Kaplan) Date: Fri, 23 Jul 2010 10:39:48 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1279808785-10933-1-git-send-email-david@2of1.org> <20100722190757.GA2370@elivagar.org> <20100722200909.GA5008@elivagar.org> <20100722202630.GA7903@elivagar.org> Message-ID: > > On Thu, Jul 22, 2010 at 11:26 PM, Laurent Aimar wrote: > >> Because, you need to do it when calling ID2D1HwndRenderTarget_DrawBitmap >> (not sure it's the right place) using rect_src_clipped. > > > This is ineffectual actually. The crop works just fine without it. -- http://blog.2of1.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpsaman at videolan.org Fri Jul 23 09:44:56 2010 From: jpsaman at videolan.org (Jean-Paul Saman) Date: Fri, 23 Jul 2010 09:44:56 +0200 Subject: [vlc-devel] [vlc-commits] commit: Remove Wrong BDA shortcuts (Manol Manolov ) In-Reply-To: <20100722154314.GA19167@videolan.org> References: <20100722153059.22EE710B0AB@albiero.videolan.org> <20100722154234.GA25940@elivagar.org> <20100722154314.GA19167@videolan.org> Message-ID: On Thu, Jul 22, 2010 at 5:43 PM, Jean-Baptiste Kempf wrote: > On Thu, Jul 22, 2010 at 05:42:34PM +0200, Laurent Aimar wrote : >> On Thu, Jul 22, 2010 at 05:30:58PM +0200, git at videolan.org wrote: >> > vlc | branch: master | Manol Manolov | Wed Jul 21 14:40:49 2010 -0400| [539dfc8477945811d07f59f2252d6454acaddeab] | committer: Jean-Baptiste Kempf >> > >> > Remove Wrong BDA shortcuts >> ?Then I think the same shorcuts should also be removed from the linux dvb >> access, otherwise it becomes inconsistant. > > Well, I am just wondering who uses: > "qpsk", "satellite", "qam", "cable", "ofdm", "terrestrial", ?"usdigital"? > > - "satellite", "terrestrial" seems very long to me to be used in a MRL > - "qam" is also used on air, like "cqam" > - "ofdm" is a method, not really a MRL selection scheme > - "atsc" is used outside the US, and "usdigital" is then weird > > maybe "cable" could be kept. -1 > Opinions? cable is in the same category as terrestrial or sattelite IMHO gtz Jean-Paul Saman From david at 2of1.org Fri Jul 23 09:46:33 2010 From: david at 2of1.org (David Kaplan) Date: Fri, 23 Jul 2010 10:46:33 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module Message-ID: <1279871193-941-1-git-send-email-david@2of1.org> Adds support for the D2D API on Win7/Vista SP2 with Platform Update Requires d2d1 contrib headers --- configure.ac | 17 ++ modules/video_output/msw/Modules.am | 8 + modules/video_output/msw/common.c | 9 +- modules/video_output/msw/common.h | 9 + modules/video_output/msw/direct2d.c | 422 +++++++++++++++++++++++++++++++++++ modules/video_output/msw/events.c | 3 + 6 files changed, 465 insertions(+), 3 deletions(-) create mode 100644 modules/video_output/msw/direct2d.c diff --git a/configure.ac b/configure.ac index 8a8701e..738f631 100644 --- a/configure.ac +++ b/configure.ac @@ -3490,6 +3490,23 @@ then fi dnl +dnl Windows Direct2D plugin +dnl +AC_ARG_ENABLE(direct2d, + [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)]) +if test "${enable_direct2d}" != "no"; then + if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" + then + AC_CHECK_HEADERS(d2d1.h, + [ + VLC_ADD_PLUGIN([direct2d]) + VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32]) + ], [AC_MSG_WARN([Cannot find Direct2D headers!])] + ) + fi +fi + +dnl dnl win32 GDI plugin dnl AC_ARG_ENABLE(wingdi, diff --git a/modules/video_output/msw/Modules.am b/modules/video_output/msw/Modules.am index 51807c8..0613bae 100644 --- a/modules/video_output/msw/Modules.am +++ b/modules/video_output/msw/Modules.am @@ -1,3 +1,11 @@ +SOURCES_direct2d = \ + direct2d.c \ + common.h \ + events.h \ + events.c \ + common.c \ + $(NULL) + SOURCES_directx = \ directx.c \ common.h \ diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c index 5704d5c..fddbd3d 100644 --- a/modules/video_output/msw/common.c +++ b/modules/video_output/msw/common.c @@ -48,6 +48,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include "common.h" @@ -379,7 +382,7 @@ void UpdateRects(vout_display_t *vd, SWP_NOCOPYBITS|SWP_NOZORDER|SWP_ASYNCWINDOWPOS); /* Destination image position and dimensions */ -#if defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) rect_dest.left = 0; rect_dest.right = place.width; rect_dest.top = 0; @@ -398,7 +401,7 @@ void UpdateRects(vout_display_t *vd, #endif -#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* UpdateOverlay directdraw function doesn't automatically clip to the * display size so we need to do it otherwise it will fail * It is also needed for d3d to avoid exceding our surface size */ @@ -457,7 +460,7 @@ void UpdateRects(vout_display_t *vd, /* Apply overlay hardware constraints */ if (sys->use_overlay) AlignRect(&rect_src_clipped, sys->i_align_src_boundary, sys->i_align_src_size); -#elif defined(MODULE_NAME_IS_direct3d) +#elif defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* Needed at least with YUV content */ rect_src_clipped.left &= ~1; rect_src_clipped.right &= ~1; diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h index e023ef4..125fd65 100644 --- a/modules/video_output/msw/common.h +++ b/modules/video_output/msw/common.h @@ -157,6 +157,15 @@ struct vout_display_sys_t vout_display_opengl_t vgl; #endif +#ifdef MODULE_NAME_IS_direct2d + HINSTANCE d2_dll; /* handle of the opened d2d1 dll */ + FLOAT d2_dpi_x; /* DPI x */ + FLOAT d2_dpi_y; /* DPI y */ + ID2D1Factory *d2_factory; /* D2D factory */ + ID2D1HwndRenderTarget *d2_render_target; /* D2D rendering target */ + ID2D1Bitmap *d2_bitmap; /* D2 bitmap */ +#endif + #ifdef MODULE_NAME_IS_direct3d bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ /* show video on desktop window ? */ diff --git a/modules/video_output/msw/direct2d.c b/modules/video_output/msw/direct2d.c new file mode 100644 index 0000000..880c240 --- /dev/null +++ b/modules/video_output/msw/direct2d.c @@ -0,0 +1,422 @@ +/***************************************************************************** + * direct2d.c : Direct2D video output plugin for vlc (Win7/Vista SP2 PF Update) + ***************************************************************************** + * Copyright (C) 2010 VideoLAN and AUTHORS + * $Id$ + * + * Author: David Kaplan + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +/***************************************************************************** + * Preamble + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif +#include + +#include +#include +#include +#include + +#include +#include + +#include + +#include "common.h" + +#include +#undef GUID_EXT +#define GUID_EXT +DEFINE_GUID(IID_ID2D1Factory, 0x6152247, 0x6f50, 0x465a, 0x92, 0x45, 0x11, 0x8b, 0xfd, 0x3b, 0x60, 0x7); + +#ifndef WS_NONAVDONEBUTTON +# define WS_NONAVDONEBUTTON 0 +#endif + +/***************************************************************************** + * Module descriptor + *****************************************************************************/ +static int Open (vlc_object_t *); +static void Close(vlc_object_t *); + +#define D2D_HELP N_("Video output for Windows 7/Windows Vista with Platform update") + +vlc_module_begin () + set_category(CAT_VIDEO) + set_subcategory(SUBCAT_VIDEO_VOUT) + set_help(D2D_HELP) + set_shortname("Direct2D") + set_description(N_("Direct2D video output")) + set_capability("vout display", 10) + add_shortcut("direct2d") + set_callbacks(Open, Close) +vlc_module_end () + + +/***************************************************************************** + * Local prototypes + *****************************************************************************/ +static picture_pool_t *Pool (vout_display_t *, unsigned); +static void Prepare(vout_display_t *, picture_t *); +static void Display(vout_display_t *, picture_t *); +static int Control(vout_display_t *, int, va_list); +static void Manage (vout_display_t *); + +static int D2D_CreateRenderTarget(vout_display_t *vd); +static void D2D_ResizeRenderTarget(vout_display_t *vd); +static void D2D_DestroyRenderTarget(vout_display_t *vd); + +/** + * Initialises Direct2D vout module + */ +static int Open(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + vout_display_sys_t *sys; + + vd->sys = sys = calloc(1, sizeof(*sys)); + if (!sys) + return VLC_ENOMEM; + + sys->d2_render_target = NULL; + + sys->d2_dll = LoadLibrary(TEXT("D2D1.DLL")); + if (!sys->d2_dll) { + if (object->b_force) + msg_Err(vd, "Cannot load D2D1.DLL, aborting"); + goto error; + } + + D2D1_FACTORY_OPTIONS fo = { + D2D1_DEBUG_LEVEL_NONE + }; + + HRESULT (WINAPI *D2D1CreateFactory)(D2D1_FACTORY_TYPE, REFIID, + const D2D1_FACTORY_OPTIONS *, + void **); + + D2D1CreateFactory = (void *)GetProcAddress(sys->d2_dll, + TEXT("D2D1CreateFactory")); + if (!D2D1CreateFactory) { + msg_Err(vd, + "Cannot locate reference to a D2D1CreateFactory ABI in D2D1.DLL"); + goto error; + } + +#ifndef NDEBUG + msg_Dbg(vd, "D2D1.DLL loaded"); +#endif + + HRESULT hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, + (REFIID)&IID_ID2D1Factory, + &fo, + (void **)&sys->d2_factory); + if (hr != S_OK) { + msg_Err(vd, "Cannot create Direct2D factory (hr = 0x%x)!", + (unsigned)hr); + goto error; + } + + if (CommonInit(vd)) + goto error; + + if (D2D_CreateRenderTarget(vd) != VLC_SUCCESS) + goto error; + + vout_display_info_t info = vd->info; + info.is_slow = false; + info.has_double_click = true; + info.has_hide_mouse = true; + info.has_pictures_invalid = true; + vd->info = info; + + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 for ID2D1Bitmap */ + vd->fmt.i_rmask = 0x000000ff; + vd->fmt.i_gmask = 0x0000ff00; + vd->fmt.i_bmask = 0x00000000; + + vd->pool = Pool; + vd->prepare = Prepare; + vd->display = Display; + vd->manage = Manage; + vd->control = Control; + + EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct2D output)"); + +#ifndef NDEBUG + msg_Dbg(vd, "Ready"); +#endif + + return VLC_SUCCESS; + +error: + Close(VLC_OBJECT(vd)); + return VLC_EGENERIC; +} + +/** + * Close Direct2D vout + */ +static void Close(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + + D2D_DestroyRenderTarget(vd); + + if (vd->sys->pool) + picture_pool_Delete(vd->sys->pool); + + CommonClean(vd); + + free(vd->sys); +} + +/** + * Handles pool allocations for bitmaps + */ +static picture_pool_t *Pool(vout_display_t *vd, unsigned count) +{ + vout_display_sys_t *sys = vd->sys; + + if (!sys->pool) { + sys->pool = picture_pool_NewFromFormat(&vd->fmt, count); +#ifndef NDEBUG + msg_Dbg(vd, "New picture pool created"); +#endif + } + + return sys->pool; +} + +/** + * Performs set up of ID2D1Bitmap memory ready for blitting + */ +static void Prepare(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + if (sys->d2_render_target && sys->d2_bitmap) + { + /* This seems unnecessary + D2D1_RECT_U r_src = { + sys->rect_src_clipped.left, + sys->rect_src_clipped.top, + sys->rect_src_clipped.right, + sys->rect_src_clipped.bottom + }; + */ + + HRESULT hr = ID2D1Bitmap_CopyFromMemory(sys->d2_bitmap, + NULL /*&r_src*/, + picture->p[0].p_pixels, + picture->p[0].i_pitch); + if (hr != S_OK) + msg_Err(vd, "Failed to copy bitmap memory (hr = 0x%x)!", + (unsigned)hr); + +#ifndef NDEBUG + /*msg_Dbg(vd, "Bitmap dbg: target = %p, pitch = %d, bitmap = %p", + sys->d2_render_target, pitch, sys->d2_bitmap);*/ +#endif + } +} + +/** + * Blits a scaled picture_t to the render target + */ +static void Display(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_RECT_F r_dest = { + sys->rect_dest.left, + sys->rect_dest.top, + sys->rect_dest.right, + sys->rect_dest.bottom + }; + + if (sys->d2_render_target && sys->d2_bitmap) { + ID2D1HwndRenderTarget_BeginDraw(sys->d2_render_target); + + ID2D1HwndRenderTarget_DrawBitmap(sys->d2_render_target, + sys->d2_bitmap, + &r_dest, + 1.0f, + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, + NULL); + + ID2D1HwndRenderTarget_EndDraw(sys->d2_render_target, NULL, NULL); + } + + picture_Release(picture); + + CommonDisplay(vd); +} + + /** + * Control event handler + */ +static int Control(vout_display_t *vd, int query, va_list args) +{ + return CommonControl(vd, query, args); +} + +/** + * Handles surface management + * ID2D1RenderTargets cannot be resized and must be recreated + */ +static void Manage(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + CommonManage(vd); + + if (sys->changes & DX_POSITION_CHANGE) { + D2D_ResizeRenderTarget(vd); + sys->changes &= ~DX_POSITION_CHANGE; + } +} + +/** + * Creates a ID2D1HwndRenderTarget and associated ID2D1Bitmap + */ +static int D2D_CreateRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + sys->d2_render_target = NULL; + + D2D1_PIXEL_FORMAT pf = { + DXGI_FORMAT_B8G8R8A8_UNORM, + D2D1_ALPHA_MODE_IGNORE + }; + + D2D1_RENDER_TARGET_PROPERTIES rtp = { + D2D1_RENDER_TARGET_TYPE_DEFAULT, + pf, + 0, + 0, + D2D1_RENDER_TARGET_USAGE_NONE, + D2D1_FEATURE_LEVEL_DEFAULT + }; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + D2D1_HWND_RENDER_TARGET_PROPERTIES hrtp = { + sys->hvideownd, + size, + D2D1_PRESENT_OPTIONS_IMMEDIATELY /* this might need fiddling */ + }; + + HRESULT hr = ID2D1Factory_CreateHwndRenderTarget(sys->d2_factory, + &rtp, + &hrtp, + &sys->d2_render_target); + if (hr != S_OK) { + msg_Err(vd, "Cannot create render target (hvideownd = 0x%x, width = %d, height = %d, pf.format = %d, hr = 0x%x)!", + (unsigned)hrtp.hwnd, hrtp.pixelSize.width, + hrtp.pixelSize.height, pf.format, (unsigned)hr); + + sys->d2_render_target = NULL; + + return VLC_EGENERIC; + } + + ID2D1Factory_GetDesktopDpi(sys->d2_factory, + &sys->d2_dpi_x, + &sys->d2_dpi_y); + + D2D1_BITMAP_PROPERTIES bp = { + pf, + sys->d2_dpi_x, + sys->d2_dpi_y + }; + + D2D1_SIZE_U bitmap_size = { + vd->fmt.i_width, + vd->fmt.i_height + }; + + hr = ID2D1HwndRenderTarget_CreateBitmap(sys->d2_render_target, + bitmap_size, + NULL, + 0, + &bp, + &sys->d2_bitmap); + if (hr != S_OK) { + msg_Err(vd, "Failed to create bitmap (hr = 0x%x)!", (unsigned)hr); + + sys->d2_bitmap = NULL; + D2D_DestroyRenderTarget(vd); + + return VLC_EGENERIC; + } + +#ifndef NDEBUG + msg_Dbg(vd, "Render trgt dbg: dpi = %f, render_target = %p, bitmap = %p", + sys->d2_dpi_x, sys->d2_render_target, sys->d2_bitmap); +#endif + + return VLC_SUCCESS; +} + +/** + * Resizes a ID2D1HWndRenderTarget + */ +static void D2D_ResizeRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + HRESULT hr = ID2D1HwndRenderTarget_Resize(sys->d2_render_target, &size); + if (hr != S_OK) + msg_Err(vd, "Cannot resize render target (width = %d, height = %d, hr = 0x%x)!", + size.width, size.height, (unsigned)hr); +} + +/** + * Cleans up ID2D1HwndRenderTarget and ID2D1Bitmap + */ +static void D2D_DestroyRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + if (sys->d2_render_target) { + ID2D1HwndRenderTarget_Release(sys->d2_render_target); + sys->d2_render_target = NULL; + } + + if (sys->d2_bitmap) { + ID2D1Bitmap_Release(sys->d2_bitmap); + sys->d2_bitmap = NULL; + } + +#ifndef NDEBUG + msg_Dbg(vd, "Destroyed"); +#endif +} diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c index d2d5e26..46c15c4 100644 --- a/modules/video_output/msw/events.c +++ b/modules/video_output/msw/events.c @@ -49,6 +49,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include #include "common.h" -- 1.7.0.4 From olivier.aubert at liris.cnrs.fr Fri Jul 23 09:50:16 2010 From: olivier.aubert at liris.cnrs.fr (Olivier Aubert) Date: Fri, 23 Jul 2010 09:50:16 +0200 Subject: [vlc-devel] wxPython VLC Widget In-Reply-To: References: Message-ID: <1279871416.25952.159.camel@abbeyroad.dnsalias.org> Hello Greg Sure, more example code is a good thing. Your contribution is welcome. Regards, Olivier On Thu, 2010-07-22 at 23:34 -0400, Greg Marine wrote: > Greetings, > > Is there still an interest in an example player similar to > vlcwidget.py but for wxPython? I'm currently working on a production > ready widget now. I could work on a more simple example along side my > current work. I can just hand off the source to VideoLan to be > licensed anyway needed. All of my code on this project is open source > anyway. Since I rely on examples such as vlcwidget.py every day, I > would love to share what little I know for others looking for a > solution such as this. Just let me know! > > Thanks, > Greg > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel From sebastien-devel at celeos.eu Fri Jul 23 14:39:21 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Fri, 23 Jul 2010 14:39:21 +0200 Subject: [vlc-devel] [vlc-commits] commit: Made object created by input_resource attached to a high level object. ( Laurent Aimar ) In-Reply-To: <20100525184805.9DED6D8892@albiero.videolan.org> Message-ID: <1279888761.21353.21.camel@sebastien-desktop> Hi, vlc | branch: master | Laurent Aimar | Tue May 25 20:31:13 2010 +0200| [211f72ff01d9f6fcfefc6801503b01b3a4e935a4] | committer: Laurent Aimar Made object created by input_resource attached to a high level object. This commit makes vlc crash on quit, if I load a vlm file with an enabled broadcast : vlc: misc/objects.c:597: vlc_object_release: Assertion `internals->first == ((void *)0)' failed. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb5bb8b90 (LWP 457)] 0xb5bd3f04 in ?? () (gdb) bt #0 0xb5bd3f04 in ?? () #1 0xb77736be in DecoderProcess (p_dec=0x96aed84, p_block=0x96df920) at input/decoder.c:1986 #2 0xb7770cf0 in DecoderThread (p_this=0x96aed84) at input/decoder.c:903 #3 0xb77d319e in thread_entry (data=0x96a7290) at misc/threads.c:58 #4 0xb769e50f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #5 0xb7617a0e in clone () from /lib/tls/i686/cmov/libc.so.6 From flavio.thunder at gmail.com Fri Jul 23 17:46:00 2010 From: flavio.thunder at gmail.com (Flavio Alberto Lopes Soares) Date: Fri, 23 Jul 2010 12:46:00 -0300 Subject: [vlc-devel] How to change VIDEO PID, AUDIO PID, PCR PID and Program ID using libVLC Message-ID: Hello all, I'm writing an application to watch Digital TV DVB system using libVLC in a C++ application, and in my application I need to set the video PID, audio PID and PCR pid when changing the channel, I'm using the following code to set this : bool VLCPlayer::setVideoPid(int pid) { char vlc_option[64]; sprintf(vlc_option, "video-es=%d", pid); libvlc_media_add_option(_m, vlc_option); return true; } bool VLCPlayer::setAudioPid(int pid) { char vlc_option[64]; sprintf(vlc_option, "audio-es=%d", pid); libvlc_media_add_option(_m, vlc_option); return true; } bool VLCPlayer::setPcrPid(int pid) { char vlc_option[64]; sprintf(vlc_option, "pcr=%d", pid); libvlc_media_add_option(_m, vlc_option); return true; } after doing play using this code : bool VLCPlayer::play(Source *src) { if (is_paused) { libvlc_media_player_play(_mp); is_paused = false; return true; } libvlc_media_add_option(_m, "dvb-initialize-frontend=0"); libvlc_media_player_set_media(_mp, _m); libvlc_media_player_play(_mp); this->src = src; return true; } But I noticed that despite passing the correct PIDs the channel is set to a random Service ID (Program ID) showing the wrong program, analyzing the VLC code I saw that the Program ID is controlled by a variable called "program" and it is manipulated in vlc/src/input/es_out.c when changing the channel and I concluded that I need to set this variable "program" to my channel Service ID (Program ID) when changing the channel. My questions are : The way to set the video PID, audio PID and PCR PID in code above is the correct way to do this using libVLC ? If not how to do this ? To set Program ID in variable "program" I must to do in the same way ? Thanks for all help Flavio Alberto Lopes Soares -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben at geexbox.org Fri Jul 23 23:12:03 2010 From: ben at geexbox.org (Benjamin Zores) Date: Fri, 23 Jul 2010 23:12:03 +0200 Subject: [vlc-devel] [PATCH] Fix omapfb video_output build Message-ID: Hi, Attached patch fixes build of omapfb video_output plugin. I've build it against 1.1.1 but haven't checked if it required with dev tree or not. Please apply, Thx, Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: 20-omapfb.diff Type: text/x-diff Size: 658 bytes Desc: not available URL: From jmenon86 at gmail.com Sat Jul 24 06:20:48 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Sat, 24 Jul 2010 09:50:48 +0530 Subject: [vlc-devel] [PATCH] AVFormat Demux : Reset PCR for streams initialized later on. Message-ID: <1279945248-9304-1-git-send-email-jmenon86@gmail.com> A situation where this is desirable is when the video stream is initialized after the audio stream. In this case the PCR must be reset based on the video stream packet timestamp to avoid dropping frames. --- modules/demux/avformat/demux.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c index a8042b8..86aeb5d 100644 --- a/modules/demux/avformat/demux.c +++ b/modules/demux/avformat/demux.c @@ -588,7 +588,8 @@ static int Demux( demux_t *p_demux ) #endif if( p_frame->i_dts > VLC_TS_INVALID && - ( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 ) ) + ( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 || + p_frame->i_dts < p_sys->i_pcr ) ) { p_sys->i_pcr_tk = pkt.stream_index; p_sys->i_pcr = p_frame->i_dts; -- 1.7.1.1 From jmenon86 at gmail.com Sat Jul 24 07:06:44 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Sat, 24 Jul 2010 10:36:44 +0530 Subject: [vlc-devel] [PATCH] AVFormat Demux : Reset PCR for streams initialized later on. In-Reply-To: <1279945248-9304-1-git-send-email-jmenon86@gmail.com> References: <1279945248-9304-1-git-send-email-jmenon86@gmail.com> Message-ID: On Sat, Jul 24, 2010 at 9:50 AM, Jai Menon wrote: > A situation where this is desirable is when the video stream is > initialized after the audio stream. In this case the PCR must be > reset based on the video stream packet timestamp to avoid dropping > frames. > --- > ?modules/demux/avformat/demux.c | ? ?3 ++- > ?1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c > index a8042b8..86aeb5d 100644 > --- a/modules/demux/avformat/demux.c > +++ b/modules/demux/avformat/demux.c > @@ -588,7 +588,8 @@ static int Demux( demux_t *p_demux ) > ?#endif > > ? ? if( p_frame->i_dts > VLC_TS_INVALID ?&& > - ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 ) ) > + ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 || > + ? ? ? ? ?p_frame->i_dts < p_sys->i_pcr ) ) > ? ? { > ? ? ? ? p_sys->i_pcr_tk = pkt.stream_index; > ? ? ? ? p_sys->i_pcr = p_frame->i_dts; > -- > 1.7.1.1 I'm still considering if there's a better solution to this, so please disregard for now. -- Jai Menon From remi at remlab.net Sat Jul 24 10:27:29 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 24 Jul 2010 11:27:29 +0300 Subject: [vlc-devel] [PATCH] Fix omapfb video_output build In-Reply-To: References: Message-ID: <201007241127.29609.remi@remlab.net> Le samedi 24 juillet 2010 00:12:03 Benjamin Zores, vous avez ?crit : > Attached patch fixes build of omapfb video_output plugin. Applied to 1.1-bugfix, thanks. > I've build it against 1.1.1 but haven't checked if it required with > dev tree or not. It does not apply to later version, since the OMAP framebuffer plugin was removed. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From ben at geexbox.org Sat Jul 24 10:48:54 2010 From: ben at geexbox.org (Benjamin Zores) Date: Sat, 24 Jul 2010 10:48:54 +0200 Subject: [vlc-devel] [PATCH] Fix omapfb video_output build In-Reply-To: <201007241127.29609.remi@remlab.net> References: <201007241127.29609.remi@remlab.net> Message-ID: 2010/7/24 R?mi Denis-Courmont : > Le samedi 24 juillet 2010 00:12:03 Benjamin Zores, vous avez ?crit : >> Attached patch fixes build of omapfb video_output plugin. > > Applied to 1.1-bugfix, thanks. Thx. >> I've build it against 1.1.1 but haven't checked if it required with >> dev tree or not. > > It does not apply to later version, since the OMAP framebuffer plugin was > removed. By curiosity, any reason why ? Ben From remi at remlab.net Sat Jul 24 11:09:14 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Sat, 24 Jul 2010 12:09:14 +0300 Subject: [vlc-devel] [PATCH] Fix omapfb video_output build In-Reply-To: References: <201007241127.29609.remi@remlab.net> Message-ID: <201007241209.15224.remi@remlab.net> Le samedi 24 juillet 2010 11:48:54 Benjamin Zores, vous avez ?crit : > >> I've build it against 1.1.1 but haven't checked if it required with > >> dev tree or not. > > > > It does not apply to later version, since the OMAP framebuffer plugin was > > removed. > > By curiosity, any reason why ? Nobody ported it to the new video output API. Personally, I never got it to work on OMAP3, whereas XVIdeo works fine. I think it was initially written for OMAP2, which is not so common these days. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From pradeep at pradeeps.org Fri Jul 23 19:10:15 2010 From: pradeep at pradeeps.org (Pradeep Susarla) Date: Fri, 23 Jul 2010 18:10:15 +0100 Subject: [vlc-devel] localization file for Telugu Message-ID: Hi, My name is Pradeep. Recently I registered in VLC forum and I would like to help translate VLC in telugu. I want to know if you can provide a localization file for the same please? Thanks in advance. -- ~PradeepS -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Sat Jul 24 18:28:45 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 24 Jul 2010 19:28:45 +0300 Subject: [vlc-devel] =?iso-8859-15?q?How_to_change_VIDEO_PID=2C_AUDIO_PID?= =?iso-8859-15?q?=2C_PCR_PID_and_Program_ID_using_=09libVLC?= In-Reply-To: References: Message-ID: <201007241928.46331.remi@remlab.net> Le vendredi 23 juillet 2010 18:46:00 Flavio Alberto Lopes Soares, vous avez ?crit : > The way to set the video PID, audio PID and PCR PID in code above is the > correct way to do this using libVLC ? > If not how to do this ? > To set Program ID in variable "program" I must to do in the same way ? add_option "programs=PID1[,PID2[,...]]" ? -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sat Jul 24 18:29:47 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 24 Jul 2010 19:29:47 +0300 Subject: [vlc-devel] [Patch 1/3] avcodec: Allow usage of VLC_CODEC_RGBA In-Reply-To: References: Message-ID: <201007241929.47516.remi@remlab.net> Le vendredi 23 juillet 2010 01:31:30 Hugo Beauzee-Luyssen, vous avez ?crit : > Hi, > > Right now, VLC_CODEC_RGBA is disabled by : > #if defined(PIX_FMT_RGBA) > Though, PIX_FMT_RGBA appears to be an enum member, not a define, and > thus is never defined to the preprocessor. Is it declared in the lowest VLC-supported version of lavc ? -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sat Jul 24 18:32:05 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 24 Jul 2010 19:32:05 +0300 Subject: [vlc-devel] [Patch 2/3] Smem: Allow usage of RGBA In-Reply-To: References: Message-ID: <201007241932.06262.remi@remlab.net> Le vendredi 23 juillet 2010 01:32:39 Hugo Beauzee-Luyssen, vous avez ?crit : > Hi, > > The smem module states that it only handle raw format, but refuses to > load RGBA. This patch corrects it. Merged, thanks. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sat Jul 24 19:55:41 2010 From: remi at remlab.net (=?utf-8?q?R=C3=A9mi?= Denis-Courmont) Date: Sat, 24 Jul 2010 20:55:41 +0300 Subject: [vlc-devel] ALSA problems In-Reply-To: <4C46DCDE.1000106@chown.ath.cx> References: <70692cd9eb19b74e8fe4f09c5b1dd4f4@chewa.net> <4C46DCDE.1000106@chown.ath.cx> Message-ID: <201007242055.41808.remi@remlab.net> Hello, Le mercredi 21 juillet 2010 14:41:18 Grigori Goronzy, vous avez ?crit : > On 07/21/2010 01:15 PM, R?mi Denis-Courmont wrote: > > For several years, there have been reports that VLC outputs choppy sound > > with ALSA. Last week end, I managed to reliably trigger the problem. I > > simply had to select an explicit ALSA device as output (i.e. vlc > > --alsa-audio-device hw:0,0), and the audio sample rate is 44100 Hz. > > Interestingly, if I leave the default, the sound is fine. Also, if I > > force the output to 48kHz with --aout-rate 48000, the sound is fine. I > > get the same problem with both "hw:0,0" and "plughw:0,0". > > Much of audio hardware does not support arbitrary sample rates and lots > of (older) integrated chipsets only support a sample rate of 48 KHz in > hardware. So, software resampling is needed for all other sample rates. > I'm sure the problem is somehow related to that. > > VLC should warn if they requested sample rate cannot be used, though... > Have you tried explicitely enabling resampling? This can be done with > snd_pcm_hw_params_set_rate_resample(). ALSA does enable resampling by default (according to the documentation). And indeed, if I explicitly enable it, it makes absolutely no differences. I tried disabling resampling. Now I'm starting to suspect the ALSA developers have consumed too much toxics. hw and plughw till happily accept 44100Hz with ..._set_rate_near(). In other words, it makes no difference either. But that is not all, with resampling disabled, the default (userspace) device starts rejecting 44100Hz, even though that rates works fine, and does return 48kHz instead. I tried to play with ...set_rate_min(). That does in fact select 48kHz for 44.1kHz inputs. But it also selects 96kHz for 48kHz inputs, which is, err, a bit silly. > Anyway, IIRC using a hw: or plughw: device will always bypass automatic > resampling, so you're pretty much SOL. Sure. But how do you get the nearest larger or equal supported rate then? -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From pankajdnapster at gmail.com Sat Jul 24 19:55:47 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Sat, 24 Jul 2010 10:55:47 -0700 Subject: [vlc-devel] GSoC status Message-ID: Hi, Its been 2 weeks I am working on video and finally I got Red pixels of video drawn on opengl primitives.Link to a Snashot : http://img412.imageshack.us/img412/9435/vlcvideo.png -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: From jmenon86 at gmail.com Sat Jul 24 21:58:19 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Sun, 25 Jul 2010 01:28:19 +0530 Subject: [vlc-devel] [PATCH] AVFormat Demux : Reset PCR for streams initialized later on. In-Reply-To: References: <1279945248-9304-1-git-send-email-jmenon86@gmail.com> Message-ID: On Sat, Jul 24, 2010 at 10:36 AM, Jai Menon wrote: > On Sat, Jul 24, 2010 at 9:50 AM, Jai Menon wrote: >> A situation where this is desirable is when the video stream is >> initialized after the audio stream. In this case the PCR must be >> reset based on the video stream packet timestamp to avoid dropping >> frames. >> --- >> ?modules/demux/avformat/demux.c | ? ?3 ++- >> ?1 files changed, 2 insertions(+), 1 deletions(-) >> >> diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c >> index a8042b8..86aeb5d 100644 >> --- a/modules/demux/avformat/demux.c >> +++ b/modules/demux/avformat/demux.c >> @@ -588,7 +588,8 @@ static int Demux( demux_t *p_demux ) >> ?#endif >> >> ? ? if( p_frame->i_dts > VLC_TS_INVALID ?&& >> - ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 ) ) >> + ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 || >> + ? ? ? ? ?p_frame->i_dts < p_sys->i_pcr ) ) >> ? ? { >> ? ? ? ? p_sys->i_pcr_tk = pkt.stream_index; >> ? ? ? ? p_sys->i_pcr = p_frame->i_dts; >> -- >> 1.7.1.1 > > I'm still considering if there's a better solution to this, so please > disregard for now. After thinking some more, I think maybe something like attached would be worth considering. Essentially, the reference is set after we get atleast a few video and audio packets. btw, this fixes sync issues with some vfw avis i have and also dv in mov samples (referenced in a trac issue i think). -- Jai Menon -------------- next part -------------- A non-text attachment was scrubbed... Name: avformat-pcr.diff Type: text/x-patch Size: 2677 bytes Desc: not available URL: From fenrir at elivagar.org Sat Jul 24 22:29:33 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Sat, 24 Jul 2010 22:29:33 +0200 Subject: [vlc-devel] [PATCH] AVFormat Demux : Reset PCR for streams initialized later on. In-Reply-To: References: <1279945248-9304-1-git-send-email-jmenon86@gmail.com> Message-ID: <20100724202933.GA19849@elivagar.org> Hi, On Sun, Jul 25, 2010 at 01:28:19AM +0530, Jai Menon wrote: > On Sat, Jul 24, 2010 at 10:36 AM, Jai Menon wrote: > > On Sat, Jul 24, 2010 at 9:50 AM, Jai Menon wrote: > >> A situation where this is desirable is when the video stream is > >> initialized after the audio stream. In this case the PCR must be > >> reset based on the video stream packet timestamp to avoid dropping > >> frames. > >> --- > >> ?modules/demux/avformat/demux.c | ? ?3 ++- > >> ?1 files changed, 2 insertions(+), 1 deletions(-) > >> > >> diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c > >> index a8042b8..86aeb5d 100644 > >> --- a/modules/demux/avformat/demux.c > >> +++ b/modules/demux/avformat/demux.c > >> @@ -588,7 +588,8 @@ static int Demux( demux_t *p_demux ) > >> ?#endif > >> > >> ? ? if( p_frame->i_dts > VLC_TS_INVALID ?&& > >> - ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 ) ) > >> + ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 || > >> + ? ? ? ? ?p_frame->i_dts < p_sys->i_pcr ) ) > >> ? ? { > >> ? ? ? ? p_sys->i_pcr_tk = pkt.stream_index; > >> ? ? ? ? p_sys->i_pcr = p_frame->i_dts; > >> -- > >> 1.7.1.1 > > > > I'm still considering if there's a better solution to this, so please > > disregard for now. > > After thinking some more, I think maybe something like attached would > be worth considering. Essentially, the reference is set after we get > atleast a few video and audio packets. I may have misunderstood your patch, but you must call ES_OUT_SET_PCR before sending the first packets. Otherwise they will be rejected. -- fenrir From juhovh at iki.fi Sat Jul 24 22:31:13 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Sat, 24 Jul 2010 23:31:13 +0300 Subject: [vlc-devel] [PATCH 5/6] qt4: Run mainloop on the main thread on OSX In-Reply-To: <1280003474-19517-4-git-send-email-juhovh@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-2-git-send-email-juhovh@iki.fi> <1280003474-19517-3-git-send-email-juhovh@iki.fi> <1280003474-19517-4-git-send-email-juhovh@iki.fi> Message-ID: <1280003474-19517-5-git-send-email-juhovh@iki.fi> --- modules/gui/qt4/qt4.cpp | 38 +++++++++++++++++++++++++++++++++++--- 1 files changed, 35 insertions(+), 3 deletions(-) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 05ef8b8..68b16f9 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -62,6 +62,7 @@ static void Close ( vlc_object_t * ); static int WindowOpen ( vlc_object_t * ); static void WindowClose ( vlc_object_t * ); static void *Thread ( void * ); +static void *Monitor ( void * ); static void Cleanup ( void * ); static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * ); @@ -324,8 +325,16 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider ) #ifdef Q_WS_X11 x11_display = display; #endif + vlc_sem_init (&ready, 0); +#ifdef Q_WS_MAC + /* Start the monitor thread for the first thread */ + p_intf->b_should_run_on_first_thread = true; + p_intf->pf_run = (void(*)(intf_thread_t *))Thread; + if( vlc_clone( &p_sys->thread, Monitor, p_intf, VLC_THREAD_PRIORITY_LOW ) ) +#else if( vlc_clone( &p_sys->thread, Thread, p_intf, VLC_THREAD_PRIORITY_LOW ) ) +#endif { delete p_sys; free (display); @@ -335,9 +344,14 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider ) return VLC_ENOMEM; } - /* */ +#ifndef Q_WS_MAC + /* Wait until the interface is initialized, This is to avoid a race + * condition where playlist is started before the interface is initialized + * and therefore first video is not run in the embedded window. On Mac the + * interface is run on main thread so this problem doesn't exist, playlist + * needs to be started explicitly for Mac OS X. */ vlc_sem_wait (&ready); - vlc_sem_destroy (&ready); +#endif if( !p_sys->b_isDialogProvider ) { @@ -376,6 +390,7 @@ static void Close( vlc_object_t *p_this ) QVLCApp::triggerQuit(); vlc_join (p_sys->thread, NULL); + vlc_sem_destroy (&ready); #ifdef Q_WS_X11 free (x11_display); x11_display = NULL; @@ -460,7 +475,7 @@ static void *Thread( void *obj ) /* Explain how to show a dialog :D */ p_intf->pf_show_dialog = ShowDialog; - /* */ + /* Notify that the interface is initialized */ vlc_sem_post (&ready); /* Last settings */ @@ -478,6 +493,9 @@ static void *Thread( void *obj ) /* Launch */ app.exec(); + /* Notify that the interface is cleaned up */ + vlc_sem_post (&ready); + /* Delete the application automatically */ return NULL; } @@ -524,6 +542,20 @@ static void Cleanup( void *obj ) MainInputManager::killInstance(); } +static void *Monitor( void *obj ) +{ + intf_thread_t *p_intf = (intf_thread_t *)obj; + + /* Wait for interface to initialize */ + vlc_sem_wait (&ready); + + /* Wait for interface to cleanup */ + vlc_sem_wait (&ready); + + msg_Dbg( p_intf, "Monitor thread finished" ); + return NULL; +} + /***************************************************************************** * Callback to show a dialog *****************************************************************************/ -- 1.6.5.7 From juhovh at iki.fi Sat Jul 24 22:31:14 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Sat, 24 Jul 2010 23:31:14 +0300 Subject: [vlc-devel] [PATCH 6/6] Update the MonitorLibVLCDeath hack to work on libvlc_Quit In-Reply-To: <1280003474-19517-5-git-send-email-juhovh@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-2-git-send-email-juhovh@iki.fi> <1280003474-19517-3-git-send-email-juhovh@iki.fi> <1280003474-19517-4-git-send-email-juhovh@iki.fi> <1280003474-19517-5-git-send-email-juhovh@iki.fi> Message-ID: <1280003474-19517-6-git-send-email-juhovh@iki.fi> --- src/interface/interface.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/interface/interface.c b/src/interface/interface.c index 5c674d2..294f509 100644 --- a/src/interface/interface.c +++ b/src/interface/interface.c @@ -201,7 +201,8 @@ void intf_DestroyAll( libvlc_int_t *p_libvlc ) if( p_intf->pf_run ) vlc_thread_join( p_intf ); - module_unneed( p_intf, p_intf->p_module ); + if( p_intf->p_module ) + module_unneed( p_intf, p_intf->p_module ); free( p_intf->psz_intf ); config_ChainDestroy( p_intf->p_cfg ); vlc_object_release( p_intf ); @@ -240,7 +241,10 @@ static void * MonitorLibVLCDeath( vlc_object_t * p_this ) libvlc_InternalWait( p_libvlc ); - vlc_object_kill( p_intf ); /* Kill the stupid first thread interface */ + /* remove the module, this will call Close() */ + module_unneed( p_intf, p_intf->p_module ); + p_intf->p_module = NULL; + vlc_restorecancel (canc); return NULL; } -- 1.6.5.7 From juhovh at iki.fi Sat Jul 24 22:31:09 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Sat, 24 Jul 2010 23:31:09 +0300 Subject: [vlc-devel] [PATCH 1/6] osx: Add vout_window_t support to macosx vout module Message-ID: <1280003474-19517-1-git-send-email-juhovh@iki.fi> --- modules/video_output/macosx.m | 31 +++++++++++++++++++++++++++---- 1 files changed, 27 insertions(+), 4 deletions(-) diff --git a/modules/video_output/macosx.m b/modules/video_output/macosx.m index c1571b3..5bacb08 100644 --- a/modules/video_output/macosx.m +++ b/modules/video_output/macosx.m @@ -98,6 +98,7 @@ struct vout_display_sys_t VLCOpenGLVideoView *glView; id container; + vout_window_t *embed; vout_opengl_t gl; vout_display_opengl_t vgl; @@ -118,15 +119,35 @@ static int Open(vlc_object_t *this) vd->sys = sys; sys->pool = NULL; sys->gl.sys = NULL; + sys->embed = NULL; /* Get the drawable object */ id container = var_CreateGetAddress(vd, "drawable-nsobject"); - if (!container) + if (container) { - msg_Dbg(vd, "No drawable-nsobject, passing over."); - goto error; + vout_display_DeleteWindow(vd, NULL); + } + else + { + vout_window_cfg_t wnd_cfg; + + memset (&wnd_cfg, 0, sizeof (wnd_cfg)); + wnd_cfg.type = VOUT_WINDOW_TYPE_NSOBJECT; + wnd_cfg.x = var_InheritInteger (vd, "video-x"); + wnd_cfg.y = var_InheritInteger (vd, "video-y"); + wnd_cfg.width = vd->cfg->display.width; + wnd_cfg.height = vd->cfg->display.height; + + sys->embed = vout_display_NewWindow (vd, &wnd_cfg); + if (sys->embed) + container = sys->embed->handle.nsobject; + + if (!container) + { + msg_Dbg(vd, "No drawable-nsobject nor vout_window_t found, passing over."); + goto error; + } } - vout_display_DeleteWindow(vd, NULL); /* This will be released in Close(), on * main thread, after we are done using it. */ @@ -220,6 +241,8 @@ void Close(vlc_object_t *this) if (sys->gl.sys != NULL) vout_display_opengl_Clean(&sys->vgl); + if (sys->embed) + vout_display_DeleteWindow(vd, sys->embed); free (sys); } -- 1.6.5.7 From juhovh at iki.fi Sat Jul 24 22:31:10 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Sat, 24 Jul 2010 23:31:10 +0300 Subject: [vlc-devel] [PATCH 2/6] qt4: More static_casts to null in preference components In-Reply-To: <1280003474-19517-1-git-send-email-juhovh@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> Message-ID: <1280003474-19517-2-git-send-email-juhovh@iki.fi> --- .../gui/qt4/components/complete_preferences.cpp | 2 +- modules/gui/qt4/components/simple_preferences.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/gui/qt4/components/complete_preferences.cpp b/modules/gui/qt4/components/complete_preferences.cpp index 9a9202a..2a5f611 100644 --- a/modules/gui/qt4/components/complete_preferences.cpp +++ b/modules/gui/qt4/components/complete_preferences.cpp @@ -404,7 +404,7 @@ AdvPrefsPanel::AdvPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, } QLabel *titleLabel = new QLabel( head ); - QFont titleFont = QApplication::font( static_cast(0) ); + QFont titleFont = QApplication::font(); titleFont.setPointSize( titleFont.pointSize() + 6 ); titleLabel->setFont( titleFont ); diff --git a/modules/gui/qt4/components/simple_preferences.cpp b/modules/gui/qt4/components/simple_preferences.cpp index 6aaa64f..e92b603 100644 --- a/modules/gui/qt4/components/simple_preferences.cpp +++ b/modules/gui/qt4/components/simple_preferences.cpp @@ -191,7 +191,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, // Title Label QLabel *panel_label = new QLabel; - QFont labelFont = QApplication::font( static_cast(0) ); + QFont labelFont = QApplication::font(); labelFont.setPointSize( labelFont.pointSize() + 6 ); panel_label->setFont( labelFont ); @@ -200,7 +200,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, title_line->setFrameShape(QFrame::HLine); title_line->setFrameShadow(QFrame::Sunken); - QFont italicFont = QApplication::font( static_cast(0) ); + QFont italicFont = QApplication::font(); italicFont.setItalic( true ); switch( number ) -- 1.6.5.7 From juhovh at iki.fi Sat Jul 24 22:31:11 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Sat, 24 Jul 2010 23:31:11 +0300 Subject: [vlc-devel] [PATCH 3/6] qt4: Add OSX support to embedded video In-Reply-To: <1280003474-19517-2-git-send-email-juhovh@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-2-git-send-email-juhovh@iki.fi> Message-ID: <1280003474-19517-3-git-send-email-juhovh@iki.fi> --- modules/gui/qt4/qt4.cpp | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 990b255..676a82b 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -248,12 +248,14 @@ vlc_module_begin () set_callbacks( OpenDialogs, Close ) -#if defined(Q_WS_X11) || defined(Q_WS_WIN) +#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_WS_MAC) add_submodule () #if defined(Q_WS_X11) set_capability( "vout window xid", 0 ) #elif defined(Q_WS_WIN) set_capability( "vout window hwnd", 0 ) +#elif defined(Q_WS_MAC) + set_capability( "vout window nsobject", 0 ) #endif set_callbacks( WindowOpen, WindowClose ) #endif @@ -574,6 +576,11 @@ static int WindowOpen( vlc_object_t *p_obj ) p_wnd->handle.hwnd = p_mi->getVideo( &i_x, &i_y, &i_width, &i_height ); if( !p_wnd->handle.hwnd ) return VLC_EGENERIC; + +#elif defined (Q_WS_MAC) + p_wnd->handle.nsobject = (void *)p_mi->getVideo( &i_x, &i_y, &i_width, &i_height ); + if( !p_wnd->handle.nsobject ) + return VLC_EGENERIC; #else # error FIXME #endif -- 1.6.5.7 From juhovh at iki.fi Sat Jul 24 22:31:12 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Sat, 24 Jul 2010 23:31:12 +0300 Subject: [vlc-devel] [PATCH 4/6] qt4: Move Qt4 interface cleanup to aboutToQuit() signal In-Reply-To: <1280003474-19517-3-git-send-email-juhovh@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-2-git-send-email-juhovh@iki.fi> <1280003474-19517-3-git-send-email-juhovh@iki.fi> Message-ID: <1280003474-19517-4-git-send-email-juhovh@iki.fi> --- modules/gui/qt4/qt4.cpp | 16 +++++++++++++--- modules/gui/qt4/util/qvlcapp.hpp | 19 +++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 676a82b..05ef8b8 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -62,6 +62,7 @@ static void Close ( vlc_object_t * ); static int WindowOpen ( vlc_object_t * ); static void WindowClose ( vlc_object_t * ); static void *Thread ( void * ); +static void Cleanup ( void * ); static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * ); /***************************************************************************** @@ -406,6 +407,7 @@ static void *Thread( void *obj ) #endif QVLCApp app( argc, argv ); + app.registerCleanup( Cleanup, p_intf ); p_intf->p_sys->p_app = &app; @@ -476,6 +478,17 @@ static void *Thread( void *obj ) /* Launch */ app.exec(); + /* Delete the application automatically */ + return NULL; +} + +static void Cleanup( void *obj ) +{ + intf_thread_t *p_intf = (intf_thread_t *)obj; + MainInterface *p_mi = p_intf->p_sys->p_mi; + + msg_Dbg( p_intf, "Cleaning up the interface" ); + /* And quit */ QApplication::closeAllWindows(); @@ -509,9 +522,6 @@ static void *Thread( void *obj ) /* Destroy the MainInputManager */ MainInputManager::killInstance(); - - /* Delete the application automatically */ - return NULL; } /***************************************************************************** diff --git a/modules/gui/qt4/util/qvlcapp.hpp b/modules/gui/qt4/util/qvlcapp.hpp index bfd8a90..424c504 100644 --- a/modules/gui/qt4/util/qvlcapp.hpp +++ b/modules/gui/qt4/util/qvlcapp.hpp @@ -43,9 +43,16 @@ class QVLCApp : public QApplication public: QVLCApp( int & argc, char ** argv ) : QApplication( argc, argv, true ) { + connect( this, SIGNAL(aboutToQuit()), this, SLOT(cleanup()) ); connect( this, SIGNAL(quitSignal()), this, SLOT(quit()) ); } + void registerCleanup( void (*p_cleanup)( void * ), void *obj ) + { + cleanupFunc = p_cleanup; + cleanupParam = obj; + } + static void triggerQuit() { QVLCApp *app = qobject_cast( instance() ); @@ -61,9 +68,21 @@ public: } #endif +public slots: + void cleanup() + { + if( cleanupFunc != NULL ) + { + cleanupFunc( cleanupParam ); + } + } + signals: void quitSignal(); +private: + void (*cleanupFunc)( void * ); + void *cleanupParam; }; #endif -- 1.6.5.7 From remi at remlab.net Sat Jul 24 22:56:21 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sat, 24 Jul 2010 23:56:21 +0300 Subject: [vlc-devel] [PATCH 5/6] qt4: Run mainloop on the main thread on OSX In-Reply-To: <1280003474-19517-5-git-send-email-juhovh@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-4-git-send-email-juhovh@iki.fi> <1280003474-19517-5-git-send-email-juhovh@iki.fi> Message-ID: <201007242356.21650.remi@remlab.net> Le samedi 24 juillet 2010 23:31:13 Juho V?h?-Herttua, vous avez ?crit : > @@ -335,9 +344,14 @@ static int Open( vlc_object_t *p_this, bool > isDialogProvider ) return VLC_ENOMEM; > } > > - /* */ > +#ifndef Q_WS_MAC > + /* Wait until the interface is initialized, This is to avoid a race > + * condition where playlist is started before the interface is > initialized + * and therefore first video is not run in the embedded > window. On Mac the + * interface is run on main thread so this problem > doesn't exist, playlist + * needs to be started explicitly for Mac OS > X. */ > vlc_sem_wait (&ready); > - vlc_sem_destroy (&ready); Seems wrong. > +#endif > > if( !p_sys->b_isDialogProvider ) > { > @@ -376,6 +390,7 @@ static void Close( vlc_object_t *p_this ) > QVLCApp::triggerQuit(); > > vlc_join (p_sys->thread, NULL); > + vlc_sem_destroy (&ready); > #ifdef Q_WS_X11 > free (x11_display); > x11_display = NULL; > @@ -460,7 +475,7 @@ static void *Thread( void *obj ) > /* Explain how to show a dialog :D */ > p_intf->pf_show_dialog = ShowDialog; > > - /* */ > + /* Notify that the interface is initialized */ > vlc_sem_post (&ready); > > /* Last settings */ > @@ -478,6 +493,9 @@ static void *Thread( void *obj ) > /* Launch */ > app.exec(); > > + /* Notify that the interface is cleaned up */ > + vlc_sem_post (&ready); > + > /* Delete the application automatically */ > return NULL; > } > @@ -524,6 +542,20 @@ static void Cleanup( void *obj ) > MainInputManager::killInstance(); > } > > +static void *Monitor( void *obj ) > +{ > + intf_thread_t *p_intf = (intf_thread_t *)obj; > + > + /* Wait for interface to initialize */ > + vlc_sem_wait (&ready); > + > + /* Wait for interface to cleanup */ > + vlc_sem_wait (&ready); > + > + msg_Dbg( p_intf, "Monitor thread finished" ); > + return NULL; > +} That thread looks quite useless. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sat Jul 24 22:57:37 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sat, 24 Jul 2010 23:57:37 +0300 Subject: [vlc-devel] [PATCH 4/6] qt4: Move Qt4 interface cleanup to aboutToQuit() signal In-Reply-To: <1280003474-19517-4-git-send-email-juhovh@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-3-git-send-email-juhovh@iki.fi> <1280003474-19517-4-git-send-email-juhovh@iki.fi> Message-ID: <201007242357.37973.remi@remlab.net> Le samedi 24 juillet 2010 23:31:12 Juho V?h?-Herttua, vous avez ?crit : > --- > modules/gui/qt4/qt4.cpp | 16 +++++++++++++--- > modules/gui/qt4/util/qvlcapp.hpp | 19 +++++++++++++++++++ > 2 files changed, 32 insertions(+), 3 deletions(-) > > diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp > index 676a82b..05ef8b8 100644 > --- a/modules/gui/qt4/qt4.cpp > +++ b/modules/gui/qt4/qt4.cpp > @@ -62,6 +62,7 @@ static void Close ( vlc_object_t * ); > static int WindowOpen ( vlc_object_t * ); > static void WindowClose ( vlc_object_t * ); > static void *Thread ( void * ); > +static void Cleanup ( void * ); > static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * > ); > > /************************************************************************* > **** @@ -406,6 +407,7 @@ static void *Thread( void *obj ) > #endif > > QVLCApp app( argc, argv ); > + app.registerCleanup( Cleanup, p_intf ); > > p_intf->p_sys->p_app = &app; > > @@ -476,6 +478,17 @@ static void *Thread( void *obj ) > /* Launch */ > app.exec(); > > + /* Delete the application automatically */ > + return NULL; > +} > + > +static void Cleanup( void *obj ) > +{ > + intf_thread_t *p_intf = (intf_thread_t *)obj; > + MainInterface *p_mi = p_intf->p_sys->p_mi; > + > + msg_Dbg( p_intf, "Cleaning up the interface" ); > + > /* And quit */ > QApplication::closeAllWindows(); > Currently, there does seem to be a race at exit between the interface thread and the vout provider cleaning up. I am afraid this will makes our like even more miserable when trying to fix it. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sat Jul 24 22:58:39 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sat, 24 Jul 2010 23:58:39 +0300 Subject: [vlc-devel] [PATCH 6/6] Update the MonitorLibVLCDeath hack to work on libvlc_Quit In-Reply-To: <1280003474-19517-6-git-send-email-juhovh@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-5-git-send-email-juhovh@iki.fi> <1280003474-19517-6-git-send-email-juhovh@iki.fi> Message-ID: <201007242358.39713.remi@remlab.net> Le samedi 24 juillet 2010 23:31:14 Juho V?h?-Herttua, vous avez ?crit : > --- > src/interface/interface.c | 8 ++++++-- > 1 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/src/interface/interface.c b/src/interface/interface.c > index 5c674d2..294f509 100644 > --- a/src/interface/interface.c > +++ b/src/interface/interface.c > @@ -201,7 +201,8 @@ void intf_DestroyAll( libvlc_int_t *p_libvlc ) > > if( p_intf->pf_run ) > vlc_thread_join( p_intf ); > - module_unneed( p_intf, p_intf->p_module ); > + if( p_intf->p_module ) > + module_unneed( p_intf, p_intf->p_module ); This does not really make sense. If there is no module, then the interface creation failed, so we cannot reach that code. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sat Jul 24 23:01:00 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sun, 25 Jul 2010 00:01:00 +0300 Subject: [vlc-devel] [PATCH 3/6] qt4: Add OSX support to embedded video In-Reply-To: <1280003474-19517-3-git-send-email-juhovh@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-2-git-send-email-juhovh@iki.fi> <1280003474-19517-3-git-send-email-juhovh@iki.fi> Message-ID: <201007250001.01013.remi@remlab.net> Merged, thanks. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From juhovh at iki.fi Sat Jul 24 23:48:28 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sun, 25 Jul 2010 00:48:28 +0300 Subject: [vlc-devel] [PATCH 5/6] qt4: Run mainloop on the main thread on OSX In-Reply-To: <201007242356.21650.remi@remlab.net> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-4-git-send-email-juhovh@iki.fi> <1280003474-19517-5-git-send-email-juhovh@iki.fi> <201007242356.21650.remi@remlab.net> Message-ID: <4FF74415-069D-45FC-A634-A5A24F51FEC9@iki.fi> On 24.7.2010, at 23.56, R?mi Denis-Courmont wrote: > Le samedi 24 juillet 2010 23:31:13 Juho V?h?-Herttua, vous avez ?crit : >> @@ -335,9 +344,14 @@ static int Open( vlc_object_t *p_this, bool >> isDialogProvider ) return VLC_ENOMEM; >> } >> >> - /* */ >> +#ifndef Q_WS_MAC >> + /* Wait until the interface is initialized, This is to avoid a race >> + * condition where playlist is started before the interface is >> initialized + * and therefore first video is not run in the embedded >> window. On Mac the + * interface is run on main thread so this problem >> doesn't exist, playlist + * needs to be started explicitly for Mac OS >> X. */ >> vlc_sem_wait (&ready); >> - vlc_sem_destroy (&ready); > > Seems wrong. Misunderstanding probably, I'd welcome a better wording to explain what the semaphore there is actually doing. >> +#endif >> >> if( !p_sys->b_isDialogProvider ) >> { >> @@ -376,6 +390,7 @@ static void Close( vlc_object_t *p_this ) >> QVLCApp::triggerQuit(); >> >> vlc_join (p_sys->thread, NULL); >> + vlc_sem_destroy (&ready); >> #ifdef Q_WS_X11 >> free (x11_display); >> x11_display = NULL; >> @@ -460,7 +475,7 @@ static void *Thread( void *obj ) >> /* Explain how to show a dialog :D */ >> p_intf->pf_show_dialog = ShowDialog; >> >> - /* */ >> + /* Notify that the interface is initialized */ >> vlc_sem_post (&ready); >> >> /* Last settings */ >> @@ -478,6 +493,9 @@ static void *Thread( void *obj ) >> /* Launch */ >> app.exec(); >> >> + /* Notify that the interface is cleaned up */ >> + vlc_sem_post (&ready); >> + >> /* Delete the application automatically */ >> return NULL; >> } >> @@ -524,6 +542,20 @@ static void Cleanup( void *obj ) >> MainInputManager::killInstance(); >> } >> >> +static void *Monitor( void *obj ) >> +{ >> + intf_thread_t *p_intf = (intf_thread_t *)obj; >> + >> + /* Wait for interface to initialize */ >> + vlc_sem_wait (&ready); >> + >> + /* Wait for interface to cleanup */ >> + vlc_sem_wait (&ready); >> + >> + msg_Dbg( p_intf, "Monitor thread finished" ); >> + return NULL; >> +} > > That thread looks quite useless. It looks quite useless, but I plan to use it to start the playlist in the middle of those two sem_wait calls. Also having this thread made it possible to avoid larger changes in the Close() function, because vlc_join works just like before, even though mainloop is actually run on main thread. I know you don't like extra threads, but then again it doesn't really increase the thread count vs. the non-hack code. The other run_on_first_thread hack does though... Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From juhovh at iki.fi Sat Jul 24 23:50:07 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sun, 25 Jul 2010 00:50:07 +0300 Subject: [vlc-devel] [PATCH 4/6] qt4: Move Qt4 interface cleanup to aboutToQuit() signal In-Reply-To: <201007242357.37973.remi@remlab.net> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-3-git-send-email-juhovh@iki.fi> <1280003474-19517-4-git-send-email-juhovh@iki.fi> <201007242357.37973.remi@remlab.net> Message-ID: <08C996A4-A7EE-4FC1-9436-FD4C4B39D6C7@iki.fi> On 24.7.2010, at 23.57, R?mi Denis-Courmont wrote: > Le samedi 24 juillet 2010 23:31:12 Juho V?h?-Herttua, vous avez ?crit : >> --- >> modules/gui/qt4/qt4.cpp | 16 +++++++++++++--- >> modules/gui/qt4/util/qvlcapp.hpp | 19 +++++++++++++++++++ >> 2 files changed, 32 insertions(+), 3 deletions(-) >> >> diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp >> index 676a82b..05ef8b8 100644 >> --- a/modules/gui/qt4/qt4.cpp >> +++ b/modules/gui/qt4/qt4.cpp >> @@ -62,6 +62,7 @@ static void Close ( vlc_object_t * ); >> static int WindowOpen ( vlc_object_t * ); >> static void WindowClose ( vlc_object_t * ); >> static void *Thread ( void * ); >> +static void Cleanup ( void * ); >> static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * >> ); >> >> /************************************************************************* >> **** @@ -406,6 +407,7 @@ static void *Thread( void *obj ) >> #endif >> >> QVLCApp app( argc, argv ); >> + app.registerCleanup( Cleanup, p_intf ); >> >> p_intf->p_sys->p_app = &app; >> >> @@ -476,6 +478,17 @@ static void *Thread( void *obj ) >> /* Launch */ >> app.exec(); >> >> + /* Delete the application automatically */ >> + return NULL; >> +} >> + >> +static void Cleanup( void *obj ) >> +{ >> + intf_thread_t *p_intf = (intf_thread_t *)obj; >> + MainInterface *p_mi = p_intf->p_sys->p_mi; >> + >> + msg_Dbg( p_intf, "Cleaning up the interface" ); >> + >> /* And quit */ >> QApplication::closeAllWindows(); >> > > Currently, there does seem to be a race at exit between the interface thread > and the vout provider cleaning up. I am afraid this will makes our like even > more miserable when trying to fix it. Ok, actually I'm ok with not merging this patch at all. At first I thought it would be very useful but later I noticed it's not really necessary. It was mostly based on the Qt documentation: "We recommend that you connect clean-up code to the aboutToQuit() signal, instead of putting it in your application's main() function. This is because, on some platforms the QApplication::exec() call may not return. For example, on the Windows platform, when the user logs off, the system terminates the process after Qt closes all top-level windows. Hence, there is no guarantee that the application will have time to exit its event loop and execute code at the end of the main() function, after the QApplication::exec() call." Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From juhovh at iki.fi Sat Jul 24 23:54:35 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sun, 25 Jul 2010 00:54:35 +0300 Subject: [vlc-devel] [PATCH 6/6] Update the MonitorLibVLCDeath hack to work on libvlc_Quit In-Reply-To: <201007242358.39713.remi@remlab.net> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-5-git-send-email-juhovh@iki.fi> <1280003474-19517-6-git-send-email-juhovh@iki.fi> <201007242358.39713.remi@remlab.net> Message-ID: On 24.7.2010, at 23.58, R?mi Denis-Courmont wrote: > Le samedi 24 juillet 2010 23:31:14 Juho V?h?-Herttua, vous avez ?crit : >> --- >> src/interface/interface.c | 8 ++++++-- >> 1 files changed, 6 insertions(+), 2 deletions(-) >> >> diff --git a/src/interface/interface.c b/src/interface/interface.c >> index 5c674d2..294f509 100644 >> --- a/src/interface/interface.c >> +++ b/src/interface/interface.c >> @@ -201,7 +201,8 @@ void intf_DestroyAll( libvlc_int_t *p_libvlc ) >> >> if( p_intf->pf_run ) >> vlc_thread_join( p_intf ); >> - module_unneed( p_intf, p_intf->p_module ); >> + if( p_intf->p_module ) >> + module_unneed( p_intf, p_intf->p_module ); > > This does not really make sense. If there is no module, then the interface > creation failed, so we cannot reach that code. And in addition to that, I think the patch has a race condition, so it shouldn't be merged like this. However, my problem here is that in MonitorLibVLCDeath function I need to be able to somehow call the interface Close() function to get it out of the main loop. The original code called "vlc_object_kill( p_intf )" which doesn't seem to do the job however. I noticed that module_unneed calls the Close(), therefore I "fixed" it by calling module_unneed and removing the second cleanup call to module_unneed here. Does someone have better suggestions? I think one way would be to set the p_module->pf_deactivate function as NULL and then call it manually, but it makes me feel almost dirtier. :P Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From juhovh at iki.fi Sun Jul 25 00:56:09 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sun, 25 Jul 2010 01:56:09 +0300 Subject: [vlc-devel] [PATCH 5/6] qt4: Run mainloop on the main thread on OSX In-Reply-To: <4FF74415-069D-45FC-A634-A5A24F51FEC9@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-4-git-send-email-juhovh@iki.fi> <1280003474-19517-5-git-send-email-juhovh@iki.fi> <201007242356.21650.remi@remlab.net> <4FF74415-069D-45FC-A634-A5A24F51FEC9@iki.fi> Message-ID: <9E98BB47-5DB6-4517-94EB-E4300B10C2AE@iki.fi> On 25.7.2010, at 0.48, Juho V?h?-Herttua wrote: >> That thread looks quite useless. > > It looks quite useless, but I plan to use it to start the playlist in the middle of those two sem_wait calls. Also having this thread made it possible to avoid larger changes in the Close() function, because vlc_join works just like before, even though mainloop is actually run on main thread. I know you don't like extra threads, but then again it doesn't really increase the thread count vs. the non-hack code. The other run_on_first_thread hack does though... Alternative version without the thread attached, confirmed to work the same way. Playing with the semaphore like that feels a bit ugly though. -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-qt4-Run-mainloop-on-the-main-thread-on-OSX.patch Type: application/octet-stream Size: 2183 bytes Desc: not available URL: -------------- next part -------------- Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From jb at videolan.org Sun Jul 25 02:58:27 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 25 Jul 2010 02:58:27 +0200 Subject: [vlc-devel] [PATCH 2/6] qt4: More static_casts to null in preference components In-Reply-To: <1280003474-19517-2-git-send-email-juhovh@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <1280003474-19517-2-git-send-email-juhovh@iki.fi> Message-ID: <20100725005827.GA5531@videolan.org> On Sat, Jul 24, 2010 at 11:31:10PM +0300, Juho V?h?-Herttua wrote : > --- > .../gui/qt4/components/complete_preferences.cpp | 2 +- > modules/gui/qt4/components/simple_preferences.cpp | 4 ++-- > 2 files changed, 3 insertions(+), 3 deletions(-) Applied, thanks Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From pankajdnapster at gmail.com Sun Jul 25 03:38:26 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Sun, 25 Jul 2010 07:08:26 +0530 Subject: [vlc-devel] [PATCH] How do we get GBA components if we superimpose all of them on R only Message-ID: And this gives all colour components to Symbian VLC.. -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-How-do-we-get-GBA-components-if-we-superimpose-all-o.patch Type: text/x-patch Size: 1447 bytes Desc: not available URL: From jmenon86 at gmail.com Sun Jul 25 07:59:03 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Sun, 25 Jul 2010 11:29:03 +0530 Subject: [vlc-devel] [PATCH] AVFormat Demux : Reset PCR for streams initialized later on. In-Reply-To: <20100724202933.GA19849@elivagar.org> References: <1279945248-9304-1-git-send-email-jmenon86@gmail.com> <20100724202933.GA19849@elivagar.org> Message-ID: On Sun, Jul 25, 2010 at 1:59 AM, Laurent Aimar wrote: > Hi, > > On Sun, Jul 25, 2010 at 01:28:19AM +0530, Jai Menon wrote: >> On Sat, Jul 24, 2010 at 10:36 AM, Jai Menon wrote: >> > On Sat, Jul 24, 2010 at 9:50 AM, Jai Menon wrote: >> >> A situation where this is desirable is when the video stream is >> >> initialized after the audio stream. In this case the PCR must be >> >> reset based on the video stream packet timestamp to avoid dropping >> >> frames. >> >> --- >> >> ?modules/demux/avformat/demux.c | ? ?3 ++- >> >> ?1 files changed, 2 insertions(+), 1 deletions(-) >> >> >> >> diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c >> >> index a8042b8..86aeb5d 100644 >> >> --- a/modules/demux/avformat/demux.c >> >> +++ b/modules/demux/avformat/demux.c >> >> @@ -588,7 +588,8 @@ static int Demux( demux_t *p_demux ) >> >> ?#endif >> >> >> >> ? ? if( p_frame->i_dts > VLC_TS_INVALID ?&& >> >> - ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 ) ) >> >> + ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 || >> >> + ? ? ? ? ?p_frame->i_dts < p_sys->i_pcr ) ) >> >> ? ? { >> >> ? ? ? ? p_sys->i_pcr_tk = pkt.stream_index; >> >> ? ? ? ? p_sys->i_pcr = p_frame->i_dts; >> >> -- >> >> 1.7.1.1 >> > >> > I'm still considering if there's a better solution to this, so please >> > disregard for now. >> >> After thinking some more, I think maybe something like attached would >> be worth considering. Essentially, the reference is set after we get >> atleast a few video and audio packets. > ?I may have misunderstood ?your patch, but you must call ES_OUT_SET_PCR > before sending the first packets. Otherwise they will be rejected. Ah, so is there any other way to avoid this? buffering packets in the demuxer maybe (not sure if thats good though)? I agree that packets being dropped is not quite right earlier patch does fix playback atleast. -- Jai Menon From david at 2of1.org Sun Jul 25 08:11:09 2010 From: david at 2of1.org (David Kaplan) Date: Sun, 25 Jul 2010 09:11:09 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <1279871193-941-1-git-send-email-david@2of1.org> References: <1279871193-941-1-git-send-email-david@2of1.org> Message-ID: On Fri, Jul 23, 2010 at 10:46 AM, David Kaplan wrote: > Adds support for the D2D API on Win7/Vista SP2 with Platform Update > Requires d2d1 contrib headers > Any further comments ont his patch? -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Sun Jul 25 09:07:52 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sun, 25 Jul 2010 10:07:52 +0300 Subject: [vlc-devel] [PATCH 5/6] qt4: Run mainloop on the main thread on OSX In-Reply-To: <4FF74415-069D-45FC-A634-A5A24F51FEC9@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <201007242356.21650.remi@remlab.net> <4FF74415-069D-45FC-A634-A5A24F51FEC9@iki.fi> Message-ID: <201007251007.53253.remi@remlab.net> Le dimanche 25 juillet 2010 00:48:28 Juho V?h?-Herttua, vous avez ?crit : > > That thread looks quite useless. > > It looks quite useless, but I plan to use it to start the playlist in the > middle of those two sem_wait calls. You might as well do that after vlc_sem_post() directly. That's one line of code (plus two lines of ifdef). -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jmenon86 at gmail.com Sun Jul 25 10:19:09 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Sun, 25 Jul 2010 13:49:09 +0530 Subject: [vlc-devel] [PATCH] AVFormat Demux : Reset PCR for streams initialized later on. In-Reply-To: <20100724202933.GA19849@elivagar.org> References: <1279945248-9304-1-git-send-email-jmenon86@gmail.com> <20100724202933.GA19849@elivagar.org> Message-ID: On Sun, Jul 25, 2010 at 1:59 AM, Laurent Aimar wrote: > Hi, > > On Sun, Jul 25, 2010 at 01:28:19AM +0530, Jai Menon wrote: >> On Sat, Jul 24, 2010 at 10:36 AM, Jai Menon wrote: >> > On Sat, Jul 24, 2010 at 9:50 AM, Jai Menon wrote: >> >> A situation where this is desirable is when the video stream is >> >> initialized after the audio stream. In this case the PCR must be >> >> reset based on the video stream packet timestamp to avoid dropping >> >> frames. >> >> --- >> >> ?modules/demux/avformat/demux.c | ? ?3 ++- >> >> ?1 files changed, 2 insertions(+), 1 deletions(-) >> >> >> >> diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c >> >> index a8042b8..86aeb5d 100644 >> >> --- a/modules/demux/avformat/demux.c >> >> +++ b/modules/demux/avformat/demux.c >> >> @@ -588,7 +588,8 @@ static int Demux( demux_t *p_demux ) >> >> ?#endif >> >> >> >> ? ? if( p_frame->i_dts > VLC_TS_INVALID ?&& >> >> - ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 ) ) >> >> + ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 || >> >> + ? ? ? ? ?p_frame->i_dts < p_sys->i_pcr ) ) >> >> ? ? { >> >> ? ? ? ? p_sys->i_pcr_tk = pkt.stream_index; >> >> ? ? ? ? p_sys->i_pcr = p_frame->i_dts; >> >> -- >> >> 1.7.1.1 >> > >> > I'm still considering if there's a better solution to this, so please >> > disregard for now. >> >> After thinking some more, I think maybe something like attached would >> be worth considering. Essentially, the reference is set after we get >> atleast a few video and audio packets. > ?I may have misunderstood ?your patch, but you must call ES_OUT_SET_PCR > before sending the first packets. Otherwise they will be rejected. would you be okay with updating the pcr after receiving a few packets instead? this way nothing is lost. -- Jai Menon -------------- next part -------------- A non-text attachment was scrubbed... Name: avformat-pcr.diff Type: text/x-patch Size: 2775 bytes Desc: not available URL: From ralf.moeller at nord-com.net Sun Jul 25 10:32:48 2010 From: ralf.moeller at nord-com.net (Ralf Moeller) Date: Sun, 25 Jul 2010 10:32:48 +0200 Subject: [vlc-devel] vlc does not work on my machine correctly Message-ID: <4C4BF6B0.60106@nord-com.net> Hi, I'm using debian (lenny) and installed the vlc player, but it does not work correctly. would any1 help me to get it working ? when I start the player, I get this message : agentc at devkit:~$ vlc vlc: symbol lookup error: /usr/lib/i686/cmov/libavcodec.so.51: undefined symbol: lzo1x_decode so I changed the symbolic link in libavcodec.so.51to libavcodec.so.52 which I got from a friend which also uses debian... then the player starts up, but it only plays normal mpegs, so : no divx no flv no avi no dvd ... :-(( in case that it do not find the codecs for them. also the player has problems on initializing the sound interface, sometimes it works in ALSA mode, sometimes not... what did I wrong ? is there a libpackage wrong or missing ? would anyone introduce me how to get it startet ? thank you, ralf moeller From remi at remlab.net Sun Jul 25 10:59:20 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sun, 25 Jul 2010 11:59:20 +0300 Subject: [vlc-devel] vlc does not work on my machine correctly In-Reply-To: <4C4BF6B0.60106@nord-com.net> References: <4C4BF6B0.60106@nord-com.net> Message-ID: <201007251159.20814.remi@remlab.net> Le dimanche 25 juillet 2010 11:32:48 Ralf Moeller, vous avez ?crit : > would anyone introduce me how to get it startet ? Your avcodec version does not match the one that your VLC version needs. This is not a support mailing list. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From juhovh at iki.fi Sun Jul 25 11:27:01 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sun, 25 Jul 2010 12:27:01 +0300 Subject: [vlc-devel] [PATCH 5/6] qt4: Run mainloop on the main thread on OSX In-Reply-To: <201007251007.53253.remi@remlab.net> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <201007242356.21650.remi@remlab.net> <4FF74415-069D-45FC-A634-A5A24F51FEC9@iki.fi> <201007251007.53253.remi@remlab.net> Message-ID: <3428E010-819D-4B73-8FDA-F57876420F07@iki.fi> On 25.7.2010, at 10.07, R?mi Denis-Courmont wrote: > Le dimanche 25 juillet 2010 00:48:28 Juho V?h?-Herttua, vous avez ?crit : >>> That thread looks quite useless. >> >> It looks quite useless, but I plan to use it to start the playlist in the >> middle of those two sem_wait calls. > > You might as well do that after vlc_sem_post() directly. That's one line of > code (plus two lines of ifdef). Could you give your comments on this one? It's basically the one I sent earlier, but makes sure that the semaphore is downed to zero before thread_join on non-OSX as well, and it starts the playlist on OSX. Actually I'm already quite happy with it, now that I can start the video on Qt4 interface by just adding it on command line. It adds just 7 lines of code and moves the vlc_sem_destroy to Close instead of Open. Juho From 036413a0bbe39b942d34f217827ce2aa10c41aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?= Date: Sun, 25 Jul 2010 12:16:37 +0300 Subject: [PATCH] qt4: Run mainloop on the main thread on OSX --- modules/gui/qt4/qt4.cpp | 29 ++++++++++++++++++++++++++--- 1 files changed, 26 insertions(+), 3 deletions(-) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 676a82b..2e19f78 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -324,6 +324,14 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider ) x11_display = display; #endif vlc_sem_init (&ready, 0); +#ifdef Q_WS_MAC + /* Run mainloop thread on first thread instead */ + p_intf->b_should_run_on_first_thread = true; + p_intf->pf_run = (void(*)(intf_thread_t *))Thread; + + /* Avoid hanging up at the sem_wait later */ + vlc_sem_post (&ready); +#else if( vlc_clone( &p_sys->thread, Thread, p_intf, VLC_THREAD_PRIORITY_LOW ) ) { delete p_sys; @@ -333,10 +341,10 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider ) vlc_mutex_unlock (&one.lock); return VLC_ENOMEM; } +#endif - /* */ + /* Wait until the interface is initialized */ vlc_sem_wait (&ready); - vlc_sem_destroy (&ready); if( !p_sys->b_isDialogProvider ) { @@ -374,7 +382,14 @@ static void Close( vlc_object_t *p_this ) QVLCApp::triggerQuit(); + vlc_sem_wait (&ready); +#ifdef Q_WS_MAC + /* One additional wait for additional sem_post */ + vlc_sem_wait (&ready); +#else vlc_join (p_sys->thread, NULL); +#endif + vlc_sem_destroy (&ready); #ifdef Q_WS_X11 free (x11_display); x11_display = NULL; @@ -458,9 +473,14 @@ static void *Thread( void *obj ) /* Explain how to show a dialog :D */ p_intf->pf_show_dialog = ShowDialog; - /* */ + /* Notify that the interface is initialized */ vlc_sem_post (&ready); +#ifdef Q_WS_MAC + /* Start playlist here, because we took over main thread */ + playlist_Play( p_intf->p_sys->p_playlist ); +#endif Q_WS_MAC + /* Last settings */ app.setQuitOnLastWindowClosed( false ); @@ -510,6 +530,9 @@ static void *Thread( void *obj ) /* Destroy the MainInputManager */ MainInputManager::killInstance(); + /* Notify that the interface is cleaned up */ + vlc_sem_post (&ready); + /* Delete the application automatically */ return NULL; } -- 1.6.5.7 -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From remi at remlab.net Sun Jul 25 12:20:44 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sun, 25 Jul 2010 13:20:44 +0300 Subject: [vlc-devel] [PATCH 5/6] qt4: Run mainloop on the main thread on OSX In-Reply-To: <3428E010-819D-4B73-8FDA-F57876420F07@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <201007251007.53253.remi@remlab.net> <3428E010-819D-4B73-8FDA-F57876420F07@iki.fi> Message-ID: <201007251320.44954.remi@remlab.net> Le dimanche 25 juillet 2010 12:27:01 Juho V?h?-Herttua, vous avez ?crit : > On 25.7.2010, at 10.07, R?mi Denis-Courmont wrote: > > Le dimanche 25 juillet 2010 00:48:28 Juho V?h?-Herttua, vous avez ?crit : > >>> That thread looks quite useless. > >> > >> It looks quite useless, but I plan to use it to start the playlist in > >> the middle of those two sem_wait calls. > > > > You might as well do that after vlc_sem_post() directly. That's one line > > of code (plus two lines of ifdef). > > Could you give your comments on this one? It's basically the one I sent > earlier, but makes sure that the semaphore is downed to zero before > thread_join on non-OSX as well, and it starts the playlist on OSX. > Actually I'm already quite happy with it, now that I can start the video > on Qt4 interface by just adding it on command line. It adds just 7 lines > of code and moves the vlc_sem_destroy to Close instead of Open. Looks a bit better. But would things not be an order of magnitude simpler if you did not use b_run_on_first_thread. Why can't you replace: vlc_clone(Thread); with #if !MAC vlc_clone(Thread, p_intf); #else Thread(p_intf); #endif and ignore pf_run as well? -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sun Jul 25 12:28:34 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sun, 25 Jul 2010 13:28:34 +0300 Subject: [vlc-devel] [PATCH 1/6] osx: Add vout_window_t support to macosx vout module In-Reply-To: <1280003474-19517-1-git-send-email-juhovh@iki.fi> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> Message-ID: <201007251328.35259.remi@remlab.net> Le samedi 24 juillet 2010 23:31:09 Juho V?h?-Herttua, vous avez ?crit : > --- > modules/video_output/macosx.m | 31 +++++++++++++++++++++++++++---- > 1 files changed, 27 insertions(+), 4 deletions(-) Merged, thanks. Does full screen mode work? -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From sam at hocevar.net Sun Jul 25 12:45:08 2010 From: sam at hocevar.net (Sam Hocevar) Date: Sun, 25 Jul 2010 12:45:08 +0200 Subject: [vlc-devel] [PATCH] How do we get GBA components if we superimpose all of them on R only In-Reply-To: References: Message-ID: <20100725104508.GA5648@hocevar.net> On Sun, Jul 25, 2010, Pankaj yadav wrote: > And this gives all colour components to Symbian VLC.. - *p_buffer++ = p_ybase[RED_OFFSET-((V_RED_COEF*128)>>SHIFT) + i_red] | + *p_buffer++ = p_ybase[RED_OFFSET-((V_RED_COEF*128)>>SHIFT) + i_red]<<24 | This should not be necessary. Values in p_ybase (which points to either p_rgb16 or p_rgb32) are already shifted when the lookup table is built (using the RGB2PIXEL macro). Can you please print the values in p_filter->fmt_out.video.i_rrshift, i_lrshift etc. when using the chroma filter? My guess is that it is these values that are wrong. -- Sam. From fenrir at elivagar.org Sun Jul 25 13:19:16 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Sun, 25 Jul 2010 13:19:16 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <1279871193-941-1-git-send-email-david@2of1.org> References: <1279871193-941-1-git-send-email-david@2of1.org> Message-ID: <20100725111916.GA28494@elivagar.org> Hi, On Fri, Jul 23, 2010 at 10:46:33AM +0300, David Kaplan wrote: > Adds support for the D2D API on Win7/Vista SP2 with Platform Update > Requires d2d1 contrib headers > diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h > index e023ef4..125fd65 100644 > --- a/modules/video_output/msw/common.h > +++ b/modules/video_output/msw/common.h > @@ -157,6 +157,15 @@ struct vout_display_sys_t > vout_display_opengl_t vgl; > #endif > > +#ifdef MODULE_NAME_IS_direct2d > + HINSTANCE d2_dll; /* handle of the opened d2d1 dll */ > + FLOAT d2_dpi_x; /* DPI x */ > + FLOAT d2_dpi_y; /* DPI y */ It seems that it is not needed to store d2_dpi_x/d2_dpi_y into the private context. > + ID2D1Factory *d2_factory; /* D2D factory */ > + ID2D1HwndRenderTarget *d2_render_target; /* D2D rendering target */ > + ID2D1Bitmap *d2_bitmap; /* D2 bitmap */ > +#endif > diff --git a/modules/video_output/msw/direct2d.c b/modules/video_output/msw/direct2d.c > new file mode 100644 > index 0000000..880c240 > --- /dev/null > +++ b/modules/video_output/msw/direct2d.c > @@ -0,0 +1,422 @@ > +/***************************************************************************** > + * direct2d.c : Direct2D video output plugin for vlc (Win7/Vista SP2 PF Update) > + ***************************************************************************** > + * Copyright (C) 2010 VideoLAN and AUTHORS > + * $Id$ > + * > + * Author: David Kaplan > + * > + * 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 > + * (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. > + * > + * 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. > + *****************************************************************************/ > + > +/***************************************************************************** > + * Preamble > + *****************************************************************************/ > + > +#ifdef HAVE_CONFIG_H > +# include "config.h" > +#endif > +#include > + > +#include > +#include > +#include > +#include > + > +#include > +#include > + > +#include > + > +#include "common.h" > + > +#include > +#undef GUID_EXT > +#define GUID_EXT > +DEFINE_GUID(IID_ID2D1Factory, 0x6152247, 0x6f50, 0x465a, 0x92, 0x45, 0x11, 0x8b, 0xfd, 0x3b, 0x60, 0x7); > + > +#ifndef WS_NONAVDONEBUTTON > +# define WS_NONAVDONEBUTTON 0 > +#endif Is it needed ? > + > +/***************************************************************************** > + * Module descriptor > + *****************************************************************************/ > +static int Open (vlc_object_t *); > +static void Close(vlc_object_t *); > + > +#define D2D_HELP N_("Video output for Windows 7/Windows Vista with Platform update") > + > +vlc_module_begin () > + set_category(CAT_VIDEO) > + set_subcategory(SUBCAT_VIDEO_VOUT) > + set_help(D2D_HELP) > + set_shortname("Direct2D") > + set_description(N_("Direct2D video output")) > + set_capability("vout display", 10) I wonder what its priority should be. If it is better/faster than gdi (and it should be when d2d support is present), I think it should have a priority a bit higher. > + add_shortcut("direct2d") > + set_callbacks(Open, Close) > +vlc_module_end () > +/** > + * Performs set up of ID2D1Bitmap memory ready for blitting > + */ > +static void Prepare(vout_display_t *vd, picture_t *picture) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + if (sys->d2_render_target && sys->d2_bitmap) > + { Bad { placement. > + /* This seems unnecessary > + D2D1_RECT_U r_src = { > + sys->rect_src_clipped.left, > + sys->rect_src_clipped.top, > + sys->rect_src_clipped.right, > + sys->rect_src_clipped.bottom > + }; > + */ Have you tested with crop(yes), zoom, auto-scale, aspect ratio, and various combination of them? (All in the Video menu). > + > + HRESULT hr = ID2D1Bitmap_CopyFromMemory(sys->d2_bitmap, > + NULL /*&r_src*/, > + picture->p[0].p_pixels, > + picture->p[0].i_pitch); About our previous discussion, it seems that pitch != width * 4 is fine. From msdn: "pitch UINT32 The stride, or pitch, of the source bitmap stored in srcData. The stride is the byte count of a scanline (one row of pixels in memory). The stride can be computed from the following formula: pixel width * bytes per pixel + memory padding." > + if (hr != S_OK) > + msg_Err(vd, "Failed to copy bitmap memory (hr = 0x%x)!", > + (unsigned)hr); > + > +#ifndef NDEBUG > + /*msg_Dbg(vd, "Bitmap dbg: target = %p, pitch = %d, bitmap = %p", > + sys->d2_render_target, pitch, sys->d2_bitmap);*/ > +#endif > + } > +} > + > +/** > + * Blits a scaled picture_t to the render target > + */ > +static void Display(vout_display_t *vd, picture_t *picture) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + D2D1_RECT_F r_dest = { > + sys->rect_dest.left, > + sys->rect_dest.top, > + sys->rect_dest.right, > + sys->rect_dest.bottom > + }; > + > + if (sys->d2_render_target && sys->d2_bitmap) { > + ID2D1HwndRenderTarget_BeginDraw(sys->d2_render_target); > + > + ID2D1HwndRenderTarget_DrawBitmap(sys->d2_render_target, > + sys->d2_bitmap, > + &r_dest, > + 1.0f, > + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, > + NULL); > + > + ID2D1HwndRenderTarget_EndDraw(sys->d2_render_target, NULL, NULL); From msdn I see "Your application should create render targets once and hold onto them for the life of the application or until the render target's EndDraw method returns the D2DERR_RECREATE_TARGET error. When you receive this error, you need to recreate the render target (and any resources it created)." So it seems that you need to check for EndDraw error code and recreate the resources when needed. You can see how d3d does it. > + } > + > + picture_Release(picture); > + > + CommonDisplay(vd); > +} > + > + /** > + * Control event handler > + */ > +static int Control(vout_display_t *vd, int query, va_list args) > +{ > + return CommonControl(vd, query, args); > +} > + > +/** > + * Handles surface management > + * ID2D1RenderTargets cannot be resized and must be recreated > + */ > +static void Manage(vout_display_t *vd) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + CommonManage(vd); > + > + if (sys->changes & DX_POSITION_CHANGE) { > + D2D_ResizeRenderTarget(vd); > + sys->changes &= ~DX_POSITION_CHANGE; > + } > +} > + > +/** > + * Creates a ID2D1HwndRenderTarget and associated ID2D1Bitmap > + */ > +static int D2D_CreateRenderTarget(vout_display_t *vd) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + sys->d2_render_target = NULL; > + > + D2D1_PIXEL_FORMAT pf = { > + DXGI_FORMAT_B8G8R8A8_UNORM, > + D2D1_ALPHA_MODE_IGNORE > + }; As you now only require RGB32, is it possible to set a correct RGB mask in Open() ? > + > + D2D1_RENDER_TARGET_PROPERTIES rtp = { > + D2D1_RENDER_TARGET_TYPE_DEFAULT, > + pf, > + 0, > + 0, > + D2D1_RENDER_TARGET_USAGE_NONE, > + D2D1_FEATURE_LEVEL_DEFAULT > + }; > + > + D2D1_SIZE_U size = { > + sys->rect_dest.right - sys->rect_dest.left, > + sys->rect_dest.bottom - sys->rect_dest.top > + }; > + > + D2D1_HWND_RENDER_TARGET_PROPERTIES hrtp = { > + sys->hvideownd, > + size, > + D2D1_PRESENT_OPTIONS_IMMEDIATELY /* this might need fiddling */ > + }; > + Regards, -- fenrir From fenrir at elivagar.org Sun Jul 25 13:30:57 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Sun, 25 Jul 2010 13:30:57 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <1279871193-941-1-git-send-email-david@2of1.org> References: <1279871193-941-1-git-send-email-david@2of1.org> Message-ID: <20100725113057.GA31757@elivagar.org> Btw, where can I found the d2d1.h header you use for testing the module ? -- fenrir From fenrir at elivagar.org Sun Jul 25 13:58:18 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Sun, 25 Jul 2010 13:58:18 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100725111916.GA28494@elivagar.org> References: <1279871193-941-1-git-send-email-david@2of1.org> <20100725111916.GA28494@elivagar.org> Message-ID: <20100725115818.GA702@elivagar.org> On Sun, Jul 25, 2010 at 01:19:16PM +0200, Laurent Aimar wrote: > > + if (sys->d2_render_target && sys->d2_bitmap) { > > + ID2D1HwndRenderTarget_BeginDraw(sys->d2_render_target); > > + > > + ID2D1HwndRenderTarget_DrawBitmap(sys->d2_render_target, > > + sys->d2_bitmap, > > + &r_dest, > > + 1.0f, > > + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, > > + NULL); > > + > > + ID2D1HwndRenderTarget_EndDraw(sys->d2_render_target, NULL, NULL); > From msdn I see > "Your application should create render targets once and hold onto them for the > life of the application or until the render target's EndDraw method returns the > D2DERR_RECREATE_TARGET error. When you receive this error, you need to recreate > the render target (and any resources it created)." > > So it seems that you need to check for EndDraw error code and recreate the > resources when needed. You can see how d3d does it. d3d will be a bad example as you don't have the same constraints. I think that you simply need to call D2D_DestroyRenderTarget and D2D_ResizeRenderTarget. That makes me think that > info.has_pictures_invalid = true; in the open function should be changed to > info.has_pictures_invalid = false; as in fact you never need to recreate the picture pool. -- fenrir From david at 2of1.org Sun Jul 25 14:28:53 2010 From: david at 2of1.org (David Kaplan) Date: Sun, 25 Jul 2010 15:28:53 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100725111916.GA28494@elivagar.org> References: <1279871193-941-1-git-send-email-david@2of1.org> <20100725111916.GA28494@elivagar.org> Message-ID: On 25 July 2010 14:19, Laurent Aimar wrote: > It seems that it is not needed to store d2_dpi_x/d2_dpi_y into the > private > context. > You're correct. > +#ifndef WS_NONAVDONEBUTTON > +# define WS_NONAVDONEBUTTON 0 > +#endif > Is it needed ? > Nope. > I wonder what its priority should be. If it is better/faster than gdi (and > it should be when d2d support is present), I think it should have a > priority > a bit higher. > Yes it's better than GDI. I'll increase the priority. > + if (sys->d2_render_target && sys->d2_bitmap) > + { > Bad { placement. > Good spot. > Have you tested with crop(yes), zoom, auto-scale, aspect ratio, and > various > combination of them? (All in the Video menu). > I tested a WHOLE bunch but it was quite random so no sure if i missed stuff out. Will test more. About our previous discussion, it seems that pitch != width * 4 is fine. > From msdn: > "pitch > UINT32 > The stride, or pitch, of the source bitmap stored in srcData. The stride > is the byte count of a scanline (one row of pixels in memory). The stride > can be computed from the following formula: > pixel width * bytes per pixel + memory padding." > Yes it seems that way (I'm already using i_pitch) :) From msdn I see > "Your application should create render targets once and hold onto them for > the > life of the application or until the render target's EndDraw method > returns the > D2DERR_RECREATE_TARGET error. When you receive this error, you need to > recreate > the render target (and any resources it created)." > > So it seems that you need to check for EndDraw error code and recreate the > resources when needed. You can see how d3d does it. > I'm not sure what would cause D2DERR_RECREATE_TARGET but I suppose we should handle it. > + D2D1_PIXEL_FORMAT pf = { > > + DXGI_FORMAT_B8G8R8A8_UNORM, > > + D2D1_ALPHA_MODE_IGNORE > > + }; > As you now only require RGB32, is it possible to set a correct RGB mask > in Open() ? > What do you mean? Have I set it incorrectly? (An aside: I also hope to add some YUV->RGB DirectCompute support which should speed things up nicely. At least until Microsoft sort out native YUV support for D2D). Thanks as always! -------------- next part -------------- An HTML attachment was scrubbed... URL: From david at 2of1.org Sun Jul 25 14:39:36 2010 From: david at 2of1.org (David Kaplan) Date: Sun, 25 Jul 2010 15:39:36 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100725115818.GA702@elivagar.org> References: <1279871193-941-1-git-send-email-david@2of1.org> <20100725111916.GA28494@elivagar.org> <20100725115818.GA702@elivagar.org> Message-ID: On 25 July 2010 14:58, Laurent Aimar wrote: > > > So it seems that you need to check for EndDraw error code and recreate > the > > resources when needed. You can see how d3d does it. > d3d will be a bad example as you don't have the same constraints. > I think that you simply need to call D2D_DestroyRenderTarget and > D2D_ResizeRenderTarget. > > That makes me think that > > info.has_pictures_invalid = true; > in the open function should be changed to > > info.has_pictures_invalid = false; > as in fact you never need to recreate the picture pool. > > Will change that. If it's destroyed, we need to call Create again. Resize will fail unless there is a render target and according to the msdn docs, it needs to be recreated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From david at 2of1.org Sun Jul 25 14:58:45 2010 From: david at 2of1.org (David Kaplan) Date: Sun, 25 Jul 2010 15:58:45 +0300 Subject: [vlc-devel] GSoC status In-Reply-To: References: Message-ID: On Sat, Jul 24, 2010 at 8:55 PM, Pankaj yadav wrote: > Hi, > > Its been 2 weeks I am working on video and finally I got Red pixels of > video drawn on opengl primitives.Link to a Snashot : > > > http://img412.imageshack.us/img412/9435/vlcvideo.png This looks fantastic! P.S. I've done some Symbian dev work and I have N52 so if you need a tester... -- http://blog.2of1.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From david at 2of1.org Sun Jul 25 15:03:11 2010 From: david at 2of1.org (David Kaplan) Date: Sun, 25 Jul 2010 16:03:11 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module Message-ID: <1280062991-20707-1-git-send-email-david@2of1.org> Adds support for the D2D API on Win7/Vista SP2 with Platform Update Requires d2d1 contrib headers --- configure.ac | 17 ++ modules/video_output/msw/Modules.am | 8 + modules/video_output/msw/common.c | 9 +- modules/video_output/msw/common.h | 7 + modules/video_output/msw/direct2d.c | 425 +++++++++++++++++++++++++++++++++++ modules/video_output/msw/events.c | 3 + 6 files changed, 466 insertions(+), 3 deletions(-) create mode 100644 modules/video_output/msw/direct2d.c diff --git a/configure.ac b/configure.ac index 8a8701e..738f631 100644 --- a/configure.ac +++ b/configure.ac @@ -3490,6 +3490,23 @@ then fi dnl +dnl Windows Direct2D plugin +dnl +AC_ARG_ENABLE(direct2d, + [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)]) +if test "${enable_direct2d}" != "no"; then + if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" + then + AC_CHECK_HEADERS(d2d1.h, + [ + VLC_ADD_PLUGIN([direct2d]) + VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32]) + ], [AC_MSG_WARN([Cannot find Direct2D headers!])] + ) + fi +fi + +dnl dnl win32 GDI plugin dnl AC_ARG_ENABLE(wingdi, diff --git a/modules/video_output/msw/Modules.am b/modules/video_output/msw/Modules.am index 51807c8..0613bae 100644 --- a/modules/video_output/msw/Modules.am +++ b/modules/video_output/msw/Modules.am @@ -1,3 +1,11 @@ +SOURCES_direct2d = \ + direct2d.c \ + common.h \ + events.h \ + events.c \ + common.c \ + $(NULL) + SOURCES_directx = \ directx.c \ common.h \ diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c index 5704d5c..fddbd3d 100644 --- a/modules/video_output/msw/common.c +++ b/modules/video_output/msw/common.c @@ -48,6 +48,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include "common.h" @@ -379,7 +382,7 @@ void UpdateRects(vout_display_t *vd, SWP_NOCOPYBITS|SWP_NOZORDER|SWP_ASYNCWINDOWPOS); /* Destination image position and dimensions */ -#if defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) rect_dest.left = 0; rect_dest.right = place.width; rect_dest.top = 0; @@ -398,7 +401,7 @@ void UpdateRects(vout_display_t *vd, #endif -#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* UpdateOverlay directdraw function doesn't automatically clip to the * display size so we need to do it otherwise it will fail * It is also needed for d3d to avoid exceding our surface size */ @@ -457,7 +460,7 @@ void UpdateRects(vout_display_t *vd, /* Apply overlay hardware constraints */ if (sys->use_overlay) AlignRect(&rect_src_clipped, sys->i_align_src_boundary, sys->i_align_src_size); -#elif defined(MODULE_NAME_IS_direct3d) +#elif defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* Needed at least with YUV content */ rect_src_clipped.left &= ~1; rect_src_clipped.right &= ~1; diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h index e023ef4..3a67c7d 100644 --- a/modules/video_output/msw/common.h +++ b/modules/video_output/msw/common.h @@ -157,6 +157,13 @@ struct vout_display_sys_t vout_display_opengl_t vgl; #endif +#ifdef MODULE_NAME_IS_direct2d + HINSTANCE d2_dll; /* handle of the opened d2d1 dll */ + ID2D1Factory *d2_factory; /* D2D factory */ + ID2D1HwndRenderTarget *d2_render_target; /* D2D rendering target */ + ID2D1Bitmap *d2_bitmap; /* D2 bitmap */ +#endif + #ifdef MODULE_NAME_IS_direct3d bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ /* show video on desktop window ? */ diff --git a/modules/video_output/msw/direct2d.c b/modules/video_output/msw/direct2d.c new file mode 100644 index 0000000..f55b2c7 --- /dev/null +++ b/modules/video_output/msw/direct2d.c @@ -0,0 +1,425 @@ +/***************************************************************************** + * direct2d.c : Direct2D video output plugin for vlc (Win7/Vista SP2 PF Update) + ***************************************************************************** + * Copyright (C) 2010 VideoLAN and AUTHORS + * $Id$ + * + * Author: David Kaplan + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +/***************************************************************************** + * Preamble + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif +#include + +#include +#include +#include +#include + +#include +#include + +#include + +#include "common.h" + +#include +#undef GUID_EXT +#define GUID_EXT +DEFINE_GUID(IID_ID2D1Factory, 0x6152247, 0x6f50, 0x465a, 0x92, 0x45, 0x11, 0x8b, 0xfd, 0x3b, 0x60, 0x7); + +/***************************************************************************** + * Module descriptor + *****************************************************************************/ +static int Open (vlc_object_t *); +static void Close(vlc_object_t *); + +#define D2D_HELP N_("Video output for Windows 7/Windows Vista with Platform update") + +vlc_module_begin () + set_category(CAT_VIDEO) + set_subcategory(SUBCAT_VIDEO_VOUT) + set_help(D2D_HELP) + set_shortname("Direct2D") + set_description(N_("Direct2D video output")) + set_capability("vout display", 60) + add_shortcut("direct2d") + set_callbacks(Open, Close) +vlc_module_end () + + +/***************************************************************************** + * Local prototypes + *****************************************************************************/ +static picture_pool_t *Pool (vout_display_t *, unsigned); +static void Prepare(vout_display_t *, picture_t *); +static void Display(vout_display_t *, picture_t *); +static int Control(vout_display_t *, int, va_list); +static void Manage (vout_display_t *); + +static int D2D_CreateRenderTarget(vout_display_t *vd); +static void D2D_ResizeRenderTarget(vout_display_t *vd); +static void D2D_DestroyRenderTarget(vout_display_t *vd); + +/** + * Initialises Direct2D vout module + */ +static int Open(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + vout_display_sys_t *sys; + + vd->sys = sys = calloc(1, sizeof(*sys)); + if (!sys) + return VLC_ENOMEM; + + sys->d2_render_target = NULL; + + sys->d2_dll = LoadLibrary(TEXT("D2D1.DLL")); + if (!sys->d2_dll) { + if (object->b_force) + msg_Err(vd, "Cannot load D2D1.DLL, aborting"); + goto error; + } + + D2D1_FACTORY_OPTIONS fo = { + D2D1_DEBUG_LEVEL_NONE + }; + + HRESULT (WINAPI *D2D1CreateFactory)(D2D1_FACTORY_TYPE, REFIID, + const D2D1_FACTORY_OPTIONS *, + void **); + + D2D1CreateFactory = (void *)GetProcAddress(sys->d2_dll, + TEXT("D2D1CreateFactory")); + if (!D2D1CreateFactory) { + msg_Err(vd, + "Cannot locate reference to a D2D1CreateFactory ABI in D2D1.DLL"); + goto error; + } + +#ifndef NDEBUG + msg_Dbg(vd, "D2D1.DLL loaded"); +#endif + + HRESULT hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, + (REFIID)&IID_ID2D1Factory, + &fo, + (void **)&sys->d2_factory); + if (hr != S_OK) { + msg_Err(vd, "Cannot create Direct2D factory (hr = 0x%x)!", + (unsigned)hr); + goto error; + } + + if (CommonInit(vd)) + goto error; + + if (D2D_CreateRenderTarget(vd) != VLC_SUCCESS) + goto error; + + vout_display_info_t info = vd->info; + info.is_slow = false; + info.has_double_click = true; + info.has_hide_mouse = true; + info.has_pictures_invalid = false; + vd->info = info; + + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 for ID2D1Bitmap */ + vd->fmt.i_rmask = 0x000000ff; + vd->fmt.i_gmask = 0x0000ff00; + vd->fmt.i_bmask = 0x00000000; + + vd->pool = Pool; + vd->prepare = Prepare; + vd->display = Display; + vd->manage = Manage; + vd->control = Control; + + EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct2D output)"); + +#ifndef NDEBUG + msg_Dbg(vd, "Ready"); +#endif + + return VLC_SUCCESS; + +error: + Close(VLC_OBJECT(vd)); + return VLC_EGENERIC; +} + +/** + * Close Direct2D vout + */ +static void Close(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + + D2D_DestroyRenderTarget(vd); + + if (vd->sys->pool) + picture_pool_Delete(vd->sys->pool); + + CommonClean(vd); + + free(vd->sys); +} + +/** + * Handles pool allocations for bitmaps + */ +static picture_pool_t *Pool(vout_display_t *vd, unsigned count) +{ + vout_display_sys_t *sys = vd->sys; + + if (!sys->pool) { + sys->pool = picture_pool_NewFromFormat(&vd->fmt, count); +#ifndef NDEBUG + msg_Dbg(vd, "New picture pool created"); +#endif + } + + return sys->pool; +} + +/** + * Performs set up of ID2D1Bitmap memory ready for blitting + */ +static void Prepare(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + if (sys->d2_render_target && sys->d2_bitmap) { + /* This seems unnecessary + D2D1_RECT_U r_src = { + sys->rect_src_clipped.left, + sys->rect_src_clipped.top, + sys->rect_src_clipped.right, + sys->rect_src_clipped.bottom + }; + */ + + HRESULT hr = ID2D1Bitmap_CopyFromMemory(sys->d2_bitmap, + NULL /*&r_src*/, + picture->p[0].p_pixels, + picture->p[0].i_pitch); + if (hr != S_OK) + msg_Err(vd, "Failed to copy bitmap memory (hr = 0x%x)!", + (unsigned)hr); + +#ifndef NDEBUG + /*msg_Dbg(vd, "Bitmap dbg: target = %p, pitch = %d, bitmap = %p", + sys->d2_render_target, pitch, sys->d2_bitmap);*/ +#endif + } +} + +/** + * Blits a scaled picture_t to the render target + */ +static void Display(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_RECT_F r_dest = { + sys->rect_dest.left, + sys->rect_dest.top, + sys->rect_dest.right, + sys->rect_dest.bottom + }; + + if (sys->d2_render_target && sys->d2_bitmap) { + ID2D1HwndRenderTarget_BeginDraw(sys->d2_render_target); + + ID2D1HwndRenderTarget_DrawBitmap(sys->d2_render_target, + sys->d2_bitmap, + &r_dest, + 1.0f, + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, + NULL); + + HRESULT hr = ID2D1HwndRenderTarget_EndDraw(sys->d2_render_target, + NULL, + NULL); + if (hr == D2DERR_RECREATE_TARGET) { + D2D_DestroyRenderTarget(vd); + D2D_CreateRenderTarget(vd); + } + } + + picture_Release(picture); + + CommonDisplay(vd); +} + + /** + * Control event handler + */ +static int Control(vout_display_t *vd, int query, va_list args) +{ + return CommonControl(vd, query, args); +} + +/** + * Handles surface management + * ID2D1RenderTargets cannot be resized and must be recreated + */ +static void Manage(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + CommonManage(vd); + + if (sys->changes & DX_POSITION_CHANGE) { + D2D_ResizeRenderTarget(vd); + sys->changes &= ~DX_POSITION_CHANGE; + } +} + +/** + * Creates a ID2D1HwndRenderTarget and associated ID2D1Bitmap + */ +static int D2D_CreateRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + sys->d2_render_target = NULL; + + D2D1_PIXEL_FORMAT pf = { + DXGI_FORMAT_B8G8R8A8_UNORM, + D2D1_ALPHA_MODE_IGNORE + }; + + D2D1_RENDER_TARGET_PROPERTIES rtp = { + D2D1_RENDER_TARGET_TYPE_DEFAULT, + pf, + 0, + 0, + D2D1_RENDER_TARGET_USAGE_NONE, + D2D1_FEATURE_LEVEL_DEFAULT + }; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + D2D1_HWND_RENDER_TARGET_PROPERTIES hrtp = { + sys->hvideownd, + size, + D2D1_PRESENT_OPTIONS_IMMEDIATELY /* this might need fiddling */ + }; + + HRESULT hr = ID2D1Factory_CreateHwndRenderTarget(sys->d2_factory, + &rtp, + &hrtp, + &sys->d2_render_target); + if (hr != S_OK) { + msg_Err(vd, "Cannot create render target (hvideownd = 0x%x, width = %d, height = %d, pf.format = %d, hr = 0x%x)!", + (unsigned)hrtp.hwnd, hrtp.pixelSize.width, + hrtp.pixelSize.height, pf.format, (unsigned)hr); + + sys->d2_render_target = NULL; + + return VLC_EGENERIC; + } + + FLOAT dpi_x, dpi_y; + + ID2D1Factory_GetDesktopDpi(sys->d2_factory, + &dpi_x, + &dpi_y); + + D2D1_BITMAP_PROPERTIES bp = { + pf, + dpi_x, + dpi_y + }; + + D2D1_SIZE_U bitmap_size = { + vd->fmt.i_width, + vd->fmt.i_height + }; + + hr = ID2D1HwndRenderTarget_CreateBitmap(sys->d2_render_target, + bitmap_size, + NULL, + 0, + &bp, + &sys->d2_bitmap); + if (hr != S_OK) { + msg_Err(vd, "Failed to create bitmap (hr = 0x%x)!", (unsigned)hr); + + sys->d2_bitmap = NULL; + D2D_DestroyRenderTarget(vd); + + return VLC_EGENERIC; + } + +#ifndef NDEBUG + msg_Dbg(vd, "Render trgt dbg: dpi = %f, render_target = %p, bitmap = %p", + dpi_x, sys->d2_render_target, sys->d2_bitmap); +#endif + + return VLC_SUCCESS; +} + +/** + * Resizes a ID2D1HWndRenderTarget + */ +static void D2D_ResizeRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + HRESULT hr = ID2D1HwndRenderTarget_Resize(sys->d2_render_target, &size); + if (hr != S_OK) + msg_Err(vd, "Cannot resize render target (width = %d, height = %d, hr = 0x%x)!", + size.width, size.height, (unsigned)hr); +} + +/** + * Cleans up ID2D1HwndRenderTarget and ID2D1Bitmap + */ +static void D2D_DestroyRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + if (sys->d2_render_target) { + ID2D1HwndRenderTarget_Release(sys->d2_render_target); + sys->d2_render_target = NULL; + } + + if (sys->d2_bitmap) { + ID2D1Bitmap_Release(sys->d2_bitmap); + sys->d2_bitmap = NULL; + } + +#ifndef NDEBUG + msg_Dbg(vd, "Destroyed"); +#endif +} diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c index d2d5e26..46c15c4 100644 --- a/modules/video_output/msw/events.c +++ b/modules/video_output/msw/events.c @@ -49,6 +49,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include #include "common.h" -- 1.7.0.4 From juhovh at iki.fi Sun Jul 25 17:22:44 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sun, 25 Jul 2010 18:22:44 +0300 Subject: [vlc-devel] [PATCH 1/6] osx: Add vout_window_t support to macosx vout module In-Reply-To: <201007251328.35259.remi@remlab.net> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <201007251328.35259.remi@remlab.net> Message-ID: <005A0D1C-225B-4C1F-BBAF-738D7AB95D72@iki.fi> On 25.7.2010, at 13.28, R?mi Denis-Courmont wrote: > Le samedi 24 juillet 2010 23:31:09 Juho V?h?-Herttua, vous avez ?crit : >> --- >> modules/video_output/macosx.m | 31 +++++++++++++++++++++++++++---- >> 1 files changed, 27 insertions(+), 4 deletions(-) > > Merged, thanks. Does full screen mode work? Nope, full screen fails but I'll see into it later. On Qt4 the "Fullscreen Interface (F11)" option from the menu can be used though. Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From juhovh at iki.fi Sun Jul 25 17:47:10 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sun, 25 Jul 2010 18:47:10 +0300 Subject: [vlc-devel] [PATCH 5/6] qt4: Run mainloop on the main thread on OSX In-Reply-To: <201007251320.44954.remi@remlab.net> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <201007251007.53253.remi@remlab.net> <3428E010-819D-4B73-8FDA-F57876420F07@iki.fi> <201007251320.44954.remi@remlab.net> Message-ID: On 25.7.2010, at 13.20, R?mi Denis-Courmont wrote: > Le dimanche 25 juillet 2010 12:27:01 Juho V?h?-Herttua, vous avez ?crit : >> On 25.7.2010, at 10.07, R?mi Denis-Courmont wrote: >>> Le dimanche 25 juillet 2010 00:48:28 Juho V?h?-Herttua, vous avez ?crit : >>>>> That thread looks quite useless. >>>> >>>> It looks quite useless, but I plan to use it to start the playlist in >>>> the middle of those two sem_wait calls. >>> >>> You might as well do that after vlc_sem_post() directly. That's one line >>> of code (plus two lines of ifdef). >> >> Could you give your comments on this one? It's basically the one I sent >> earlier, but makes sure that the semaphore is downed to zero before >> thread_join on non-OSX as well, and it starts the playlist on OSX. >> Actually I'm already quite happy with it, now that I can start the video >> on Qt4 interface by just adding it on command line. It adds just 7 lines >> of code and moves the vlc_sem_destroy to Close instead of Open. > > Looks a bit better. But would things not be an order of magnitude simpler if > you did not use b_run_on_first_thread. Why can't you replace: > > vlc_clone(Thread); > > with > > #if !MAC > vlc_clone(Thread, p_intf); > #else > Thread(p_intf); > #endif > > and ignore pf_run as well? I'm not sure if it is a good idea or not... I did it like this before, but then again I would like to be able to quit gracefully when the user selects "Quit VLC" option from the menu or from the icon popup menu. The b_run_on_first_thread hack does exactly this with its MonitorLibVLCDeath thread, allowing me to execute any code after libvlc_Quit() there. Without it the player just gets stuck forever in the Qt4 main loop with no one telling it to quit. This would be possible to patch in the Qt4 interface itself as well, if it could be made sure that the app.exec() returns when user selects quit by calling QVLCApp::triggerQuit(). What it does currently is calling DialogsProvider::quit() which in turn calls libvlc_Quit(). Simply adding QVLCApp::triggerQuit() there before libvlc_Quit() should do the job, but I should duplicate the "if( !p_sys->b_isDialogProvider )" code inside the Thread in qt4.cpp, which would make it uglier again. All comments are welcome, since after this patch the Qt4 interface of master already plays video quite nicely on Mac. After modifying the MonitorLibVLCDeath to actually call pf_deactivate it also quits very nicely. I can do it any way you guys want me to, just tell me what's the best option. :) Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From pankajdnapster at gmail.com Sun Jul 25 17:48:49 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Sun, 25 Jul 2010 08:48:49 -0700 Subject: [vlc-devel] Hope you like it Message-ID: http://img8.imageshack.us/img8/6141/vlcvideo2.png -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Sun Jul 25 18:06:27 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sun, 25 Jul 2010 19:06:27 +0300 Subject: [vlc-devel] [PATCH 5/6] qt4: Run mainloop on the main thread on OSX In-Reply-To: References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <201007251320.44954.remi@remlab.net> Message-ID: <201007251906.28009.remi@remlab.net> Le dimanche 25 juillet 2010 18:47:10 Juho V?h?-Herttua, vous avez ?crit : > I did it like this before, but then again I would like to be able to quit > gracefully when the user selects "Quit VLC" option from the menu or from > the icon popup menu. That's only part of the problem. You should also be able to quit if something other than the Qt4 interface calls libvlc_Quit(). > The b_run_on_first_thread hack does exactly this with > its MonitorLibVLCDeath thread, allowing me to execute any code after > libvlc_Quit() there. Without it the player just gets stuck forever in the > Qt4 main loop with no one telling it to quit. libvlc_SetExitHandler() does that in much cleaner manner. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From beauze.h at gmail.com Sun Jul 25 19:02:11 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Sun, 25 Jul 2010 19:02:11 +0200 Subject: [vlc-devel] [Patch 1/3] avcodec: Allow usage of VLC_CODEC_RGBA In-Reply-To: <201007241929.47516.remi@remlab.net> References: <201007241929.47516.remi@remlab.net> Message-ID: It was declared in the 0.5.2 FFmpeg release. If i'm not mistaking the lowest supported version for libavcodec is 52.25. The libavcodec version seems to be 52.20.1 for 0.5.2 FFmpeg release, so i'd say yes. Though i'm not realy familier with ffmpeg releases, nor vlc's build dependencies... 2010/7/24 R?mi Denis-Courmont : > Le vendredi 23 juillet 2010 01:31:30 Hugo Beauzee-Luyssen, vous avez ?crit : >> Hi, >> >> Right now, VLC_CODEC_RGBA is disabled by : >> #if defined(PIX_FMT_RGBA) >> Though, PIX_FMT_RGBA appears to be an enum member, not a define, and >> thus is never defined to the preprocessor. > > Is it declared in the lowest VLC-supported version of lavc ? > > -- > R?mi Denis-Courmont > http://www.remlab.net/ > http://fi.linkedin.com/in/remidenis > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -- Hugo Beauz?e-Luyssen From juhovh at iki.fi Sun Jul 25 19:07:42 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sun, 25 Jul 2010 20:07:42 +0300 Subject: [vlc-devel] [PATCH 5/6] qt4: Run mainloop on the main thread on OSX In-Reply-To: <201007251906.28009.remi@remlab.net> References: <1280003474-19517-1-git-send-email-juhovh@iki.fi> <201007251320.44954.remi@remlab.net> <201007251906.28009.remi@remlab.net> Message-ID: <51A6EB7B-9DE3-4D84-8DC3-A60C39FA0D07@iki.fi> On 25.7.2010, at 19.06, R?mi Denis-Courmont wrote: >> The b_run_on_first_thread hack does exactly this with >> its MonitorLibVLCDeath thread, allowing me to execute any code after >> libvlc_Quit() there. Without it the player just gets stuck forever in the >> Qt4 main loop with no one telling it to quit. > > libvlc_SetExitHandler() does that in much cleaner manner. The libvlc_SetExitHandler() indeed seems much better than the MonitorLibVLCDeath thread. I don't want to use it for all Mac interface modules though, which means I should set a flag in the Open function if it should be used or not. Basically this means b_run_on_first_thread hack again... Calling libvlc_SetExitHandler() from qt4 interface seems a bit too ugly, and I don't think any interface code should go to mess with the core internals. What I would really want to do most is to add a function pointer to intf_thread_t that would be registered to libvlc_SetExitHandler(). It would call QVLCApp::triggerQuit() and nothing else to get the interface module out of the QApplication main loop, everything else should work fine after that. But I think we're trying to get rid of hacks instead of adding more of them. The options I see here are: 1) Call libvlc_SetExitHandler() directly from the Qt4 interface module, UGLY 2) Keep the b_run_on_first_thread hack and add another function pointer to intf_thread_t for exit handler, UGLY 3) Keep the b_run_on_first_thread hack, rewrite MonitorLibVLCDeath to use libvlc_SetExitHandler, call Close manually somehow and hack around to prevent core from calling it twice, UGLY 4) ??? 5) Profit! Number 1 would make the qt4 interface access the core internals, number 2 would require adding more hacks to intf_thread_t, number 3 is what I've done so far. (except changing the MonitorLibVLCDeath into SetExitHandler part) Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From remi at remlab.net Sun Jul 25 19:08:24 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sun, 25 Jul 2010 20:08:24 +0300 Subject: [vlc-devel] [Patch 1/3] avcodec: Allow usage of VLC_CODEC_RGBA In-Reply-To: References: Message-ID: <201007252008.25121.remi@remlab.net> Le vendredi 23 juillet 2010 01:31:30 Hugo Beauzee-Luyssen, vous avez ?crit : > Right now, VLC_CODEC_RGBA is disabled by : > #if defined(PIX_FMT_RGBA) > Though, PIX_FMT_RGBA appears to be an enum member, not a define, and > thus is never defined to the preprocessor. Merged, thanks. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Sun Jul 25 19:24:52 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 25 Jul 2010 19:24:52 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Remove_sup?= =?iso-8859-1?q?port_for_V4L_version_1_=28_R=E9mi_Denis-Courmont_?= =?iso-8859-1?q?=29?= In-Reply-To: <20100725171309.03FF210D226@albiero.videolan.org> References: <20100725171309.03FF210D226@albiero.videolan.org> Message-ID: <20100725172452.GA15299@videolan.org> On Sun, Jul 25, 2010 at 07:13:08PM +0200, git at videolan.org wrote : > vlc | branch: master | R?mi Denis-Courmont | Sun Jul 25 20:12:44 2010 +0300| [657fff36d7b2ea46b1dfe5bd5c21c4395f28b245] | committer: R?mi Denis-Courmont > > Remove support for V4L version 1 I CAN HAZ NEWS, PLZ? From jb at videolan.org Sun Jul 25 19:30:40 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 25 Jul 2010 19:30:40 +0200 Subject: [vlc-devel] [vlc-commits] commit: Qt: sprefs_interface split playlist option (Francois Cartegnie ) In-Reply-To: <20100725172927.029CB10D249@albiero.videolan.org> References: <20100725172927.029CB10D249@albiero.videolan.org> Message-ID: <20100725173040.GA16250@videolan.org> On Sun, Jul 25, 2010 at 07:29:26PM +0200, git at videolan.org wrote : > vlc | branch: master | Francois Cartegnie | Sun Jul 25 19:11:27 2010 +0200| [a241b3c73b8b96d8b18a27855e658b2cfbe7e224] | committer: Francois Cartegnie > > Qt: sprefs_interface split playlist option SPref interface is already too high... This makes it even worse... Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From fcvlcdev at free.fr Sun Jul 25 19:43:53 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Sun, 25 Jul 2010 19:43:53 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Qt=3A_spre?= =?iso-8859-1?q?fs=5Finterface_split_playlist=09option_=28Francois_Cartegn?= =?iso-8859-1?q?ie_=29?= In-Reply-To: <20100725173040.GA16250@videolan.org> References: <20100725172927.029CB10D249@albiero.videolan.org> <20100725173040.GA16250@videolan.org> Message-ID: <201007251943.53935.fcvlcdev@free.fr> Le dimanche 25 juillet 2010, Jean-Baptiste Kempf a ?crit : > > Qt: sprefs_interface split playlist option > > SPref interface is already too high... This makes it even worse... -Minimal height depends on left column. -Left column icons are downsized when screen height isn't sufficient Scrollbars on right column/content does not help when oversized ? Francois From jb at videolan.org Sun Jul 25 21:15:51 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sun, 25 Jul 2010 21:15:51 +0200 Subject: [vlc-devel] [vlc-commits] commit: Qt: sprefs_interface split playlist?option (Francois Cartegnie ) In-Reply-To: <201007251943.53935.fcvlcdev@free.fr> References: <20100725172927.029CB10D249@albiero.videolan.org> <20100725173040.GA16250@videolan.org> <201007251943.53935.fcvlcdev@free.fr> Message-ID: <20100725191551.GA17821@videolan.org> On Sun, Jul 25, 2010 at 07:43:53PM +0200, Francois Cartegnie wrote : > Le dimanche 25 juillet 2010, Jean-Baptiste Kempf a ?crit : > > > Qt: sprefs_interface split playlist option > > > > SPref interface is already too high... This makes it even worse... > -Minimal height depends on left column. It doesn't, in fact. See bug report about DPI 120% Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From rohityadav89 at gmail.com Sun Jul 25 21:39:55 2010 From: rohityadav89 at gmail.com (Rohit Yadav) Date: Sun, 25 Jul 2010 21:39:55 +0200 Subject: [vlc-devel] Hope you like it In-Reply-To: References: Message-ID: Kudos! -------------- next part -------------- An HTML attachment was scrubbed... URL: From desjardins_e at yahoo.ca Mon Jul 26 00:19:12 2010 From: desjardins_e at yahoo.ca (Eric Desjardins) Date: Sun, 25 Jul 2010 15:19:12 -0700 (PDT) Subject: [vlc-devel] Newbie question Message-ID: <36153.51759.qm@web33806.mail.mud.yahoo.com> Hi, Sorry for the spam, I was not able to find solution to this from the documentation. I have successfully compiled vlc git main on Mac OS X 10.6 on mac intel based mac mini. I have fixed a bug in mkv parsing when reading a mkv that used to crash the app and I would like to submit a patch. I read the documentatin about submitting a patch but I currently have problems with my build which might be normal in this branch. I can now listen to my problematic mkv but in ascii from de debugger. If I try to launch it from outside de debugger, I could not listen to anything in OS X: I get warning that I have no console interface in the console. When I try to get the preference pane, it does not show and I can another warning in the console. Any cues would be appreciated. Regards, Eric http://ca.linkedin.com/in/desjare -------------- next part -------------- An HTML attachment was scrubbed... URL: From rbh00 at netcom.com Sun Jul 25 20:38:18 2010 From: rbh00 at netcom.com (Richard Hitt) Date: Sun, 25 Jul 2010 11:38:18 -0700 Subject: [vlc-devel] Patch to qt4/main_interface.cpp Message-ID: <4C4C849A.1010803@netcom.com> Hi On July 11 I sent you a patch to main_interface.cpp, and I have heard nothing back. That patch was against the Fedora-12 source rpm. It included a rationale for the patch, and I'd be happy to send you the rationale again. This email contains the same patch but expressed as a git diff and against the current git tree (if I did it right). Here is the patch: -------- start patch diff --git a/modules/gui/qt4/main_interface.cpp b/modules/gui/qt4/main_interface.cpp index a8dff3b..53b927a 100644 --- a/modules/gui/qt4/main_interface.cpp +++ b/modules/gui/qt4/main_interface.cpp @@ -999,7 +999,7 @@ void MainInterface::updateSystrayTooltipName( const QString& name ) if( b_notificationEnabled&& ( isHidden() || isMinimized() ) ) { sysTray->showMessage( qtr( "VLC media player" ), name, - QSystemTrayIcon::NoIcon, 3000 ); + QSystemTrayIcon::NoIcon ); } } -------- end patch Please let me know if you are satisfied with the patch or if you would like another format or if you are simply overwhelmed with work and unable to deal with the patch at this time or if you would like me to try myself to add the change to your git tree (shudder). Thanks, vlc is great! Richard Hitt rbh00 at netcom.com From beauze.h at gmail.com Mon Jul 26 10:31:46 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Mon, 26 Jul 2010 10:31:46 +0200 Subject: [vlc-devel] [Patch 3/3] avcodec: Don't assume a maximum bpp of 24 In-Reply-To: References: Message-ID: On Fri, Jul 23, 2010 at 12:35 AM, Hugo Beauzee-Luyssen wrote: > Hi, > > When transcoding using the avcodec encoder, it currently assumes a > maximum bpp of 24, which will obviously make vlc crashe when using a > 32bpp format. > I assumed the bit_per_pixel field could be 0, though i'm not sure this > is really useful. > > Regards, > Hi, Any comments ? Regards, -- Hugo Beauz?e-Luyssen From jpsaman at gmail.com Mon Jul 26 11:09:22 2010 From: jpsaman at gmail.com (Jean-Paul Saman) Date: Mon, 26 Jul 2010 11:09:22 +0200 Subject: [vlc-devel] [Patch 3/3] avcodec: Don't assume a maximum bpp of 24 In-Reply-To: References: Message-ID: On Mon, Jul 26, 2010 at 10:31 AM, Hugo Beauzee-Luyssen wrote: > On Fri, Jul 23, 2010 at 12:35 AM, Hugo Beauzee-Luyssen > wrote: >> Hi, >> >> When transcoding using the avcodec encoder, it currently assumes a >> maximum bpp of 24, which will obviously make vlc crashe when using a >> 32bpp format. >> I assumed the bit_per_pixel field could be 0, though i'm not sure this >> is really useful. bit_per_pixel_field depends on which chroma the picture is. I do not think setting it to null is usefull. Gtz Jean-Paul Saman >> >> Regards, >> > > Hi, > > Any comments ? > Regards, > > -- > Hugo Beauz?e-Luyssen > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > From fkuehne.videolan at googlemail.com Mon Jul 26 12:19:39 2010 From: fkuehne.videolan at googlemail.com (=?iso-8859-1?Q?Felix_Paul_K=FChne?=) Date: Mon, 26 Jul 2010 12:19:39 +0200 Subject: [vlc-devel] Newbie question In-Reply-To: <36153.51759.qm@web33806.mail.mud.yahoo.com> References: <36153.51759.qm@web33806.mail.mud.yahoo.com> Message-ID: <64CE1C59-235C-4907-A2BD-48C633BF8FEB@gmail.com> Hey Eric, VLC's development branch is currently quite unstable, especially with regard to the Mac OS X port. Some folks are in the process of enabling the Qt4 interface (which you might know from our Linux and Windows ports) for Mac OS X, as the current interface will be discontinued. To do work on demuxers, it might make sense to already build the qt4 interface or to switch to our 1.1-stable branch, which will be more reliable. Best regards, Felix From remi at remlab.net Mon Jul 26 12:44:10 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Mon, 26 Jul 2010 12:44:10 +0200 Subject: [vlc-devel] Newbie question In-Reply-To: <64CE1C59-235C-4907-A2BD-48C633BF8FEB@gmail.com> References: <36153.51759.qm@web33806.mail.mud.yahoo.com> <64CE1C59-235C-4907-A2BD-48C633BF8FEB@gmail.com> Message-ID: <244170c32a2aea1b0778c08b55c5d3e7@chewa.net> On Mon, 26 Jul 2010 12:19:39 +0200, "Felix Paul K?hne" wrote: > To do work on demuxers, it might make sense to (...) > switch to our 1.1-stable branch, which will be more > reliable. That's the surest way to write code that will not apply to the development tree, and hence will never be merged. Just look at Pierre's meta data LibVLC patches for a recent striking counter example of why you should never do that. This is not how OSS development work. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From raulhcordeiro at gmail.com Mon Jul 26 14:32:52 2010 From: raulhcordeiro at gmail.com (raul cordeiro holanda) Date: Mon, 26 Jul 2010 09:32:52 -0300 Subject: [vlc-devel] Frames input on libVLC Message-ID: Hi, In advance, sorry for my English, but i'll try be clear. I am new on VLC and libVLC. Now, i'm using VLM of libVLC for serve a live video stream through RTP. So, the part of transmission for client is OK - i already test it with various files of mp3 and mp4 type. Now i must to solve the acquisition part and i'd like to know if libVLC has the option (a callback, for example) of get as input my own frames - that is on YUYV or RGB format? Thanks in advance Raul Holanda -------------- next part -------------- An HTML attachment was scrubbed... URL: From desjardins_e at yahoo.ca Mon Jul 26 14:41:05 2010 From: desjardins_e at yahoo.ca (Eric Desjardins) Date: Mon, 26 Jul 2010 05:41:05 -0700 (PDT) Subject: [vlc-devel] Re : Newbie question In-Reply-To: <244170c32a2aea1b0778c08b55c5d3e7@chewa.net> References: <36153.51759.qm@web33806.mail.mud.yahoo.com> <64CE1C59-235C-4907-A2BD-48C633BF8FEB@gmail.com> <244170c32a2aea1b0778c08b55c5d3e7@chewa.net> Message-ID: <843204.69995.qm@web33806.mail.mud.yahoo.com> So, I can test my changes on the stable 1.1 branch and submit in main? Eric ________________________________ De : R?mi Denis-Courmont ? : Mailing list for VLC media player developers Envoy? le : Lun 26 juillet 2010, 6h 44min 10s Objet : Re: [vlc-devel] Newbie question On Mon, 26 Jul 2010 12:19:39 +0200, "Felix Paul K?hne" wrote: > To do work on demuxers, it might make sense to (...) > switch to our 1.1-stable branch, which will be more > reliable. That's the surest way to write code that will not apply to the development tree, and hence will never be merged. Just look at Pierre's meta data LibVLC patches for a recent striking counter example of why you should never do that. This is not how OSS development work. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis _______________________________________________ vlc-devel mailing list To unsubscribe or modify your subscription options: http://mailman.videolan.org/listinfo/vlc-devel -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Mon Jul 26 15:26:57 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Mon, 26 Jul 2010 15:26:57 +0200 Subject: [vlc-devel] Re : Newbie question In-Reply-To: <843204.69995.qm@web33806.mail.mud.yahoo.com> References: <36153.51759.qm@web33806.mail.mud.yahoo.com> <64CE1C59-235C-4907-A2BD-48C633BF8FEB@gmail.com> <244170c32a2aea1b0778c08b55c5d3e7@chewa.net> <843204.69995.qm@web33806.mail.mud.yahoo.com> Message-ID: <7ffa9d661ae6cfb64401cae7a1f9704a@chewa.net> Hello, On Mon, 26 Jul 2010 05:41:05 -0700 (PDT), Eric Desjardins wrote: > I can test my changes on the stable 1.1 branch and submit in main? You shall ensure that your changes are compatible with the master development tree. If you don't and they end up being incompatible, you will only have your tears left to cry as your patch gets ignored. So that this does not happen, I can only STRONGLY recommend you always develop on the master tree _first_. If the UI does not work, then test with the command line VLC, or with the HTTP interface, or through a custom application built on top of LibVLC, or whatever is more appropriate for you. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From desjardins_e at yahoo.ca Mon Jul 26 15:39:54 2010 From: desjardins_e at yahoo.ca (Eric Desjardins) Date: Mon, 26 Jul 2010 06:39:54 -0700 (PDT) Subject: [vlc-devel] Re : Re : Newbie question In-Reply-To: <7ffa9d661ae6cfb64401cae7a1f9704a@chewa.net> References: <36153.51759.qm@web33806.mail.mud.yahoo.com> <64CE1C59-235C-4907-A2BD-48C633BF8FEB@gmail.com> <244170c32a2aea1b0778c08b55c5d3e7@chewa.net> <843204.69995.qm@web33806.mail.mud.yahoo.com> <7ffa9d661ae6cfb64401cae7a1f9704a@chewa.net> Message-ID: <649101.8453.qm@web33806.mail.mud.yahoo.com> Ok then. Thanks for the input. Eric ________________________________ De : R?mi Denis-Courmont ? : Mailing list for VLC media player developers Envoy? le : Lun 26 juillet 2010, 9h 26min 57s Objet : Re: [vlc-devel] Re : Newbie question Hello, On Mon, 26 Jul 2010 05:41:05 -0700 (PDT), Eric Desjardins wrote: > I can test my changes on the stable 1.1 branch and submit in main? You shall ensure that your changes are compatible with the master development tree. If you don't and they end up being incompatible, you will only have your tears left to cry as your patch gets ignored. So that this does not happen, I can only STRONGLY recommend you always develop on the master tree _first_. If the UI does not work, then test with the command line VLC, or with the HTTP interface, or through a custom application built on top of LibVLC, or whatever is more appropriate for you. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis _______________________________________________ vlc-devel mailing list To unsubscribe or modify your subscription options: http://mailman.videolan.org/listinfo/vlc-devel -------------- next part -------------- An HTML attachment was scrubbed... URL: From pdherbemont at free.fr Mon Jul 26 19:06:15 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Mon, 26 Jul 2010 19:06:15 +0200 Subject: [vlc-devel] Newbie question In-Reply-To: <244170c32a2aea1b0778c08b55c5d3e7@chewa.net> References: <36153.51759.qm@web33806.mail.mud.yahoo.com> <64CE1C59-235C-4907-A2BD-48C633BF8FEB@gmail.com> <244170c32a2aea1b0778c08b55c5d3e7@chewa.net> Message-ID: 2010/7/26 R?mi Denis-Courmont : > Just look at Pierre's meta data LibVLC patches for a recent striking > counter example of why you should never do that. Dooh. What am I doing here? I use vlc-master on most of my checkout. Pierre. From remi at remlab.net Mon Jul 26 19:20:44 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Mon, 26 Jul 2010 20:20:44 +0300 Subject: [vlc-devel] Newbie question In-Reply-To: References: <36153.51759.qm@web33806.mail.mud.yahoo.com> <244170c32a2aea1b0778c08b55c5d3e7@chewa.net> Message-ID: <201007262020.44948.remi@remlab.net> Le lundi 26 juillet 2010 20:06:15 Pierre d'Herbemont, vous avez ?crit : > 2010/7/26 R?mi Denis-Courmont : > > Just look at Pierre's meta data LibVLC patches for a recent striking > > counter example of why you should never do that. > > Dooh. What am I doing here? I use vlc-master on most of my checkout. As a matter of facts, you have made 6 commits in vlc-1.1.git and 5 commits in vlc.git since 1.1.0-pre1 (6 have your name, but one was signed off by me). -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From beauze.h at gmail.com Tue Jul 27 00:10:59 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Tue, 27 Jul 2010 00:10:59 +0200 Subject: [vlc-devel] [Patch 3/3] avcodec: Don't assume a maximum bpp of 24 In-Reply-To: References: Message-ID: On Mon, Jul 26, 2010 at 10:31 AM, Hugo Beauzee-Luyssen wrote: > On Fri, Jul 23, 2010 at 12:35 AM, Hugo Beauzee-Luyssen > wrote: >> Hi, >> >> When transcoding using the avcodec encoder, it currently assumes a >> maximum bpp of 24, which will obviously make vlc crashe when using a >> 32bpp format. >> I assumed the bit_per_pixel field could be 0, though i'm not sure this >> is really useful. >> >> Regards, >> > > Hi, > > Any comments ? > Regards, > Updated version, after j-b's comments. (This just updates the comments) Regards, -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-avcodec-encoder-Don-t-assume-a-maximum-BPP-of-24.patch Type: text/x-patch Size: 2258 bytes Desc: not available URL: From jb at videolan.org Tue Jul 27 00:23:27 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 27 Jul 2010 00:23:27 +0200 Subject: [vlc-devel] Should bookmarks option considered as safe? Message-ID: <20100726222327.GA4652@videolan.org> ...or not? Some people seem to use it in playlists... Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From david at 2of1.org Tue Jul 27 02:34:19 2010 From: david at 2of1.org (David Kaplan) Date: Tue, 27 Jul 2010 03:34:19 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <1280062991-20707-1-git-send-email-david@2of1.org> References: <1280062991-20707-1-git-send-email-david@2of1.org> Message-ID: On Sun, Jul 25, 2010 at 4:03 PM, David Kaplan wrote: > Adds support for the D2D API on Win7/Vista SP2 with Platform Update > Requires d2d1 contrib headers > > Any further comments? -------------- next part -------------- An HTML attachment was scrubbed... URL: From fenrir at elivagar.org Tue Jul 27 07:41:25 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Tue, 27 Jul 2010 07:41:25 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1280062991-20707-1-git-send-email-david@2of1.org> Message-ID: <20100727054125.GA27583@elivagar.org> On Tue, Jul 27, 2010 at 03:34:19AM +0300, David Kaplan wrote: > > > On Sun, Jul 25, 2010 at 4:03 PM, David Kaplan wrote: > > Adds support for the D2D API on Win7/Vista SP2 with Platform Update > Requires d2d1 contrib headers > > > Any further comments?? Not for the moment, I just need to have a bit of time to test it. -- fenrir From remi at remlab.net Tue Jul 27 08:45:21 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 27 Jul 2010 08:45:21 +0200 Subject: [vlc-devel] =?utf-8?q?Should_bookmarks_option_considered_as_safe?= =?utf-8?q?=3F?= In-Reply-To: <20100726222327.GA4652@videolan.org> References: <20100726222327.GA4652@videolan.org> Message-ID: On Tue, 27 Jul 2010 00:23:27 +0200, Jean-Baptiste Kempf wrote: > ...or not? > > Some people seem to use it in playlists... I suppose it enables things you could anyway do by adding items to the playlist. But I find it kinda dumb as it makes the playlist VLC-specific... -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From sebastien-devel at celeos.eu Tue Jul 27 09:00:40 2010 From: sebastien-devel at celeos.eu (=?iso-8859-1?b?U+liYXN0aWVu?= Escudier) Date: Tue, 27 Jul 2010 09:00:40 +0200 Subject: [vlc-devel] configure errors Message-ID: <1280214040.4c4e841852304@imp.celeos.eu> Hi, I can't configure and compile vlc anymore. I saw that automake 1.11 is required, so I installed the latest version of automake/autoconf. But I have a lot of warnings/errors when I run ./bootstrap : configure.ac:1694: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd m4/with_pkg.m4:34: PKG_WITH_MODULES is expanded from... m4/with_pkg.m4:83: PKG_ENABLE_MODULES_VLC is expanded from... configure.ac:1694: the top level configure.ac:1846: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd configure.ac:1846: the top level [...] configure.ac:1: error: possibly undefined macro: dnl If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.ac:37: error: possibly undefined macro: AS_IF [...] configure.ac:3303: error: possibly undefined macro: AC_CHECK_HEADER configure:25676: error: possibly undefined macro: m4_n autoreconf: /usr/local/bin/autoconf failed with exit status: 1 Any Idea ? Thanks. From ivoire at videolan.org Tue Jul 27 09:20:48 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Tue, 27 Jul 2010 09:20:48 +0200 Subject: [vlc-devel] Should bookmarks option considered as safe? In-Reply-To: References: <20100726222327.GA4652@videolan.org> Message-ID: <20100727072048.GB27807@dinauz.org> > I suppose it enables things you could anyway do by adding items to the > playlist. > > But I find it kinda dumb as it makes the playlist VLC-specific... Bookmarks are only saved in the extenssions part of the playlist. So any other player will normally just skip it if they don't know how to handle it (this is the actual behavior of VLC). -- R?mi Duraffort | ivoire From sebastien-devel at celeos.eu Tue Jul 27 09:25:51 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Tue, 27 Jul 2010 09:25:51 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_qt4=5Fvlm?= =?iso-8859-1?q?=3A_fix_=233938_=28options_must_be_removed_from_the_input?= =?iso-8859-1?q?=29_=28_R=E9mi_Duraffort_=29?= In-Reply-To: <20100726201719.6CBFF10E0B0@albiero.videolan.org> References: <20100726201719.6CBFF10E0B0@albiero.videolan.org> Message-ID: <1280215551.5754.2.camel@sebastien-desktop> On Mon, 2010-07-26 at 22:17 +0200, git at videolan.org wrote: > vlc | branch: master | R?mi Duraffort | Mon Jul 26 22:16:15 2010 +0200| [df316b5efcba5b2b50b9e27ba2f21574f21f5207] | committer: R?mi Duraffort > > qt4_vlm: fix #3938 (options must be removed from the input) hmmm, I tried to backport this in 1.1, and I got even more invalid vlm files. I got the rtsp url as an option... Example : new test broadcast enabled setup test input "rtsp" setup test output tototoot setup test option //111.1/test I can't test master right now but I suspect this commit is wrong. From gundachandru at gmail.com Tue Jul 27 06:52:09 2010 From: gundachandru at gmail.com (=?UTF-8?B?4LKa4LKC4LKm4LON4LKw4LOBIOKZpSBDIGggYSBuIGQgciB1IEcgdSBuIGQgYQ==?=) Date: Tue, 27 Jul 2010 10:22:09 +0530 Subject: [vlc-devel] Kannada Translation for VLC Message-ID: Hi, I am interested to translate strings to Kannada for VLC. Please send me the localization file. Thanks, Chandru -------------- next part -------------- An HTML attachment was scrubbed... URL: From ivoire at videolan.org Tue Jul 27 09:37:30 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Tue, 27 Jul 2010 09:37:30 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_qt4=5Fvlm?= =?iso-8859-1?q?=3A_fix_=233938_=28options_must_be_removed_from_the?= =?iso-8859-1?q?_input=29_=28_R=E9mi_Duraffort_=29?= In-Reply-To: <1280215551.5754.2.camel@sebastien-desktop> References: <20100726201719.6CBFF10E0B0@albiero.videolan.org> <1280215551.5754.2.camel@sebastien-desktop> Message-ID: <20100727073730.GC27807@dinauz.org> Le mardi 27 juillet 2010 ? 09:25:51, S?bastien Escudier a ?crit : > On Mon, 2010-07-26 at 22:17 +0200, git at videolan.org wrote: > > vlc | branch: master | R?mi Duraffort | Mon Jul 26 22:16:15 2010 +0200| [df316b5efcba5b2b50b9e27ba2f21574f21f5207] | committer: R?mi Duraffort > > > > qt4_vlm: fix #3938 (options must be removed from the input) > > hmmm, I tried to backport this in 1.1, and I got even more invalid vlm > files. > I got the rtsp url as an option... > > Example : > new test broadcast enabled > setup test input "rtsp" > setup test output tototoot > setup test option //111.1/test I think you are right, I will look at it tonight (the split(":") is the root issue). -- R?mi Duraffort | ivoire From jb at videolan.org Tue Jul 27 10:02:31 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 27 Jul 2010 10:02:31 +0200 Subject: [vlc-devel] configure errors In-Reply-To: <1280214040.4c4e841852304@imp.celeos.eu> References: <1280214040.4c4e841852304@imp.celeos.eu> Message-ID: <20100727080231.GA15665@videolan.org> Hello S?bastien, On Tue, Jul 27, 2010 at 09:00:40AM +0200, S?bastien Escudier wrote : > m4/with_pkg.m4:34: PKG_WITH_MODULES is expanded from... > m4/with_pkg.m4:83: PKG_ENABLE_MODULES_VLC is expanded from... > configure.ac:1694: the top level > configure.ac:1846: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not > m4_defun'd > configure.ac:1846: the top level Are you sure the issue is not with pkg-config? Are you on linux? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From david at 2of1.org Tue Jul 27 10:21:43 2010 From: david at 2of1.org (David Kaplan) Date: Tue, 27 Jul 2010 11:21:43 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100727054125.GA27583@elivagar.org> References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727054125.GA27583@elivagar.org> Message-ID: On Tue, Jul 27, 2010 at 8:41 AM, Laurent Aimar wrote: > > Not for the moment, I just need to have a bit of time to test it. > Cool - thanks! :) -- http://blog.2of1.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Tue Jul 27 10:21:57 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 27 Jul 2010 10:21:57 +0200 Subject: [vlc-devel] configure errors In-Reply-To: <1280214040.4c4e841852304@imp.celeos.eu> References: <1280214040.4c4e841852304@imp.celeos.eu> Message-ID: <44b0b80cabda7147fa9c7d9d7c12f124@chewa.net> On Tue, 27 Jul 2010 09:00:40 +0200, S?bastien Escudier wrote: > But I have a lot of warnings/errors when I run ./bootstrap : > configure.ac:1694: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not > m4_defun'd pkg-config is not installed properly (as in, its autoconf macros are not found by autotools). -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Tue Jul 27 10:24:14 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 27 Jul 2010 10:24:14 +0200 Subject: [vlc-devel] =?utf-8?q?=5Bvlc-commits=5D_commit=3A_qt4=5Fvlm=3A_fi?= =?utf-8?q?x_=233938_=28options_must_be_removed_from_the_input=29_=28_R?= =?utf-8?q?=C3=A9mi_Duraffort_=29?= In-Reply-To: <20100727073730.GC27807@dinauz.org> References: <20100726201719.6CBFF10E0B0@albiero.videolan.org> <1280215551.5754.2.camel@sebastien-desktop> <20100727073730.GC27807@dinauz.org> Message-ID: On Tue, 27 Jul 2010 09:37:30 +0200, R?mi Duraffort wrote: > I think you are right, I will look at it tonight (the split(":") is the > root issue). It seems like yet another case where the Qt4 interface should path input item options as a QStringList rather than a concatenated QString, all the way until serialization to the configuration file. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From sebastien-devel at celeos.eu Tue Jul 27 10:33:07 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Tue, 27 Jul 2010 10:33:07 +0200 Subject: [vlc-devel] configure errors In-Reply-To: <20100727080231.GA15665@videolan.org> References: <1280214040.4c4e841852304@imp.celeos.eu> <20100727080231.GA15665@videolan.org> Message-ID: <1280219587.5754.16.camel@sebastien-desktop> Hi j-b, > Are you sure the issue is not with pkg-config? > > Are you on linux? I am on Ubuntu 8.10 right now. I upgraded pkg-config to the latest version, and I have no warning anymore (thanks!). But still : configure.ac:419: error: m4_undefine: undefined macro: AC_DEPLIBS_CHECK_METHOD configure.ac:419: the top level autom4te: /usr/bin/m4 failed with exit status: 1 aclocal: /usr/local/bin/autom4te failed with exit status: 1 I also upgraded m4 to the latest version to be sure... Regards, S?bastien. From kaarlo.raiha at gmail.com Tue Jul 27 10:52:46 2010 From: kaarlo.raiha at gmail.com (=?ISO-8859-1?B?S2FhcmxvIFLkaWjk?=) Date: Tue, 27 Jul 2010 11:52:46 +0300 Subject: [vlc-devel] configure errors In-Reply-To: <1280219587.5754.16.camel@sebastien-desktop> References: <1280214040.4c4e841852304@imp.celeos.eu> <20100727080231.GA15665@videolan.org> <1280219587.5754.16.camel@sebastien-desktop> Message-ID: There seems to be trac ticket about this http://trac.videolan.org/vlc/ticket/2277 2010/7/27 S?bastien Escudier > Hi j-b, > > > Are you sure the issue is not with pkg-config? > > > > Are you on linux? > > I am on Ubuntu 8.10 right now. > I upgraded pkg-config to the latest version, and I have no warning > anymore (thanks!). > But still : > > configure.ac:419: error: m4_undefine: undefined macro: > AC_DEPLIBS_CHECK_METHOD > configure.ac:419: the top level > autom4te: /usr/bin/m4 failed with exit status: 1 > aclocal: /usr/local/bin/autom4te failed with exit status: 1 > > I also upgraded m4 to the latest version to be sure... > > Regards, > > S?bastien. > > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastien-devel at celeos.eu Tue Jul 27 11:11:16 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Tue, 27 Jul 2010 11:11:16 +0200 Subject: [vlc-devel] configure errors In-Reply-To: References: <1280214040.4c4e841852304@imp.celeos.eu> <20100727080231.GA15665@videolan.org> <1280219587.5754.16.camel@sebastien-desktop> Message-ID: <1280221876.5754.26.camel@sebastien-desktop> On Tue, 2010-07-27 at 11:52 +0300, Kaarlo R?ih? wrote: > There seems to be trac ticket about this > http://trac.videolan.org/vlc/ticket/2277 Right thanks. I tried to apply the patch included in this ticket, it solves the error I had, but new ones appears. I don't know much about autotools, so if someone (courmisch?) is interested in fixing this I can continue to send the errors I have, otherwise I will change my vlc dev machine (ubuntu 8.10 seems to be too old now, I tested 10.04 and I don't have these errors). From remi at remlab.net Tue Jul 27 12:06:52 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 27 Jul 2010 12:06:52 +0200 Subject: [vlc-devel] configure errors In-Reply-To: <1280219587.5754.16.camel@sebastien-desktop> References: <1280214040.4c4e841852304@imp.celeos.eu> <20100727080231.GA15665@videolan.org> <1280219587.5754.16.camel@sebastien-desktop> Message-ID: <2ef65d26f6d3363bb0366006f32626b0@chewa.net> On Tue, 27 Jul 2010 10:33:07 +0200, S?bastien Escudier wrote: > configure.ac:419: error: m4_undefine: undefined macro: > AC_DEPLIBS_CHECK_METHOD That's libtool missing. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Tue Jul 27 12:07:59 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 27 Jul 2010 12:07:59 +0200 Subject: [vlc-devel] configure errors In-Reply-To: <1280221876.5754.26.camel@sebastien-desktop> References: <1280214040.4c4e841852304@imp.celeos.eu> <20100727080231.GA15665@videolan.org> <1280219587.5754.16.camel@sebastien-desktop> <1280221876.5754.26.camel@sebastien-desktop> Message-ID: On Tue, 27 Jul 2010 11:11:16 +0200, S?bastien Escudier wrote: > I tried to apply the patch included in this ticket, it solves the error > I had, but new ones appears. > I don't know much about autotools, so if someone (courmisch?) is > interested in fixing this I can continue to send the errors I have, Not really no. I have more interesting things to do than debug old autotools problems. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From jb at videolan.org Tue Jul 27 12:32:27 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Tue, 27 Jul 2010 12:32:27 +0200 Subject: [vlc-devel] VLC 1.1.2 Message-ID: <20100727103227.GA12069@videolan.org> Hello, I know we just released 1.1.1, but I would like to do a new release, because bugs that everyone complains about are fixed, especially on Windows: - mp3 mono - nVidia older cards direct3d fix And frankly, doing support for those 2 bugs is just booooring... not to mention time-consuming... And of course, the Youtube.lua and .ts fix I would prefer to do so before all our windows user migrate to 1.1.1 Opinions? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From fenrir at elivagar.org Tue Jul 27 12:40:58 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Tue, 27 Jul 2010 12:40:58 +0200 Subject: [vlc-devel] VLC 1.1.2 In-Reply-To: <20100727103227.GA12069@videolan.org> References: <20100727103227.GA12069@videolan.org> Message-ID: <20100727104058.GA10185@elivagar.org> Hi, On Tue, Jul 27, 2010 at 12:32:27PM +0200, Jean-Baptiste Kempf wrote: > Hello, > > I know we just released 1.1.1, but I would like to do a new release, > because bugs that everyone complains about are fixed, especially on > Windows: > - mp3 mono This one is not really related to win32 (but it will always happens there). It happens as soon as the trivial channel mixer was used (it could happens with alsa on audio card without mono support, dunno for the others audio output implementations). > - nVidia older cards direct3d fix > > And frankly, doing support for those 2 bugs is just booooring... not to > mention time-consuming... > > And of course, the Youtube.lua and .ts fix The TS fix is important for DVB-? users, the dynamic program selection was broken. -- fenrir From sebastien-devel at celeos.eu Tue Jul 27 12:58:56 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Tue, 27 Jul 2010 12:58:56 +0200 Subject: [vlc-devel] VLC 1.1.2 In-Reply-To: <20100727103227.GA12069@videolan.org> References: <20100727103227.GA12069@videolan.org> Message-ID: <1280228336.5754.29.camel@sebastien-desktop> On Tue, 2010-07-27 at 12:32 +0200, Jean-Baptiste Kempf wrote: > Hello, > > I know we just released 1.1.1, but I would like to do a new release, Would be nice to wait for #3938 fix. R?mi Duraffort said he will correct his commit tonight. Regards, Seb. From jmenon86 at gmail.com Tue Jul 27 13:34:37 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Tue, 27 Jul 2010 17:04:37 +0530 Subject: [vlc-devel] [PATCH] AVFormat Demux : Reset PCR for streams initialized later on. In-Reply-To: References: <1279945248-9304-1-git-send-email-jmenon86@gmail.com> <20100724202933.GA19849@elivagar.org> Message-ID: On Sun, Jul 25, 2010 at 1:49 PM, Jai Menon wrote: > On Sun, Jul 25, 2010 at 1:59 AM, Laurent Aimar wrote: >> Hi, >> >> On Sun, Jul 25, 2010 at 01:28:19AM +0530, Jai Menon wrote: >>> On Sat, Jul 24, 2010 at 10:36 AM, Jai Menon wrote: >>> > On Sat, Jul 24, 2010 at 9:50 AM, Jai Menon wrote: >>> >> A situation where this is desirable is when the video stream is >>> >> initialized after the audio stream. In this case the PCR must be >>> >> reset based on the video stream packet timestamp to avoid dropping >>> >> frames. >>> >> --- >>> >> ?modules/demux/avformat/demux.c | ? ?3 ++- >>> >> ?1 files changed, 2 insertions(+), 1 deletions(-) >>> >> >>> >> diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c >>> >> index a8042b8..86aeb5d 100644 >>> >> --- a/modules/demux/avformat/demux.c >>> >> +++ b/modules/demux/avformat/demux.c >>> >> @@ -588,7 +588,8 @@ static int Demux( demux_t *p_demux ) >>> >> ?#endif >>> >> >>> >> ? ? if( p_frame->i_dts > VLC_TS_INVALID ?&& >>> >> - ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 ) ) >>> >> + ? ? ? ?( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 || >>> >> + ? ? ? ? ?p_frame->i_dts < p_sys->i_pcr ) ) >>> >> ? ? { >>> >> ? ? ? ? p_sys->i_pcr_tk = pkt.stream_index; >>> >> ? ? ? ? p_sys->i_pcr = p_frame->i_dts; >>> >> -- >>> >> 1.7.1.1 >>> > >>> > I'm still considering if there's a better solution to this, so please >>> > disregard for now. >>> >>> After thinking some more, I think maybe something like attached would >>> be worth considering. Essentially, the reference is set after we get >>> atleast a few video and audio packets. >> ?I may have misunderstood ?your patch, but you must call ES_OUT_SET_PCR >> before sending the first packets. Otherwise they will be rejected. > > would you be okay with updating the pcr after receiving a few packets > instead? this way nothing is lost. Here's what I have right now in my tree. If there aren't any obvious issues I'm missing, maybe this could go in the 1.1.2 point release? -- Jai Menon -------------- next part -------------- A non-text attachment was scrubbed... Name: avformat-set-correct-pcr.diff Type: text/x-patch Size: 2797 bytes Desc: not available URL: From remi at remlab.net Tue Jul 27 14:06:47 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 27 Jul 2010 14:06:47 +0200 Subject: [vlc-devel] VLC 1.1.2 In-Reply-To: <20100727103227.GA12069@videolan.org> References: <20100727103227.GA12069@videolan.org> Message-ID: On Tue, 27 Jul 2010 12:32:27 +0200, Jean-Baptiste Kempf wrote: > I would prefer to do so before all our windows user migrate to 1.1.1 > > Opinions? I would fancy a fix for the XV green line problem. But I have not had enough time/luck. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Tue Jul 27 14:08:59 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Tue, 27 Jul 2010 14:08:59 +0200 Subject: [vlc-devel] [vlc-commits] commit: Revert "Seek logic changes" (Ilkka Ollakka ) In-Reply-To: <20100727112525.C728910D455@albiero.videolan.org> References: <20100727112525.C728910D455@albiero.videolan.org> Message-ID: On Tue, 27 Jul 2010 13:25:25 +0200 (CEST), git at videolan.org wrote: > vlc | branch: master | Ilkka Ollakka | Tue Jul 27 > 14:24:39 2010 +0300| [3f0a4af362f351291e93b214998706d65721f108] | > committer: Ilkka Ollakka > > Revert "Seek logic changes" > Revert "Refactor code and non-seek related updates" > > This reverts commit 570ffa296e415533e5f596e294f5fc35616adea6. > This reverts commit 657f146ae37d399f0dff6b3a9f087674f29da413. > > Unfinished patches got loose.. sorry about that That's one case where git rebase -i, removing the patches then git push --force makes sense IMHO... (There is only one small unrelated patch from JPS in the middle at this point). -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From ileoo at videolan.org Tue Jul 27 14:14:37 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Tue, 27 Jul 2010 15:14:37 +0300 Subject: [vlc-devel] [vlc-commits] commit: Revert "Seek logic changes" (Ilkka Ollakka ) In-Reply-To: References: <20100727112525.C728910D455@albiero.videolan.org> Message-ID: <20100727121437.GE26085@ileoo> On Tue, Jul 27, 2010 at 02:08:59PM +0200, R?mi Denis-Courmont wrote: > On Tue, 27 Jul 2010 13:25:25 +0200 (CEST), git at videolan.org wrote: > > vlc | branch: master | Ilkka Ollakka | Tue Jul 27 > > 14:24:39 2010 +0300| [3f0a4af362f351291e93b214998706d65721f108] | > > committer: Ilkka Ollakka > > Revert "Seek logic changes" > > Revert "Refactor code and non-seek related updates" > > This reverts commit 570ffa296e415533e5f596e294f5fc35616adea6. > > This reverts commit 657f146ae37d399f0dff6b3a9f087674f29da413. > > Unfinished patches got loose.. sorry about that > That's one case where git rebase -i, removing the patches then git push > --force makes sense IMHO... > (There is only one small unrelated patch from JPS in the middle at this > point). Yep, I should get around and play with --force littlebit before this happens next time. -- Ilkka Ollakka The trouble with being punctual is that nobody's there to appreciate it. -- Franklin P. Jones -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From beauze.h at gmail.com Tue Jul 27 14:15:45 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Tue, 27 Jul 2010 14:15:45 +0200 Subject: [vlc-devel] [Patch 3/3] avcodec: Don't assume a maximum bpp of 24 In-Reply-To: References: Message-ID: On Tue, Jul 27, 2010 at 12:10 AM, Hugo Beauzee-Luyssen wrote: > On Mon, Jul 26, 2010 at 10:31 AM, Hugo Beauzee-Luyssen > wrote: >> On Fri, Jul 23, 2010 at 12:35 AM, Hugo Beauzee-Luyssen >> wrote: >>> Hi, >>> >>> When transcoding using the avcodec encoder, it currently assumes a >>> maximum bpp of 24, which will obviously make vlc crashe when using a >>> 32bpp format. >>> I assumed the bit_per_pixel field could be 0, though i'm not sure this >>> is really useful. >>> >>> Regards, >>> >> >> Hi, >> >> Any comments ? >> Regards, >> > > Updated version, after j-b's comments. > (This just updates the comments) > > Regards, > Updated comment, again. Damn you j-b. Best regards though :) -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-avcodec-encoder-Don-t-assume-a-maximum-BPP-of-24.patch Type: text/x-patch Size: 2226 bytes Desc: not available URL: From fenrir at elivagar.org Tue Jul 27 14:36:06 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Tue, 27 Jul 2010 14:36:06 +0200 Subject: [vlc-devel] [PATCH] AVFormat Demux : Reset PCR for streams initialized later on. In-Reply-To: References: <1279945248-9304-1-git-send-email-jmenon86@gmail.com> <20100724202933.GA19849@elivagar.org> Message-ID: <20100727123606.GA15758@elivagar.org> Hi, On Tue, Jul 27, 2010 at 05:04:37PM +0530, Jai Menon wrote: > > would you be okay with updating the pcr after receiving a few packets > > instead? this way nothing is lost. Doing so force a higher bufferisation and create jitter/delay while reading the source stream which isn't nicer I fear (not sure if it creates issue with the clock algo). Besides, it has hardcoded value and so seems too much like a workaround. What's your exact issue? One thing that isn't nice with the current code is that the pcr is equal to the _max_ value of the max values seen per track while it should be the _min_ value of the max value seen per tracks. (But fixing it has a big issue with ES that terminates before others) Maybe that's your issue? -- fenrir From jmenon86 at gmail.com Tue Jul 27 14:41:00 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Tue, 27 Jul 2010 18:11:00 +0530 Subject: [vlc-devel] [PATCH] AVFormat Demux : Reset PCR for streams initialized later on. In-Reply-To: <20100727123606.GA15758@elivagar.org> References: <1279945248-9304-1-git-send-email-jmenon86@gmail.com> <20100724202933.GA19849@elivagar.org> <20100727123606.GA15758@elivagar.org> Message-ID: On Tue, Jul 27, 2010 at 6:06 PM, Laurent Aimar wrote: > Hi, > > On Tue, Jul 27, 2010 at 05:04:37PM +0530, Jai Menon wrote: >> > would you be okay with updating the pcr after receiving a few packets >> > instead? this way nothing is lost. > ?Doing so force a higher bufferisation and create jitter/delay while reading > the source stream which isn't nicer I fear (not sure if it creates issue with > the clock algo). Besides, it has hardcoded value and so seems too much like a > workaround. yeah, i agree > ?What's your exact issue? http://v2v.cc/~j/samples/dvcp_vlc_playback.mov http://samples.mplayerhq.hu/mov/FCP/DVCPRO.mov http://samples.mplayerhq.hu/sub/small.divx etc > ?One thing that isn't nice with the current code is that the pcr is equal > to the _max_ value of the max values seen per track while it should be the > _min_ value of the max value seen per tracks. (But fixing it has a big issue > with ES that terminates before others) > ?Maybe that's your issue? yeah, and i've tried to incorporate that in the patch too (if the value is lesser, use that instead). -- Jai Menon From beauze.h at gmail.com Tue Jul 27 15:08:10 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Tue, 27 Jul 2010 15:08:10 +0200 Subject: [vlc-devel] [Patch 3/3] avcodec: Don't assume a maximum bpp of 24 In-Reply-To: References: Message-ID: Comment wrapped to 80 columns I included a second patch to check the memory allocation in OpenEncoder, and the one that moved to EncodeVideo Regards, -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-avcodec-encoder-Don-t-assume-a-maximum-BPP-of-24.patch Type: text/x-patch Size: 2225 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-avcodec-encoder-Check-memory-allocations.patch Type: text/x-patch Size: 2544 bytes Desc: not available URL: From fios at akerbeltz.org Tue Jul 27 19:31:58 2010 From: fios at akerbeltz.org (Michael Bauer) Date: Tue, 27 Jul 2010 18:31:58 +0100 Subject: [vlc-devel] Localisation Message-ID: <4C4F180E.8030202@akerbeltz.org> Hiya, Just heard that someone is working on the Irish localisation - time to get a foot in the door for Scots Gaelic too then I guess ;) I'd like to request that Scots Gaelic (gd) gets added - I won't be able to do masses straight away as I'm locale leader for Gaelic over at Mozilla and we're currently working on the first releases of Firefox and Thunderbird but I'd like to have it set up and get the po file so I can budget it into my timeplans. Any paperwork or recommendations you need, let me know. Thanks! Michael Bauer From kaarlo.raiha at gmail.com Tue Jul 27 21:04:58 2010 From: kaarlo.raiha at gmail.com (=?ISO-8859-1?B?S2FhcmxvIFLkaWjk?=) Date: Tue, 27 Jul 2010 22:04:58 +0300 Subject: [vlc-devel] Localisation In-Reply-To: <4C4F180E.8030202@akerbeltz.org> References: <4C4F180E.8030202@akerbeltz.org> Message-ID: 2010/7/27 Michael Bauer > Hiya, > > Just heard that someone is working on the Irish localisation - time to get > a foot in the door for Scots Gaelic too then I guess ;) > > I'd like to request that Scots Gaelic (gd) gets added - I won't be able to > do masses straight away as I'm locale leader for Gaelic over at Mozilla and > we're currently working on the first releases of Firefox and Thunderbird but > I'd like to have it set up and get the po file so I can budget it into my > timeplans. > > Any paperwork or recommendations you need, let me know. > I hope you are joking =) Only thing that VLC needs is patches. > > Thanks! > > Michael Bauer > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fenrir at elivagar.org Tue Jul 27 23:37:34 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Tue, 27 Jul 2010 23:37:34 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <1280062991-20707-1-git-send-email-david@2of1.org> References: <1280062991-20707-1-git-send-email-david@2of1.org> Message-ID: <20100727213734.GA10197@elivagar.org> Hi, On Sun, Jul 25, 2010 at 04:03:11PM +0300, David Kaplan wrote: > Adds support for the D2D API on Win7/Vista SP2 with Platform Update > Requires d2d1 contrib headers I have tested it and it works well (including zoom/ar/autoscale/crop). Good work. I have a last round of small remarks (that I missed the last time, sorry), and it will be good to commit. > +vlc_module_begin () > + set_category(CAT_VIDEO) > + set_subcategory(SUBCAT_VIDEO_VOUT) > + set_help(D2D_HELP) > + set_shortname("Direct2D") > + set_description(N_("Direct2D video output")) > + set_capability("vout display", 60) Just a remark for the other devs: that makes it higher than wingdi and glwin32. With the current feature set of both modules, I don't think there is any issue. But I think that using 65 would be better (to have it higher than SDL but lower than direct3d). > + add_shortcut("direct2d") > + set_callbacks(Open, Close) > +vlc_module_end () > + vout_display_info_t info = vd->info; > + info.is_slow = false; > + info.has_double_click = true; > + info.has_hide_mouse = true; It must be false, otherwise the mouse won't be hidden. (Yes, it has recently changed). > + info.has_pictures_invalid = false; > + vd->info = info; > + > + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 for ID2D1Bitmap */ > + vd->fmt.i_rmask = 0x000000ff; > + vd->fmt.i_gmask = 0x0000ff00; > + vd->fmt.i_bmask = 0x00000000; Can't 0x00ff0000 works (now that you don't use RGBA)? > +/** > + * Performs set up of ID2D1Bitmap memory ready for blitting > + */ > +static void Prepare(vout_display_t *vd, picture_t *picture) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + if (sys->d2_render_target && sys->d2_bitmap) { > + /* This seems unnecessary > + D2D1_RECT_U r_src = { > + sys->rect_src_clipped.left, > + sys->rect_src_clipped.top, > + sys->rect_src_clipped.right, > + sys->rect_src_clipped.bottom > + }; > + */ You are right, it is unecessary and so you could remove it. > +/** > + * Blits a scaled picture_t to the render target > + */ > +static void Display(vout_display_t *vd, picture_t *picture) > +{ > + vout_display_sys_t *sys = vd->sys; > + > + D2D1_RECT_F r_dest = { > + sys->rect_dest.left, > + sys->rect_dest.top, > + sys->rect_dest.right, > + sys->rect_dest.bottom > + }; > + > + if (sys->d2_render_target && sys->d2_bitmap) { > + ID2D1HwndRenderTarget_BeginDraw(sys->d2_render_target); > + > + ID2D1HwndRenderTarget_DrawBitmap(sys->d2_render_target, > + sys->d2_bitmap, > + &r_dest, > + 1.0f, > + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, > + NULL); > + > + HRESULT hr = ID2D1HwndRenderTarget_EndDraw(sys->d2_render_target, > + NULL, > + NULL); Alignment is a bit off here. > + if (hr == D2DERR_RECREATE_TARGET) { > + D2D_DestroyRenderTarget(vd); > + D2D_CreateRenderTarget(vd); > + } > + } > + > + picture_Release(picture); > + > + CommonDisplay(vd); > +} Regards, -- fenrir From dilaroga at gmail.com Wed Jul 28 00:10:25 2010 From: dilaroga at gmail.com (Sebastien Zwickert) Date: Wed, 28 Jul 2010 00:10:25 +0200 Subject: [vlc-devel] [PATCH] MacOS: manage the mouse events to allow DVD navigation. Message-ID: <7B6E6D3B-A30C-4549-8F52-0C2EC7FBC438@gmail.com> Hi, The patch in attachment allows the DVD navigation through the mouse events for the Mac OS video output module. -- Sebastien Zwickert -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-MacOS-manage-the-mouse-events-to-allow-DVD-navigati.patch Type: application/octet-stream Size: 2901 bytes Desc: not available URL: -------------- next part -------------- From xtophe at chewa.net Wed Jul 28 00:24:46 2010 From: xtophe at chewa.net (Christophe Mutricy) Date: Wed, 28 Jul 2010 00:24:46 +0200 Subject: [vlc-devel] localization file for Telugu In-Reply-To: References: Message-ID: <20100727222446.GJ27619@chewa.net> Hello, On Fri, Jul 23, 10 at 18:10 +0100, Pradeep Susarla wrote: > My name is Pradeep. Recently I registered in VLC forum and I would like to > help translate VLC in telugu. I want to know if you can provide a > localization file for the same please? Dinesh Muvvala has started a translation to Telugu recently. You should contact him and see how you can help him. -- Xtophe From xtophe at chewa.net Wed Jul 28 00:30:00 2010 From: xtophe at chewa.net (Christophe Mutricy) Date: Wed, 28 Jul 2010 00:30:00 +0200 Subject: [vlc-devel] Kannada Translation for VLC In-Reply-To: References: Message-ID: <20100727223000.GK27619@chewa.net> Hello, On Tue, Jul 27, 10 at 10:22 +0530, ?????? ? C h a n d r u G u n d a wrote: > I am interested to translate strings to Kannada for VLC. Please send me the > localization file. You can find the file to translate there: http://people.videolan.org/~xtophe/l10n/kn.po You can use poEdit or loKalize to translate. Make sure that you use UTF-8 as encoding. If you have question you can ask them on irc #videolan on irc.freenode.net or on the mailing-list vlc-devel at videolan.org When you have done a part of it you can send it to me or put it online and send us the link. There is a mailing list dedicated to translators. You can subscribe at http://mailman.videolan.org/listinfo/translators Thanks -- Xtophe From xtophe at chewa.net Wed Jul 28 00:33:44 2010 From: xtophe at chewa.net (Christophe Mutricy) Date: Wed, 28 Jul 2010 00:33:44 +0200 Subject: [vlc-devel] Localisation In-Reply-To: <4C4F180E.8030202@akerbeltz.org> References: <4C4F180E.8030202@akerbeltz.org> Message-ID: <20100727223344.GL27619@chewa.net> On Tue, Jul 27, 10 at 18:31 +0100, Michael Bauer wrote: > Just heard that someone is working on the Irish localisation - time to > get a foot in the door for Scots Gaelic too then I guess ;) > > I'd like to request that Scots Gaelic (gd) gets added - I won't be able > to do masses straight away as I'm locale leader for Gaelic over at > Mozilla and we're currently working on the first releases of Firefox and > Thunderbird but I'd like to have it set up and get the po file so I can > budget it into my timeplans. You can find the file to translate there: http://people.videolan.org/~xtophe/l10n/gd.po You can use poEdit or loKalize to translate. Make sure that you use UTF-8 as encoding. If you have question you can ask them on irc #videolan on irc.freenode.net or on the mailing-list vlc-devel at videolan.org When you have done a part of it you can send it to me or put it online and send us the link. There is a mailing list dedicated to translators. You can subscribe at http://mailman.videolan.org/listinfo/translators Thanks -- Xtophe From david at 2of1.org Wed Jul 28 05:28:01 2010 From: david at 2of1.org (David Kaplan) Date: Wed, 28 Jul 2010 06:28:01 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module Message-ID: <1280287681-31176-1-git-send-email-david@2of1.org> Adds support for the D2D API on Win7/Vista SP2 with Platform Update Requires d2d1 contrib headers --- configure.ac | 17 ++ modules/video_output/msw/Modules.am | 8 + modules/video_output/msw/common.c | 9 +- modules/video_output/msw/common.h | 7 + modules/video_output/msw/direct2d.c | 417 +++++++++++++++++++++++++++++++++++ modules/video_output/msw/events.c | 3 + 6 files changed, 458 insertions(+), 3 deletions(-) create mode 100644 modules/video_output/msw/direct2d.c diff --git a/configure.ac b/configure.ac index 8a8701e..738f631 100644 --- a/configure.ac +++ b/configure.ac @@ -3490,6 +3490,23 @@ then fi dnl +dnl Windows Direct2D plugin +dnl +AC_ARG_ENABLE(direct2d, + [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)]) +if test "${enable_direct2d}" != "no"; then + if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" + then + AC_CHECK_HEADERS(d2d1.h, + [ + VLC_ADD_PLUGIN([direct2d]) + VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32]) + ], [AC_MSG_WARN([Cannot find Direct2D headers!])] + ) + fi +fi + +dnl dnl win32 GDI plugin dnl AC_ARG_ENABLE(wingdi, diff --git a/modules/video_output/msw/Modules.am b/modules/video_output/msw/Modules.am index 51807c8..0613bae 100644 --- a/modules/video_output/msw/Modules.am +++ b/modules/video_output/msw/Modules.am @@ -1,3 +1,11 @@ +SOURCES_direct2d = \ + direct2d.c \ + common.h \ + events.h \ + events.c \ + common.c \ + $(NULL) + SOURCES_directx = \ directx.c \ common.h \ diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c index 5704d5c..fddbd3d 100644 --- a/modules/video_output/msw/common.c +++ b/modules/video_output/msw/common.c @@ -48,6 +48,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include "common.h" @@ -379,7 +382,7 @@ void UpdateRects(vout_display_t *vd, SWP_NOCOPYBITS|SWP_NOZORDER|SWP_ASYNCWINDOWPOS); /* Destination image position and dimensions */ -#if defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) rect_dest.left = 0; rect_dest.right = place.width; rect_dest.top = 0; @@ -398,7 +401,7 @@ void UpdateRects(vout_display_t *vd, #endif -#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* UpdateOverlay directdraw function doesn't automatically clip to the * display size so we need to do it otherwise it will fail * It is also needed for d3d to avoid exceding our surface size */ @@ -457,7 +460,7 @@ void UpdateRects(vout_display_t *vd, /* Apply overlay hardware constraints */ if (sys->use_overlay) AlignRect(&rect_src_clipped, sys->i_align_src_boundary, sys->i_align_src_size); -#elif defined(MODULE_NAME_IS_direct3d) +#elif defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* Needed at least with YUV content */ rect_src_clipped.left &= ~1; rect_src_clipped.right &= ~1; diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h index e023ef4..3a67c7d 100644 --- a/modules/video_output/msw/common.h +++ b/modules/video_output/msw/common.h @@ -157,6 +157,13 @@ struct vout_display_sys_t vout_display_opengl_t vgl; #endif +#ifdef MODULE_NAME_IS_direct2d + HINSTANCE d2_dll; /* handle of the opened d2d1 dll */ + ID2D1Factory *d2_factory; /* D2D factory */ + ID2D1HwndRenderTarget *d2_render_target; /* D2D rendering target */ + ID2D1Bitmap *d2_bitmap; /* D2 bitmap */ +#endif + #ifdef MODULE_NAME_IS_direct3d bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ /* show video on desktop window ? */ diff --git a/modules/video_output/msw/direct2d.c b/modules/video_output/msw/direct2d.c new file mode 100644 index 0000000..aa4ede1 --- /dev/null +++ b/modules/video_output/msw/direct2d.c @@ -0,0 +1,417 @@ +/***************************************************************************** + * direct2d.c : Direct2D video output plugin for vlc (Win7/Vista SP2 PF Update) + ***************************************************************************** + * Copyright (C) 2010 VideoLAN and AUTHORS + * $Id$ + * + * Author: David Kaplan + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +/***************************************************************************** + * Preamble + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif +#include + +#include +#include +#include +#include + +#include +#include + +#include + +#include "common.h" + +#include +#undef GUID_EXT +#define GUID_EXT +DEFINE_GUID(IID_ID2D1Factory, 0x6152247, 0x6f50, 0x465a, 0x92, 0x45, 0x11, 0x8b, 0xfd, 0x3b, 0x60, 0x7); + +/***************************************************************************** + * Module descriptor + *****************************************************************************/ +static int Open (vlc_object_t *); +static void Close(vlc_object_t *); + +#define D2D_HELP N_("Video output for Windows 7/Windows Vista with Platform update") + +vlc_module_begin () + set_category(CAT_VIDEO) + set_subcategory(SUBCAT_VIDEO_VOUT) + set_help(D2D_HELP) + set_shortname("Direct2D") + set_description(N_("Direct2D video output")) + set_capability("vout display", 65) + add_shortcut("direct2d") + set_callbacks(Open, Close) +vlc_module_end () + + +/***************************************************************************** + * Local prototypes + *****************************************************************************/ +static picture_pool_t *Pool (vout_display_t *, unsigned); +static void Prepare(vout_display_t *, picture_t *); +static void Display(vout_display_t *, picture_t *); +static int Control(vout_display_t *, int, va_list); +static void Manage (vout_display_t *); + +static int D2D_CreateRenderTarget(vout_display_t *vd); +static void D2D_ResizeRenderTarget(vout_display_t *vd); +static void D2D_DestroyRenderTarget(vout_display_t *vd); + +/** + * Initialises Direct2D vout module + */ +static int Open(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + vout_display_sys_t *sys; + + vd->sys = sys = calloc(1, sizeof(*sys)); + if (!sys) + return VLC_ENOMEM; + + sys->d2_render_target = NULL; + + sys->d2_dll = LoadLibrary(TEXT("D2D1.DLL")); + if (!sys->d2_dll) { + if (object->b_force) + msg_Err(vd, "Cannot load D2D1.DLL, aborting"); + goto error; + } + + D2D1_FACTORY_OPTIONS fo = { + D2D1_DEBUG_LEVEL_NONE + }; + + HRESULT (WINAPI *D2D1CreateFactory)(D2D1_FACTORY_TYPE, REFIID, + const D2D1_FACTORY_OPTIONS *, + void **); + + D2D1CreateFactory = (void *)GetProcAddress(sys->d2_dll, + TEXT("D2D1CreateFactory")); + if (!D2D1CreateFactory) { + msg_Err(vd, + "Cannot locate reference to a D2D1CreateFactory ABI in D2D1.DLL"); + goto error; + } + +#ifndef NDEBUG + msg_Dbg(vd, "D2D1.DLL loaded"); +#endif + + HRESULT hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, + (REFIID)&IID_ID2D1Factory, + &fo, + (void **)&sys->d2_factory); + if (hr != S_OK) { + msg_Err(vd, "Cannot create Direct2D factory (hr = 0x%x)!", + (unsigned)hr); + goto error; + } + + if (CommonInit(vd)) + goto error; + + if (D2D_CreateRenderTarget(vd) != VLC_SUCCESS) + goto error; + + vout_display_info_t info = vd->info; + info.is_slow = false; + info.has_double_click = true; + info.has_hide_mouse = false; + info.has_pictures_invalid = false; + vd->info = info; + + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 for ID2D1Bitmap */ + vd->fmt.i_rmask = 0x000000ff; + vd->fmt.i_gmask = 0x0000ff00; + vd->fmt.i_bmask = 0x00000000; + + vd->pool = Pool; + vd->prepare = Prepare; + vd->display = Display; + vd->manage = Manage; + vd->control = Control; + + EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct2D output)"); + +#ifndef NDEBUG + msg_Dbg(vd, "Ready"); +#endif + + return VLC_SUCCESS; + +error: + Close(VLC_OBJECT(vd)); + return VLC_EGENERIC; +} + +/** + * Close Direct2D vout + */ +static void Close(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + + D2D_DestroyRenderTarget(vd); + + if (vd->sys->pool) + picture_pool_Delete(vd->sys->pool); + + CommonClean(vd); + + free(vd->sys); +} + +/** + * Handles pool allocations for bitmaps + */ +static picture_pool_t *Pool(vout_display_t *vd, unsigned count) +{ + vout_display_sys_t *sys = vd->sys; + + if (!sys->pool) { + sys->pool = picture_pool_NewFromFormat(&vd->fmt, count); +#ifndef NDEBUG + msg_Dbg(vd, "New picture pool created"); +#endif + } + + return sys->pool; +} + +/** + * Performs set up of ID2D1Bitmap memory ready for blitting + */ +static void Prepare(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + if (sys->d2_render_target && sys->d2_bitmap) { + + HRESULT hr = ID2D1Bitmap_CopyFromMemory(sys->d2_bitmap, + NULL /*&r_src*/, + picture->p[0].p_pixels, + picture->p[0].i_pitch); + if (hr != S_OK) + msg_Err(vd, "Failed to copy bitmap memory (hr = 0x%x)!", + (unsigned)hr); + +#ifndef NDEBUG + /*msg_Dbg(vd, "Bitmap dbg: target = %p, pitch = %d, bitmap = %p", + sys->d2_render_target, pitch, sys->d2_bitmap);*/ +#endif + } +} + +/** + * Blits a scaled picture_t to the render target + */ +static void Display(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_RECT_F r_dest = { + sys->rect_dest.left, + sys->rect_dest.top, + sys->rect_dest.right, + sys->rect_dest.bottom + }; + + if (sys->d2_render_target && sys->d2_bitmap) { + ID2D1HwndRenderTarget_BeginDraw(sys->d2_render_target); + + ID2D1HwndRenderTarget_DrawBitmap(sys->d2_render_target, + sys->d2_bitmap, + &r_dest, + 1.0f, + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, + NULL); + + HRESULT hr = ID2D1HwndRenderTarget_EndDraw(sys->d2_render_target, + NULL, + NULL); + if (hr == D2DERR_RECREATE_TARGET) { + D2D_DestroyRenderTarget(vd); + D2D_CreateRenderTarget(vd); + } + } + + picture_Release(picture); + + CommonDisplay(vd); +} + + /** + * Control event handler + */ +static int Control(vout_display_t *vd, int query, va_list args) +{ + return CommonControl(vd, query, args); +} + +/** + * Handles surface management + * ID2D1RenderTargets cannot be resized and must be recreated + */ +static void Manage(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + CommonManage(vd); + + if (sys->changes & DX_POSITION_CHANGE) { + D2D_ResizeRenderTarget(vd); + sys->changes &= ~DX_POSITION_CHANGE; + } +} + +/** + * Creates a ID2D1HwndRenderTarget and associated ID2D1Bitmap + */ +static int D2D_CreateRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + sys->d2_render_target = NULL; + + D2D1_PIXEL_FORMAT pf = { + DXGI_FORMAT_B8G8R8A8_UNORM, + D2D1_ALPHA_MODE_IGNORE + }; + + D2D1_RENDER_TARGET_PROPERTIES rtp = { + D2D1_RENDER_TARGET_TYPE_DEFAULT, + pf, + 0, + 0, + D2D1_RENDER_TARGET_USAGE_NONE, + D2D1_FEATURE_LEVEL_DEFAULT + }; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + D2D1_HWND_RENDER_TARGET_PROPERTIES hrtp = { + sys->hvideownd, + size, + D2D1_PRESENT_OPTIONS_IMMEDIATELY /* this might need fiddling */ + }; + + HRESULT hr = ID2D1Factory_CreateHwndRenderTarget(sys->d2_factory, + &rtp, + &hrtp, + &sys->d2_render_target); + if (hr != S_OK) { + msg_Err(vd, "Cannot create render target (hvideownd = 0x%x, width = %d, height = %d, pf.format = %d, hr = 0x%x)!", + (unsigned)hrtp.hwnd, hrtp.pixelSize.width, + hrtp.pixelSize.height, pf.format, (unsigned)hr); + + sys->d2_render_target = NULL; + + return VLC_EGENERIC; + } + + FLOAT dpi_x, dpi_y; + + ID2D1Factory_GetDesktopDpi(sys->d2_factory, + &dpi_x, + &dpi_y); + + D2D1_BITMAP_PROPERTIES bp = { + pf, + dpi_x, + dpi_y + }; + + D2D1_SIZE_U bitmap_size = { + vd->fmt.i_width, + vd->fmt.i_height + }; + + hr = ID2D1HwndRenderTarget_CreateBitmap(sys->d2_render_target, + bitmap_size, + NULL, + 0, + &bp, + &sys->d2_bitmap); + if (hr != S_OK) { + msg_Err(vd, "Failed to create bitmap (hr = 0x%x)!", (unsigned)hr); + + sys->d2_bitmap = NULL; + D2D_DestroyRenderTarget(vd); + + return VLC_EGENERIC; + } + +#ifndef NDEBUG + msg_Dbg(vd, "Render trgt dbg: dpi = %f, render_target = %p, bitmap = %p", + dpi_x, sys->d2_render_target, sys->d2_bitmap); +#endif + + return VLC_SUCCESS; +} + +/** + * Resizes a ID2D1HWndRenderTarget + */ +static void D2D_ResizeRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + HRESULT hr = ID2D1HwndRenderTarget_Resize(sys->d2_render_target, &size); + if (hr != S_OK) + msg_Err(vd, "Cannot resize render target (width = %d, height = %d, hr = 0x%x)!", + size.width, size.height, (unsigned)hr); +} + +/** + * Cleans up ID2D1HwndRenderTarget and ID2D1Bitmap + */ +static void D2D_DestroyRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + if (sys->d2_render_target) { + ID2D1HwndRenderTarget_Release(sys->d2_render_target); + sys->d2_render_target = NULL; + } + + if (sys->d2_bitmap) { + ID2D1Bitmap_Release(sys->d2_bitmap); + sys->d2_bitmap = NULL; + } + +#ifndef NDEBUG + msg_Dbg(vd, "Destroyed"); +#endif +} diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c index d2d5e26..46c15c4 100644 --- a/modules/video_output/msw/events.c +++ b/modules/video_output/msw/events.c @@ -49,6 +49,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include #include "common.h" -- 1.7.0.4 From david at 2of1.org Wed Jul 28 05:28:14 2010 From: david at 2of1.org (David Kaplan) Date: Wed, 28 Jul 2010 06:28:14 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100727213734.GA10197@elivagar.org> References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727213734.GA10197@elivagar.org> Message-ID: On Wed, Jul 28, 2010 at 12:37 AM, Laurent Aimar wrote: > > I have tested it and it works well (including zoom/ar/autoscale/crop). > Thanks as always! :) > > + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 > for ID2D1Bitmap */ > > + vd->fmt.i_rmask = 0x000000ff; > > + vd->fmt.i_gmask = 0x0000ff00; > > + vd->fmt.i_bmask = 0x00000000; > Can't 0x00ff0000 works (now that you don't use RGBA)? Still broken with RGB32 and RGBA so this is still necessary. I'm submitting the latest patch now... -- http://blog.2of1.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastien-devel at celeos.eu Wed Jul 28 08:23:34 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Wed, 28 Jul 2010 08:23:34 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_QT4=5Fvlm?= =?iso-8859-1?q?=3A_really_fix_=233938=2E_=28_R=E9mi_Duraffort_=29?= In-Reply-To: <20100727193006.804BC10EA6A@albiero.videolan.org> References: <20100727193006.804BC10EA6A@albiero.videolan.org> Message-ID: <1280298214.22591.3.camel@sebastien-desktop> On Tue, 2010-07-27 at 21:30 +0200, git at videolan.org wrote: > vlc | branch: master | R?mi Duraffort | Tue Jul 27 21:29:07 2010 +0200| [7f625e5f46e6b486ab6073f4f6cab7c1c6b01c83] | committer: R?mi Duraffort > > QT4_vlm: really fix #3938. > > > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7f625e5f46e6b486ab6073f4f6cab7c1c6b01c83 What happened to this commit ? cannot find it in my git history after a git pull. j-b backported the other one, so 1.1-bugfix is broken now. From xxcv07 at gmail.com Wed Jul 28 08:33:18 2010 From: xxcv07 at gmail.com (xxcv) Date: Wed, 28 Jul 2010 16:33:18 +1000 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727213734.GA10197@elivagar.org> Message-ID: <4C4FCF2E.3000201@gmail.com> On 28/07/2010 1:28 PM, David Kaplan wrote: > > > On Wed, Jul 28, 2010 at 12:37 AM, Laurent Aimar > wrote: > > I have tested it and it works well (including zoom/ar/autoscale/crop). > > Thanks as always! :) > > > + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to > BGR32 for ID2D1Bitmap */ > > + vd->fmt.i_rmask = 0x000000ff; > > + vd->fmt.i_gmask = 0x0000ff00; > > + vd->fmt.i_bmask = 0x00000000; > Can't 0x00ff0000 works (now that you don't use RGBA)? > > > Still broken with RGB32 and RGBA so this is still necessary. > > I'm submitting the latest patch now... > > -- > http://blog.2of1.org Trying to compile #include d2d1.h:545:68: error: redefinition of typedef 'ID2D1Resource' And lots of redef errors. From remi at remlab.net Wed Jul 28 08:33:55 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 28 Jul 2010 08:33:55 +0200 Subject: [vlc-devel] =?utf-8?q?=5Bvlc-commits=5D_commit=3A_QT4=5Fvlm=3A_re?= =?utf-8?q?ally_fix_=233938=2E_=28_R=C3=A9mi_Duraffort_=29?= In-Reply-To: <1280298214.22591.3.camel@sebastien-desktop> References: <20100727193006.804BC10EA6A@albiero.videolan.org> <1280298214.22591.3.camel@sebastien-desktop> Message-ID: On Wed, 28 Jul 2010 08:23:34 +0200, S?bastien Escudier wrote: > What happened to this commit ? cannot find it in my git history after a > git pull. http://git.videolan.org/gitweb.cgi?p=vlc.git;a=commit;h=df316b5efcba5b2b50b9e27ba2f21574f21f5207 > j-b backported the other one, so 1.1-bugfix is broken now. That's what we get for back porting patches without waiting (I do share part of the blame (in general)). -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 28 08:36:59 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 28 Jul 2010 08:36:59 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100727213734.GA10197@elivagar.org> References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727213734.GA10197@elivagar.org> Message-ID: On Tue, 27 Jul 2010 23:37:34 +0200, Laurent Aimar wrote: > Just a remark for the other devs: that makes it higher than wingdi and > glwin32. With the current feature set of both modules, I don't think there > is > any issue. > But I think that using 65 would be better (to have it higher than SDL but > lower than direct3d). Does SDL not provide a YUV scaled overlay on Win32, as with XVideo? Also WTH would we include SDL in our builds anyway? (And WTH do Debian/Ubuntu include it too?) -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From remi at remlab.net Wed Jul 28 08:38:55 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 28 Jul 2010 08:38:55 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727213734.GA10197@elivagar.org> Message-ID: <2de8275cc9e704413a4ad5dd698d776d@chewa.net> On Wed, 28 Jul 2010 06:28:14 +0300, David Kaplan wrote: > On Wed, Jul 28, 2010 at 12:37 AM, Laurent Aimar > wrote: >> >> I have tested it and it works well (including zoom/ar/autoscale/crop). >> > Thanks as always! :) > > >> > + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 >> for ID2D1Bitmap */ >> > + vd->fmt.i_rmask = 0x000000ff; >> > + vd->fmt.i_gmask = 0x0000ff00; >> > + vd->fmt.i_bmask = 0x00000000; >> Can't 0x00ff0000 works (now that you don't use RGBA)? > > > Still broken with RGB32 and RGBA so this is still necessary. Note that VLC_CODEC_RGBA does not implement RGB masks currently. It is always R-G-B-A as the name implies. And frankly, I prefer it that way - I find that much easier to deal with in most cases. We should probably add a separate VLC_CODEC_ARGB codec. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From sebastien-devel at celeos.eu Wed Jul 28 08:40:00 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Wed, 28 Jul 2010 08:40:00 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_QT4=5Fvlm?= =?iso-8859-1?q?=3A_really_fix_=233938=2E_=28_R=E9mi_Duraffort_=29?= In-Reply-To: References: <20100727193006.804BC10EA6A@albiero.videolan.org> <1280298214.22591.3.camel@sebastien-desktop> Message-ID: <1280299200.22591.9.camel@sebastien-desktop> On Wed, 2010-07-28 at 08:33 +0200, R?mi Denis-Courmont wrote: > On Wed, 28 Jul 2010 08:23:34 +0200, S?bastien Escudier > wrote: > > What happened to this commit ? cannot find it in my git history after a > > git pull. > > http://git.videolan.org/gitweb.cgi?p=vlc.git;a=commit;h=df316b5efcba5b2b50b9e27ba2f21574f21f5207 This one is the commit R?mi was supposed to fix, and this is the commit j-b backported. But R?mi commited the fix of the fix yesterday : http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7f625e5f46e6b486ab6073f4f6cab7c1c6b01c83 but it doesn't appear in my git or here : http://git.videolan.org/gitweb.cgi?p=vlc.git;a=summary From david at 2of1.org Wed Jul 28 09:03:44 2010 From: david at 2of1.org (David Kaplan) Date: Wed, 28 Jul 2010 10:03:44 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727213734.GA10197@elivagar.org> <4C4FCF2E.3000201@gmail.com> Message-ID: On Wed, Jul 28, 2010 at 9:33 AM, xxcv wrote: > Trying to compile #include > d2d1.h:545:68: error: redefinition of typedef 'ID2D1Resource' > And lots of redef errors. > Try the version from my private git: http://github.com/2of1/d2d1headers/tarball/master Just extract to /usr/win32/include and compile with MinGW. -------------- next part -------------- An HTML attachment was scrubbed... URL: From david at 2of1.org Wed Jul 28 09:04:44 2010 From: david at 2of1.org (David Kaplan) Date: Wed, 28 Jul 2010 10:04:44 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <2de8275cc9e704413a4ad5dd698d776d@chewa.net> References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727213734.GA10197@elivagar.org> <2de8275cc9e704413a4ad5dd698d776d@chewa.net> Message-ID: 2010/7/28 R?mi Denis-Courmont > > Note that VLC_CODEC_RGBA does not implement RGB masks currently. It is > always R-G-B-A as the name implies. And frankly, I prefer it that way - I > find that much easier to deal with in most cases. We should probably add a > separate VLC_CODEC_ARGB codec. > > But then VLC would need a version for each combination: BGR, RGB, etc. etc.? -- http://blog.2of1.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Wed Jul 28 09:41:06 2010 From: remi at remlab.net (=?UTF-8?Q?R=C3=A9mi_Denis-Courmont?=) Date: Wed, 28 Jul 2010 09:41:06 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727213734.GA10197@elivagar.org> <2de8275cc9e704413a4ad5dd698d776d@chewa.net> Message-ID: <2dd334e82fe56511d2b96533ed0e0673@chewa.net> On Wed, 28 Jul 2010 10:04:44 +0300, David Kaplan wrote: > 2010/7/28 R?mi Denis-Courmont > >> >> Note that VLC_CODEC_RGBA does not implement RGB masks currently. It is >> always R-G-B-A as the name implies. And frankly, I prefer it that way - > I >> find that much easier to deal with in most cases. We should probably add > a >> separate VLC_CODEC_ARGB codec. >> >> > But then VLC would need a version for each combination: BGR, RGB, etc. > etc.? In practice, you need to handle each cases anyway, especially when writing heavy optimizations. I don't know how many combinations are really used for RV24 and RV32. Somehow, I doubt all 6 possible combinations of RV24, and 12 combinations of RV32 are useful. For alpha-mask RGB, I have only ever seen ARGB and RGBA. Even if we took mismatched endianess into account, 4 different codecs seems much more reasonable than 24 different bit masks combinations. -- R?mi Denis-Courmont http://www.remlab.net http://fi.linkedin.com/in/remidenis From david at 2of1.org Wed Jul 28 09:50:30 2010 From: david at 2of1.org (David Kaplan) Date: Wed, 28 Jul 2010 10:50:30 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <2dd334e82fe56511d2b96533ed0e0673@chewa.net> References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727213734.GA10197@elivagar.org> <2de8275cc9e704413a4ad5dd698d776d@chewa.net> <2dd334e82fe56511d2b96533ed0e0673@chewa.net> Message-ID: 2010/7/28 R?mi Denis-Courmont > > In practice, you need to handle each cases anyway, especially when writing > heavy optimizations. > > I don't know how many combinations are really used for RV24 and RV32. > Somehow, I doubt all 6 possible combinations of RV24, and 12 combinations > of RV32 are useful. For alpha-mask RGB, I have only ever seen ARGB and > RGBA. Even if we took mismatched endianess into account, 4 different codecs > seems much more reasonable than 24 different bit masks combinations. > I think what you say makes sense. And it's quite easy just to do. Maybe if I have some more time i'll start splitting off some of the more useful formats. -- http://blog.2of1.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From fenrir at elivagar.org Wed Jul 28 09:59:05 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 28 Jul 2010 09:59:05 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727213734.GA10197@elivagar.org> Message-ID: <20100728075905.GA8838@elivagar.org> Hi, On Wed, Jul 28, 2010 at 08:36:59AM +0200, R?mi Denis-Courmont wrote: > On Tue, 27 Jul 2010 23:37:34 +0200, Laurent Aimar > wrote: > > Just a remark for the other devs: that makes it higher than wingdi and > > glwin32. With the current feature set of both modules, I don't think > there > > is > > any issue. > > But I think that using 65 would be better (to have it higher than SDL > but > > lower than direct3d). > > Does SDL not provide a YUV scaled overlay on Win32, as with XVideo? Yes but in this case our directx or direct3d module should have already been selected. Besides, SDL is not embed in the gui and I am not quite sure if it works well under win32 (inside vlc). -- fenrir From fenrir at elivagar.org Wed Jul 28 10:01:59 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 28 Jul 2010 10:01:59 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <2de8275cc9e704413a4ad5dd698d776d@chewa.net> References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727213734.GA10197@elivagar.org> <2de8275cc9e704413a4ad5dd698d776d@chewa.net> Message-ID: <20100728080159.GB8838@elivagar.org> On Wed, Jul 28, 2010 at 08:38:55AM +0200, R?mi Denis-Courmont wrote: > > On Wed, 28 Jul 2010 06:28:14 +0300, David Kaplan wrote: > > On Wed, Jul 28, 2010 at 12:37 AM, Laurent Aimar > > wrote: > >> > >> I have tested it and it works well (including zoom/ar/autoscale/crop). > >> > > Thanks as always! :) > > > > > >> > + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 > >> for ID2D1Bitmap */ > >> > + vd->fmt.i_rmask = 0x000000ff; > >> > + vd->fmt.i_gmask = 0x0000ff00; > >> > + vd->fmt.i_bmask = 0x00000000; > >> Can't 0x00ff0000 works (now that you don't use RGBA)? > > > > > > Still broken with RGB32 and RGBA so this is still necessary. > > Note that VLC_CODEC_RGBA does not implement RGB masks currently. Yes but rgb masks and VLC_CODEC_RGB32 should work. Setting one of the mask to zero force the core to redefine all of the masks (except for RGBA), and so defining them here should work (it is done for glwin32 for example). Not sure what is the exact issue, I will have to test. -- fenrir From david at 2of1.org Wed Jul 28 10:14:58 2010 From: david at 2of1.org (David Kaplan) Date: Wed, 28 Jul 2010 11:14:58 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100728080159.GB8838@elivagar.org> References: <1280062991-20707-1-git-send-email-david@2of1.org> <20100727213734.GA10197@elivagar.org> <2de8275cc9e704413a4ad5dd698d776d@chewa.net> <20100728080159.GB8838@elivagar.org> Message-ID: On Wed, Jul 28, 2010 at 11:01 AM, Laurent Aimar wrote: > Not sure what is the exact issue, I will have to test. > > Actually I don't think there is an issue. I was setting the masks wrong (they didn't match the relevant chroma option). New Direct2D patch to follow... -- http://blog.2of1.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From david at 2of1.org Wed Jul 28 10:17:11 2010 From: david at 2of1.org (David Kaplan) Date: Wed, 28 Jul 2010 11:17:11 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module Message-ID: <1280305031-18325-1-git-send-email-david@2of1.org> Adds support for the D2D API on Win7/Vista SP2 with Platform Update Requires d2d1 contrib headers --- configure.ac | 17 ++ modules/video_output/msw/Modules.am | 8 + modules/video_output/msw/common.c | 9 +- modules/video_output/msw/common.h | 7 + modules/video_output/msw/direct2d.c | 417 +++++++++++++++++++++++++++++++++++ modules/video_output/msw/events.c | 3 + 6 files changed, 458 insertions(+), 3 deletions(-) create mode 100644 modules/video_output/msw/direct2d.c diff --git a/configure.ac b/configure.ac index 8a8701e..738f631 100644 --- a/configure.ac +++ b/configure.ac @@ -3490,6 +3490,23 @@ then fi dnl +dnl Windows Direct2D plugin +dnl +AC_ARG_ENABLE(direct2d, + [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)]) +if test "${enable_direct2d}" != "no"; then + if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" + then + AC_CHECK_HEADERS(d2d1.h, + [ + VLC_ADD_PLUGIN([direct2d]) + VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32]) + ], [AC_MSG_WARN([Cannot find Direct2D headers!])] + ) + fi +fi + +dnl dnl win32 GDI plugin dnl AC_ARG_ENABLE(wingdi, diff --git a/modules/video_output/msw/Modules.am b/modules/video_output/msw/Modules.am index 51807c8..0613bae 100644 --- a/modules/video_output/msw/Modules.am +++ b/modules/video_output/msw/Modules.am @@ -1,3 +1,11 @@ +SOURCES_direct2d = \ + direct2d.c \ + common.h \ + events.h \ + events.c \ + common.c \ + $(NULL) + SOURCES_directx = \ directx.c \ common.h \ diff --git a/modules/video_output/msw/common.c b/modules/video_output/msw/common.c index 5704d5c..fddbd3d 100644 --- a/modules/video_output/msw/common.c +++ b/modules/video_output/msw/common.c @@ -48,6 +48,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include "common.h" @@ -379,7 +382,7 @@ void UpdateRects(vout_display_t *vd, SWP_NOCOPYBITS|SWP_NOZORDER|SWP_ASYNCWINDOWPOS); /* Destination image position and dimensions */ -#if defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) rect_dest.left = 0; rect_dest.right = place.width; rect_dest.top = 0; @@ -398,7 +401,7 @@ void UpdateRects(vout_display_t *vd, #endif -#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) +#if defined(MODULE_NAME_IS_directx) || defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* UpdateOverlay directdraw function doesn't automatically clip to the * display size so we need to do it otherwise it will fail * It is also needed for d3d to avoid exceding our surface size */ @@ -457,7 +460,7 @@ void UpdateRects(vout_display_t *vd, /* Apply overlay hardware constraints */ if (sys->use_overlay) AlignRect(&rect_src_clipped, sys->i_align_src_boundary, sys->i_align_src_size); -#elif defined(MODULE_NAME_IS_direct3d) +#elif defined(MODULE_NAME_IS_direct3d) || defined(MODULE_NAME_IS_direct2d) /* Needed at least with YUV content */ rect_src_clipped.left &= ~1; rect_src_clipped.right &= ~1; diff --git a/modules/video_output/msw/common.h b/modules/video_output/msw/common.h index e023ef4..3a67c7d 100644 --- a/modules/video_output/msw/common.h +++ b/modules/video_output/msw/common.h @@ -157,6 +157,13 @@ struct vout_display_sys_t vout_display_opengl_t vgl; #endif +#ifdef MODULE_NAME_IS_direct2d + HINSTANCE d2_dll; /* handle of the opened d2d1 dll */ + ID2D1Factory *d2_factory; /* D2D factory */ + ID2D1HwndRenderTarget *d2_render_target; /* D2D rendering target */ + ID2D1Bitmap *d2_bitmap; /* D2 bitmap */ +#endif + #ifdef MODULE_NAME_IS_direct3d bool allow_hw_yuv; /* Should we use hardware YUV->RGB conversions */ /* show video on desktop window ? */ diff --git a/modules/video_output/msw/direct2d.c b/modules/video_output/msw/direct2d.c new file mode 100644 index 0000000..11757bd --- /dev/null +++ b/modules/video_output/msw/direct2d.c @@ -0,0 +1,417 @@ +/***************************************************************************** + * direct2d.c : Direct2D video output plugin for vlc (Win7/Vista SP2 PF Update) + ***************************************************************************** + * Copyright (C) 2010 VideoLAN and AUTHORS + * $Id$ + * + * Author: David Kaplan + * + * 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 + * (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. + * + * 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. + *****************************************************************************/ + +/***************************************************************************** + * Preamble + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif +#include + +#include +#include +#include +#include + +#include +#include + +#include + +#include "common.h" + +#include +#undef GUID_EXT +#define GUID_EXT +DEFINE_GUID(IID_ID2D1Factory, 0x6152247, 0x6f50, 0x465a, 0x92, 0x45, 0x11, 0x8b, 0xfd, 0x3b, 0x60, 0x7); + +/***************************************************************************** + * Module descriptor + *****************************************************************************/ +static int Open (vlc_object_t *); +static void Close(vlc_object_t *); + +#define D2D_HELP N_("Video output for Windows 7/Windows Vista with Platform update") + +vlc_module_begin () + set_category(CAT_VIDEO) + set_subcategory(SUBCAT_VIDEO_VOUT) + set_help(D2D_HELP) + set_shortname("Direct2D") + set_description(N_("Direct2D video output")) + set_capability("vout display", 65) + add_shortcut("direct2d") + set_callbacks(Open, Close) +vlc_module_end () + + +/***************************************************************************** + * Local prototypes + *****************************************************************************/ +static picture_pool_t *Pool (vout_display_t *, unsigned); +static void Prepare(vout_display_t *, picture_t *); +static void Display(vout_display_t *, picture_t *); +static int Control(vout_display_t *, int, va_list); +static void Manage (vout_display_t *); + +static int D2D_CreateRenderTarget(vout_display_t *vd); +static void D2D_ResizeRenderTarget(vout_display_t *vd); +static void D2D_DestroyRenderTarget(vout_display_t *vd); + +/** + * Initialises Direct2D vout module + */ +static int Open(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + vout_display_sys_t *sys; + + vd->sys = sys = calloc(1, sizeof(*sys)); + if (!sys) + return VLC_ENOMEM; + + sys->d2_render_target = NULL; + + sys->d2_dll = LoadLibrary(TEXT("D2D1.DLL")); + if (!sys->d2_dll) { + if (object->b_force) + msg_Err(vd, "Cannot load D2D1.DLL, aborting"); + goto error; + } + + D2D1_FACTORY_OPTIONS fo = { + D2D1_DEBUG_LEVEL_NONE + }; + + HRESULT (WINAPI *D2D1CreateFactory)(D2D1_FACTORY_TYPE, REFIID, + const D2D1_FACTORY_OPTIONS *, + void **); + + D2D1CreateFactory = (void *)GetProcAddress(sys->d2_dll, + TEXT("D2D1CreateFactory")); + if (!D2D1CreateFactory) { + msg_Err(vd, + "Cannot locate reference to a D2D1CreateFactory ABI in D2D1.DLL"); + goto error; + } + +#ifndef NDEBUG + msg_Dbg(vd, "D2D1.DLL loaded"); +#endif + + HRESULT hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, + (REFIID)&IID_ID2D1Factory, + &fo, + (void **)&sys->d2_factory); + if (hr != S_OK) { + msg_Err(vd, "Cannot create Direct2D factory (hr = 0x%x)!", + (unsigned)hr); + goto error; + } + + if (CommonInit(vd)) + goto error; + + if (D2D_CreateRenderTarget(vd) != VLC_SUCCESS) + goto error; + + vout_display_info_t info = vd->info; + info.is_slow = false; + info.has_double_click = true; + info.has_hide_mouse = false; + info.has_pictures_invalid = false; + vd->info = info; + + vd->fmt.i_chroma = VLC_CODEC_RGB32; /* masks change this to BGR32 for ID2D1Bitmap */ + vd->fmt.i_rmask = 0x0000ff00; + vd->fmt.i_gmask = 0x00ff0000; + vd->fmt.i_bmask = 0xff000000; + + vd->pool = Pool; + vd->prepare = Prepare; + vd->display = Display; + vd->manage = Manage; + vd->control = Control; + + EventThreadUpdateTitle(sys->event, VOUT_TITLE " (Direct2D output)"); + +#ifndef NDEBUG + msg_Dbg(vd, "Ready"); +#endif + + return VLC_SUCCESS; + +error: + Close(VLC_OBJECT(vd)); + return VLC_EGENERIC; +} + +/** + * Close Direct2D vout + */ +static void Close(vlc_object_t *object) +{ + vout_display_t *vd = (vout_display_t *)object; + + D2D_DestroyRenderTarget(vd); + + if (vd->sys->pool) + picture_pool_Delete(vd->sys->pool); + + CommonClean(vd); + + free(vd->sys); +} + +/** + * Handles pool allocations for bitmaps + */ +static picture_pool_t *Pool(vout_display_t *vd, unsigned count) +{ + vout_display_sys_t *sys = vd->sys; + + if (!sys->pool) { + sys->pool = picture_pool_NewFromFormat(&vd->fmt, count); +#ifndef NDEBUG + msg_Dbg(vd, "New picture pool created"); +#endif + } + + return sys->pool; +} + +/** + * Performs set up of ID2D1Bitmap memory ready for blitting + */ +static void Prepare(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + if (sys->d2_render_target && sys->d2_bitmap) { + + HRESULT hr = ID2D1Bitmap_CopyFromMemory(sys->d2_bitmap, + NULL /*&r_src*/, + picture->p[0].p_pixels, + picture->p[0].i_pitch); + if (hr != S_OK) + msg_Err(vd, "Failed to copy bitmap memory (hr = 0x%x)!", + (unsigned)hr); + +#ifndef NDEBUG + /*msg_Dbg(vd, "Bitmap dbg: target = %p, pitch = %d, bitmap = %p", + sys->d2_render_target, pitch, sys->d2_bitmap);*/ +#endif + } +} + +/** + * Blits a scaled picture_t to the render target + */ +static void Display(vout_display_t *vd, picture_t *picture) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_RECT_F r_dest = { + sys->rect_dest.left, + sys->rect_dest.top, + sys->rect_dest.right, + sys->rect_dest.bottom + }; + + if (sys->d2_render_target && sys->d2_bitmap) { + ID2D1HwndRenderTarget_BeginDraw(sys->d2_render_target); + + ID2D1HwndRenderTarget_DrawBitmap(sys->d2_render_target, + sys->d2_bitmap, + &r_dest, + 1.0f, + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, + NULL); + + HRESULT hr = ID2D1HwndRenderTarget_EndDraw(sys->d2_render_target, + NULL, + NULL); + if (hr == D2DERR_RECREATE_TARGET) { + D2D_DestroyRenderTarget(vd); + D2D_CreateRenderTarget(vd); + } + } + + picture_Release(picture); + + CommonDisplay(vd); +} + + /** + * Control event handler + */ +static int Control(vout_display_t *vd, int query, va_list args) +{ + return CommonControl(vd, query, args); +} + +/** + * Handles surface management + * ID2D1RenderTargets cannot be resized and must be recreated + */ +static void Manage(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + CommonManage(vd); + + if (sys->changes & DX_POSITION_CHANGE) { + D2D_ResizeRenderTarget(vd); + sys->changes &= ~DX_POSITION_CHANGE; + } +} + +/** + * Creates a ID2D1HwndRenderTarget and associated ID2D1Bitmap + */ +static int D2D_CreateRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + sys->d2_render_target = NULL; + + D2D1_PIXEL_FORMAT pf = { + DXGI_FORMAT_B8G8R8A8_UNORM, + D2D1_ALPHA_MODE_IGNORE + }; + + D2D1_RENDER_TARGET_PROPERTIES rtp = { + D2D1_RENDER_TARGET_TYPE_DEFAULT, + pf, + 0, + 0, + D2D1_RENDER_TARGET_USAGE_NONE, + D2D1_FEATURE_LEVEL_DEFAULT + }; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + D2D1_HWND_RENDER_TARGET_PROPERTIES hrtp = { + sys->hvideownd, + size, + D2D1_PRESENT_OPTIONS_IMMEDIATELY /* this might need fiddling */ + }; + + HRESULT hr = ID2D1Factory_CreateHwndRenderTarget(sys->d2_factory, + &rtp, + &hrtp, + &sys->d2_render_target); + if (hr != S_OK) { + msg_Err(vd, "Cannot create render target (hvideownd = 0x%x, width = %d, height = %d, pf.format = %d, hr = 0x%x)!", + (unsigned)hrtp.hwnd, hrtp.pixelSize.width, + hrtp.pixelSize.height, pf.format, (unsigned)hr); + + sys->d2_render_target = NULL; + + return VLC_EGENERIC; + } + + FLOAT dpi_x, dpi_y; + + ID2D1Factory_GetDesktopDpi(sys->d2_factory, + &dpi_x, + &dpi_y); + + D2D1_BITMAP_PROPERTIES bp = { + pf, + dpi_x, + dpi_y + }; + + D2D1_SIZE_U bitmap_size = { + vd->fmt.i_width, + vd->fmt.i_height + }; + + hr = ID2D1HwndRenderTarget_CreateBitmap(sys->d2_render_target, + bitmap_size, + NULL, + 0, + &bp, + &sys->d2_bitmap); + if (hr != S_OK) { + msg_Err(vd, "Failed to create bitmap (hr = 0x%x)!", (unsigned)hr); + + sys->d2_bitmap = NULL; + D2D_DestroyRenderTarget(vd); + + return VLC_EGENERIC; + } + +#ifndef NDEBUG + msg_Dbg(vd, "Render trgt dbg: dpi = %f, render_target = %p, bitmap = %p", + dpi_x, sys->d2_render_target, sys->d2_bitmap); +#endif + + return VLC_SUCCESS; +} + +/** + * Resizes a ID2D1HWndRenderTarget + */ +static void D2D_ResizeRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + D2D1_SIZE_U size = { + sys->rect_dest.right - sys->rect_dest.left, + sys->rect_dest.bottom - sys->rect_dest.top + }; + + HRESULT hr = ID2D1HwndRenderTarget_Resize(sys->d2_render_target, &size); + if (hr != S_OK) + msg_Err(vd, "Cannot resize render target (width = %d, height = %d, hr = 0x%x)!", + size.width, size.height, (unsigned)hr); +} + +/** + * Cleans up ID2D1HwndRenderTarget and ID2D1Bitmap + */ +static void D2D_DestroyRenderTarget(vout_display_t *vd) +{ + vout_display_sys_t *sys = vd->sys; + + if (sys->d2_render_target) { + ID2D1HwndRenderTarget_Release(sys->d2_render_target); + sys->d2_render_target = NULL; + } + + if (sys->d2_bitmap) { + ID2D1Bitmap_Release(sys->d2_bitmap); + sys->d2_bitmap = NULL; + } + +#ifndef NDEBUG + msg_Dbg(vd, "Destroyed"); +#endif +} diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c index d2d5e26..46c15c4 100644 --- a/modules/video_output/msw/events.c +++ b/modules/video_output/msw/events.c @@ -49,6 +49,9 @@ #ifdef MODULE_NAME_IS_glwin32 #include "../opengl.h" #endif +#ifdef MODULE_NAME_IS_direct2d +#include +#endif #include #include "common.h" -- 1.7.0.4 From rafael.carre at gmail.com Wed Jul 28 15:56:29 2010 From: rafael.carre at gmail.com (=?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?=) Date: Wed, 28 Jul 2010 15:56:29 +0200 Subject: [vlc-devel] [PATCH] Simplify msg_* priority Message-ID: <1280325389-4327-1-git-send-email-rafael.carre@gmail.com> Remove misused msg_Info(), which really was a more outstanding msg_Dbg() It is now useless with --verbose-objects This patch defines msg_Info() to behave like msg_Dbg(), all msg_Info() occurences should be replaced with msg_Dbg() in the commit (i can do that because i am a sed god) Messages now show correctly with --control logger --verbose / -vv usage is unchanged --- include/vlc_messages.h | 15 +++++-------- modules/gui/qt4/dialogs/messages.cpp | 4 --- modules/misc/logger.c | 8 ++---- src/misc/messages.c | 37 +++++---------------------------- 4 files changed, 15 insertions(+), 49 deletions(-) diff --git a/include/vlc_messages.h b/include/vlc_messages.h index 6bfd5da..73e65b7 100644 --- a/include/vlc_messages.h +++ b/include/vlc_messages.h @@ -59,14 +59,11 @@ typedef struct } msg_item_t; /* Message types */ -/** standard messages */ -#define VLC_MSG_INFO 0 -/** error messages */ -#define VLC_MSG_ERR 1 -/** warning messages */ -#define VLC_MSG_WARN 2 -/** debug messages */ -#define VLC_MSG_DBG 3 +enum { + VLC_MSG_ERR = 0, + VLC_MSG_WARN = 1, + VLC_MSG_DBG = 2, +}; static inline msg_item_t *msg_Hold (msg_item_t *msg) { @@ -92,7 +89,7 @@ VLC_EXPORT( void, msg_GenericVa, ( vlc_object_t *, int, const char *, const char #define msg_GenericVa(a, b, c, d, e) msg_GenericVa(VLC_OBJECT(a), b, c, d, e) #define msg_Info( p_this, ... ) \ - msg_Generic( VLC_OBJECT(p_this), VLC_MSG_INFO, \ + msg_Generic( VLC_OBJECT(p_this), VLC_MSG_DBG, \ MODULE_STRING, __VA_ARGS__ ) #define msg_Err( p_this, ... ) \ msg_Generic( VLC_OBJECT(p_this), VLC_MSG_ERR, \ diff --git a/modules/gui/qt4/dialogs/messages.cpp b/modules/gui/qt4/dialogs/messages.cpp index 614db13..53bbc10 100644 --- a/modules/gui/qt4/dialogs/messages.cpp +++ b/modules/gui/qt4/dialogs/messages.cpp @@ -246,10 +246,6 @@ void MessagesDialog::sinkMessage( msg_item_t *item ) switch (item->i_type) { - case VLC_MSG_INFO: - messages->setTextColor( "blue" ); - messages->insertPlainText( " info: " ); - break; case VLC_MSG_ERR: messages->setTextColor( "red" ); messages->insertPlainText( " error: " ); diff --git a/modules/misc/logger.c b/modules/misc/logger.c index bb21c8d..bdea458 100644 --- a/modules/misc/logger.c +++ b/modules/misc/logger.c @@ -397,8 +397,7 @@ static void Overflow (msg_cb_data_t *p_sys, msg_item_t *p_item, unsigned overrun vlc_restorecancel( canc ); } -static const char ppsz_type[4][11] = { - ": ", +static const char ppsz_type[3][11] = { " error: ", " warning: ", " debug: ", @@ -413,7 +412,7 @@ static void TextPrint( const msg_item_t *p_msg, FILE *p_file ) #ifdef HAVE_SYSLOG_H static void SyslogPrint( const msg_item_t *p_msg ) { - static const int i_prio[4] = { LOG_INFO, LOG_ERR, LOG_WARNING, LOG_DEBUG }; + static const int i_prio[3] = { LOG_ERR, LOG_WARNING, LOG_DEBUG }; int i_priority = i_prio[p_msg->i_type]; if( p_msg->psz_header ) @@ -428,8 +427,7 @@ static void SyslogPrint( const msg_item_t *p_msg ) static void HtmlPrint( const msg_item_t *p_msg, FILE *p_file ) { - static const char ppsz_color[4][30] = { - "", + static const char ppsz_color[3][30] = { "", "", "", diff --git a/src/misc/messages.c b/src/misc/messages.c index 063ae60..3f688a0 100644 --- a/src/misc/messages.c +++ b/src/misc/messages.c @@ -470,21 +470,9 @@ void msg_GenericVa (vlc_object_t *p_this, int i_type, if( val == kObjectPrintingEnabled ); /* Allowed */ else if( !bank->all_objects_enabled ) continue; } - switch( p_item->i_type ) - { - case VLC_MSG_INFO: - case VLC_MSG_ERR: - if( sub->verbosity < 0 ) continue; - break; - case VLC_MSG_WARN: - if( sub->verbosity < 1 ) continue; - break; - case VLC_MSG_DBG: - if( sub->verbosity < 2 ) continue; - break; - } - sub->func (sub->opaque, p_item, 0); + if (sub->verbosity >= p_item->i_type) + sub->func (sub->opaque, p_item, 0); } vlc_rwlock_unlock (&bank->lock); msg_Release (p_item); @@ -504,28 +492,15 @@ static void PrintMsg ( vlc_object_t * p_this, msg_item_t * p_item ) # define WHITE COL(0,1) # define GRAY "\033[0m" - static const char ppsz_type[4][9] = { "", " error", " warning", " debug" }; - static const char ppsz_color[4][8] = { WHITE, RED, YELLOW, GRAY }; + static const char ppsz_type[3][9] = { " error", " warning", " debug" }; + static const char ppsz_color[3][8] = { RED, YELLOW, GRAY }; const char *psz_object; libvlc_priv_t *priv = libvlc_priv (p_this->p_libvlc); msg_bank_t *bank = priv->msg_bank; int i_type = p_item->i_type; - switch( i_type ) - { - case VLC_MSG_ERR: - if( priv->i_verbose < 0 ) return; - break; - case VLC_MSG_INFO: - if( priv->i_verbose < 0 ) return; - break; - case VLC_MSG_WARN: - if( priv->i_verbose < 1 ) return; - break; - case VLC_MSG_DBG: - if( priv->i_verbose < 2 ) return; - break; - } + if( priv->i_verbose < i_type ) + return; psz_object = p_item->psz_object_type; void * val = vlc_dictionary_value_for_key (&bank->enabled_objects, -- 1.7.0.4 From jb at videolan.org Wed Jul 28 16:00:17 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 28 Jul 2010 16:00:17 +0200 Subject: [vlc-devel] [PATCH] Simplify msg_* priority In-Reply-To: <1280325389-4327-1-git-send-email-rafael.carre@gmail.com> References: <1280325389-4327-1-git-send-email-rafael.carre@gmail.com> Message-ID: <20100728140017.GA2232@videolan.org> On Wed, Jul 28, 2010 at 03:56:29PM +0200, Rafa?l Carr? wrote : > Remove misused msg_Info(), which really was a more outstanding msg_Dbg() msg_Info is useful and should be used to tell informative stuffs, like samplerate, codecs and so on. Avcodec uses it well for example: video.c: msg_Info( p_dec, "Using %s for hardware decoding.", p_sys->p_va->description ); Or Dts: codec/dts.c: msg_Info( p_dec, "DTS channels:%d samplerate:%d bitrate:%d", Therefore, I don't think we should remove it. -- Jean-Baptiste Kempf http://www.jbkempf.com/ From remi at remlab.net Wed Jul 28 16:12:05 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 28 Jul 2010 17:12:05 +0300 Subject: [vlc-devel] [PATCH] Simplify msg_* priority In-Reply-To: <1280325389-4327-1-git-send-email-rafael.carre@gmail.com> References: <1280325389-4327-1-git-send-email-rafael.carre@gmail.com> Message-ID: <201007281712.05314.remi@remlab.net> Le mercredi 28 juillet 2010 16:56:29 Rafa?l Carr?, vous avez ?crit : > Remove misused msg_Info(), which really was a more outstanding msg_Dbg() Why misused? -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Wed Jul 28 16:47:33 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Wed, 28 Jul 2010 16:47:33 +0200 Subject: [vlc-devel] VLC 1.1.2 In-Reply-To: <20100727103227.GA12069@videolan.org> References: <20100727103227.GA12069@videolan.org> Message-ID: <20100728144733.GA12189@videolan.org> On Tue, Jul 27, 2010 at 12:32:27PM +0200, Jean-Baptiste Kempf wrote : > I know we just released 1.1.1, but I would like to do a new release, I will tag tonight, or tomorrow morning. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From sebastien-devel at celeos.eu Wed Jul 28 16:55:33 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Wed, 28 Jul 2010 16:55:33 +0200 Subject: [vlc-devel] VLC 1.1.2 In-Reply-To: <20100728144733.GA12189@videolan.org> References: <20100727103227.GA12069@videolan.org> <20100728144733.GA12189@videolan.org> Message-ID: <1280328933.22591.30.camel@sebastien-desktop> On Wed, 2010-07-28 at 16:47 +0200, Jean-Baptiste Kempf wrote: > On Tue, Jul 27, 2010 at 12:32:27PM +0200, Jean-Baptiste Kempf wrote : > > I know we just released 1.1.1, but I would like to do a new release, > > I will tag tonight, or tomorrow morning. VLM export is more broken than in 1.1.1, so that's not a good idea for now... I am still waiting for an answer to : http://mailman.videolan.org/pipermail/vlc-devel/2010-July/076306.html From mark at hassman.org Wed Jul 28 19:28:15 2010 From: mark at hassman.org (Mark Hassman) Date: Wed, 28 Jul 2010 13:28:15 -0400 Subject: [vlc-devel] [PATCH] Improved large-playlist handling within http-interface Message-ID: <430A5ADDA76C4E228D8D574BB42847BD@amnesia> http-interface: - Fixes load failure with large playlist. - Improved display of large playlist. - Eliminates http server load on playlist entry change: no longer re-requests playlist.xml. This is my first contribution to VLC.. so, apologies in advance if I'm not following the submission process correctly. To the point.. This fixes and improves the http-interface for large-playlists.. testing verified in IE7 & Firefox 3.5. Please contact me for any questions/issues. Thnx! -Mark -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-http-interface.patch Type: application/octet-stream Size: 1875 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-http-interface.patch Type: application/octet-stream Size: 6492 bytes Desc: not available URL: From ileoo at videolan.org Wed Jul 28 20:01:33 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Wed, 28 Jul 2010 21:01:33 +0300 Subject: [vlc-devel] [PATCH] Improved large-playlist handling within http-interface In-Reply-To: <430A5ADDA76C4E228D8D574BB42847BD@amnesia> References: <430A5ADDA76C4E228D8D574BB42847BD@amnesia> Message-ID: <20100728180133.GI26085@ileoo> On Wed, Jul 28, 2010 at 01:28:15PM -0400, Mark Hassman wrote: > http-interface: > - Fixes load failure with large playlist. > - Improved display of large playlist. > - Eliminates http server load on playlist entry change: no longer > re-requests playlist.xml. applied in [8c2137907018ca0ae441a1d0e12b736cc3542d2d] and [11c280f342df4e6ffc57e041b01f332419ab3a3f] Thank you for your patches. > This is my first contribution to VLC.. so, apologies in advance if I'm not > following the submission process correctly. You did just right. Could you next time make sure your commit messages are lined in 80 or so characters. > To the point.. This fixes and improves the http-interface for > large-playlists.. testing verified in IE7 & Firefox 3.5. Tested with Opera 10.60 and seems to work fine. -- Ilkka Ollakka It's the thought, if any, that counts! -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From fenrir at elivagar.org Wed Jul 28 21:29:10 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 28 Jul 2010 21:29:10 +0200 Subject: [vlc-devel] [vlc-commits] commit: Qt: Fix save volume on exit Fixes #2968 (Francois Cartegnie ) In-Reply-To: <20100728180639.A512310E354@albiero.videolan.org> References: <20100728180639.A512310E354@albiero.videolan.org> Message-ID: <20100728192910.GA10623@elivagar.org> Hi, On Wed, Jul 28, 2010 at 08:06:38PM +0200, git at videolan.org wrote: > vlc | branch: master | Francois Cartegnie | Fri Mar 5 19:42:42 2010 +0100| [989ec97aa4b0034e6a4599df11ba5301e5b42af2] | committer: Francois Cartegnie > > Qt: Fix save volume on exit Fixes #2968 > + config_PutInt( p_intf, "volume", i_volume ); > + config_SaveConfigFile( p_intf, NULL ); I thought that this kind of config_SaveConfigFile uses was not ok. Can anyone comment on it? -- fenrir From remi at remlab.net Wed Jul 28 21:30:27 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Wed, 28 Jul 2010 22:30:27 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Qt=3A_Fix_?= =?iso-8859-1?q?save_volume_on_exit_Fixes_=232968_=28Francois_Cartegnie_?= =?iso-8859-1?q?=29?= In-Reply-To: <20100728192910.GA10623@elivagar.org> References: <20100728180639.A512310E354@albiero.videolan.org> <20100728192910.GA10623@elivagar.org> Message-ID: <201007282230.28162.remi@remlab.net> Le mercredi 28 juillet 2010 22:29:10 Laurent Aimar, vous avez ?crit : > Hi, > > On Wed, Jul 28, 2010 at 08:06:38PM +0200, git at videolan.org wrote: > > vlc | branch: master | Francois Cartegnie | Fri Mar 5 > > 19:42:42 2010 +0100| [989ec97aa4b0034e6a4599df11ba5301e5b42af2] | > > committer: Francois Cartegnie > > > > Qt: Fix save volume on exit Fixes #2968 > > + config_PutInt( p_intf, "volume", i_volume ); > > + config_SaveConfigFile( p_intf, NULL ); > > I thought that this kind of config_SaveConfigFile uses was not ok. Can > anyone comment on it? It is harmful indeed. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From fenrir at elivagar.org Wed Jul 28 22:10:34 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Wed, 28 Jul 2010 22:10:34 +0200 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <1280305031-18325-1-git-send-email-david@2of1.org> References: <1280305031-18325-1-git-send-email-david@2of1.org> Message-ID: <20100728201034.GA12848@elivagar.org> On Wed, Jul 28, 2010 at 11:17:11AM +0300, David Kaplan wrote: > Adds support for the D2D API on Win7/Vista SP2 with Platform Update > Requires d2d1 contrib headers Merged by [b19c57842c9d0d05e7a9226320b8a2383b179cd8]. Thanks for your work. Regards, -- fenrir From kaarlo.raiha at gmail.com Wed Jul 28 23:47:48 2010 From: kaarlo.raiha at gmail.com (=?ISO-8859-1?B?S2FhcmxvIFLkaWjk?=) Date: Thu, 29 Jul 2010 00:47:48 +0300 Subject: [vlc-devel] [vlc-commits] commit: Qt: Fix save volume on exit Fixes #2968 (Francois Cartegnie ) In-Reply-To: <201007282230.28162.remi@remlab.net> References: <20100728180639.A512310E354@albiero.videolan.org> <20100728192910.GA10623@elivagar.org> <201007282230.28162.remi@remlab.net> Message-ID: 2010/7/28 R?mi Denis-Courmont > Le mercredi 28 juillet 2010 22:29:10 Laurent Aimar, vous avez ?crit : > > Hi, > > > > On Wed, Jul 28, 2010 at 08:06:38PM +0200, git at videolan.org wrote: > > > vlc | branch: master | Francois Cartegnie | Fri Mar > 5 > > > 19:42:42 2010 +0100| [989ec97aa4b0034e6a4599df11ba5301e5b42af2] | > > > committer: Francois Cartegnie > > > > > > Qt: Fix save volume on exit Fixes #2968 > > > + config_PutInt( p_intf, "volume", i_volume ); > > > + config_SaveConfigFile( p_intf, NULL ); > > > > I thought that this kind of config_SaveConfigFile uses was not ok. Can > > anyone comment on it? > > It is harmful indeed. > Is there any way to save single setting to config file? > > -- > R?mi Denis-Courmont > http://www.remlab.net/ > http://fi.linkedin.com/in/remidenis > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ivoire at videolan.org Wed Jul 28 23:47:57 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Wed, 28 Jul 2010 23:47:57 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_QT4=5Fvlm?= =?iso-8859-1?q?=3A_really_fix_=233938=2E_=28_R=E9mi_Duraffort_=29?= In-Reply-To: <1280299200.22591.9.camel@sebastien-desktop> References: <20100727193006.804BC10EA6A@albiero.videolan.org> <1280298214.22591.3.camel@sebastien-desktop> <1280299200.22591.9.camel@sebastien-desktop> Message-ID: <20100728214757.GC15851@dinauz.org> Le mercredi 28 juillet 2010 ? 08:40:00, S?bastien Escudier a ?crit : > On Wed, 2010-07-28 at 08:33 +0200, R?mi Denis-Courmont wrote: > > On Wed, 28 Jul 2010 08:23:34 +0200, S?bastien Escudier > > wrote: > > > What happened to this commit ? cannot find it in my git history after a > > > git pull. > > > > http://git.videolan.org/gitweb.cgi?p=vlc.git;a=commit;h=df316b5efcba5b2b50b9e27ba2f21574f21f5207 > > This one is the commit R?mi was supposed to fix, and this is the commit > j-b backported. > But R?mi commited the fix of the fix yesterday : > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7f625e5f46e6b486ab6073f4f6cab7c1c6b01c83 > but it doesn't appear in my git or here : > http://git.videolan.org/gitweb.cgi?p=vlc.git;a=summary The commit has been restaured and backported. That's now working. Some cases might break to poor escaping but that's far better than before (it wasn't working at all) and this kind of problem might occure only for some few cases. (I will have a look for a *perfect* fix later). Best regards -- R?mi Duraffort | ivoire From pankajdnapster at gmail.com Thu Jul 29 00:12:37 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Thu, 29 Jul 2010 03:42:37 +0530 Subject: [vlc-devel] [Patch] Symbian Merge__Changes to /src/bin Message-ID: -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Symbian-Merge-__Changes-to-src-bin.patch Type: text/x-patch Size: 3310 bytes Desc: not available URL: From pankajdnapster at gmail.com Thu Jul 29 00:25:15 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Thu, 29 Jul 2010 03:55:15 +0530 Subject: [vlc-devel] [Patch] Symbian Merge Changes to includes Message-ID: -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Symbian-Merge-Changes-to-includes.patch Type: text/x-patch Size: 3782 bytes Desc: not available URL: From david at 2of1.org Thu Jul 29 00:42:02 2010 From: david at 2of1.org (David Kaplan) Date: Thu, 29 Jul 2010 01:42:02 +0300 Subject: [vlc-devel] [PATCH] Direct2D video output module In-Reply-To: <20100728201034.GA12848@elivagar.org> References: <1280305031-18325-1-git-send-email-david@2of1.org> <20100728201034.GA12848@elivagar.org> Message-ID: On Wed, Jul 28, 2010 at 11:10 PM, Laurent Aimar wrote: > > Merged by [b19c57842c9d0d05e7a9226320b8a2383b179cd8]. > Thanks -- http://blog.2of1.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From pankajdnapster at gmail.com Thu Jul 29 01:31:08 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Thu, 29 Jul 2010 05:01:08 +0530 Subject: [vlc-devel] Symbian VLC Merge changes to src Message-ID: -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0004-Symbian-Merge-Changes-to-src.patch Type: text/x-patch Size: 15780 bytes Desc: not available URL: From remi at remlab.net Thu Jul 29 07:58:41 2010 From: remi at remlab.net (=?ISO-8859-1?Q?R=E9mi?= Denis-Courmont) Date: Thu, 29 Jul 2010 08:58:41 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_access=5Fh?= =?iso-8859-1?q?ttp=3A_use_only_the_provided_user_agent=2E_=28_R=E9?= =?iso-8859-1?q?mi_Duraffort_=29?= In-Reply-To: <20100728210559.69F0B10A07A@albiero.videolan.org> References: <20100728210559.69F0B10A07A@albiero.videolan.org> Message-ID: <1280383121.2317.2.camel@Nokia-N900-51-1> ----- Message d'origine ----- > vlc | branch: master | R?mi Duraffort | Wed Jul 28 > 22:52:58 2010 +0200| [a869d39dc6f521e7bcb74bb8c359f37ce1582535] | committer: > R?mi Duraffort > > access_http: use only the provided user agent. So now if a Phonon application uses VLC it wont show up in the agent. This totally sucks. Similaly, the LiVLC version will never be listed for any LibVLC app. This is a pain for tracing and debug. From remi at remlab.net Thu Jul 29 08:01:44 2010 From: remi at remlab.net (=?ISO-8859-1?Q?R=E9mi?= Denis-Courmont) Date: Thu, 29 Jul 2010 09:01:44 +0300 Subject: [vlc-devel] [vlc-commits] commit: Qt: Fix save volume on exit Fixes #2968 (Francois Cartegnie ) In-Reply-To: References: <20100728180639.A512310E354@albiero.videolan.org> <20100728192910.GA10623@elivagar.org> <201007282230.28162.remi@remlab.net> Message-ID: <1280383304.2317.5.camel@Nokia-N900-51-1> ----- Message d'origine ----- > Is there any way to save single setting to config file? Mark it auto-save. From sebastien-devel at celeos.eu Thu Jul 29 08:23:10 2010 From: sebastien-devel at celeos.eu (=?ISO-8859-1?Q?S=E9bastien?= Escudier) Date: Thu, 29 Jul 2010 08:23:10 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_QT4=5Fvlm?= =?iso-8859-1?q?=3A_really_fix_=233938=2E_=28_R=E9mi_Duraffort_=29?= In-Reply-To: <20100728214757.GC15851@dinauz.org> References: <20100727193006.804BC10EA6A@albiero.videolan.org> <1280298214.22591.3.camel@sebastien-desktop> <1280299200.22591.9.camel@sebastien-desktop> <20100728214757.GC15851@dinauz.org> Message-ID: <1280384590.7160.1.camel@sebastien-desktop> On Wed, 2010-07-28 at 23:47 +0200, R?mi Duraffort wrote: > That's now working. Some cases might break to poor escaping but that's > far better than before (it wasn't working at all) and this kind of > problem might occure only for some few cases. (I will have a look for > a > *perfect* fix later). Yes I can confirm it works better than before. Thanks. From remi at remlab.net Thu Jul 29 09:10:23 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Thu, 29 Jul 2010 10:10:23 +0300 Subject: [vlc-devel] [Patch] Symbian Merge__Changes to /src/bin In-Reply-To: References: Message-ID: <201007291010.23924.remi@remlab.net> diff --git a/bin/vlc.c b/bin/vlc.c index c8a05ba..81ca99e 100644 --- a/bin/vlc.c +++ b/bin/vlc.c @@ -44,6 +44,18 @@ #include #endif +#ifdef SYMBIAN +#include +static vlc_mutex_t exit_lock = VLC_STATIC_MUTEX; +static vlc_cond_t exiting = VLC_STATIC_COND; +void symbian_libvlc_Wait( libvlc_int_t *p_libvlc ); You probably don't need that line ^^. You could simply mark the function as 'static'. +void symbian_libvlc_Wait( libvlc_int_t *p_libvlc ) +{ + vlc_mutex_lock( &exit_lock ); + vlc_cond_wait( &exiting, &exit_lock ); + vlc_mutex_unlock( &exit_lock ); +} +#endif Using a semaphore would be a lot simpler or more correct: sem_wait( &exit_sem ); here and: sem_post( &exit_sem ); in vlc_kill(). Normally, a condition variable must always have some external state, whereas a semaphore has its own internal state. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Thu Jul 29 10:31:35 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 29 Jul 2010 10:31:35 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_access=5Fh?= =?iso-8859-1?q?ttp=3A_use_only_the_provided_user_agent=2E_=28_R=E9?= =?iso-8859-1?q?mi_Duraffort_=29?= In-Reply-To: <1280383121.2317.2.camel@Nokia-N900-51-1> References: <20100728210559.69F0B10A07A@albiero.videolan.org> <1280383121.2317.2.camel@Nokia-N900-51-1> Message-ID: <20100729083135.GA16861@videolan.org> On Thu, Jul 29, 2010 at 08:58:41AM +0300, R?mi Denis-Courmont wrote : > ----- Message d'origine ----- > > vlc | branch: master | R?mi Duraffort | Wed Jul 28 > > 22:52:58 2010 +0200| [a869d39dc6f521e7bcb74bb8c359f37ce1582535] | committer: > > R?mi Duraffort > > > > access_http: use only the provided user agent. > > So now if a Phonon application uses VLC it wont show up in the agent. This totally sucks. Similaly, the LiVLC version will never be listed for any LibVLC app. This is a pain for tracing and debug. Moreover, it will make it more difficult for webmaster to filter out vlc... Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From beauze.h at gmail.com Thu Jul 29 10:41:33 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Thu, 29 Jul 2010 10:41:33 +0200 Subject: [vlc-devel] [Patch] Check memory allocations on avcodec encoder Message-ID: Hi, Since it was sent along with another patch that has been applied, I allow myself to resubmit this one in its own thread. Regards, -- Hugo Beauz?e-Luyssen -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-avcodec-encoder-Check-memory-allocations.patch Type: text/x-patch Size: 2544 bytes Desc: not available URL: From pankajdnapster at gmail.com Thu Jul 29 10:46:48 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Thu, 29 Jul 2010 01:46:48 -0700 Subject: [vlc-devel] Fwd: [Patch] Symbian Merge__Changes to /src/bin In-Reply-To: References: <201007291010.23924.remi@remlab.net> Message-ID: ---------- Forwarded message ---------- From: Pankaj yadav Date: 2010/7/29 Subject: Re: [vlc-devel] [Patch] Symbian Merge__Changes to /src/bin To: R?mi Denis-Courmont Rectified 2010/7/29 R?mi Denis-Courmont diff --git a/bin/vlc.c b/bin/vlc.c > index c8a05ba..81ca99e 100644 > --- a/bin/vlc.c > +++ b/bin/vlc.c > @@ -44,6 +44,18 @@ > #include > #endif > > +#ifdef SYMBIAN > +#include > +static vlc_mutex_t exit_lock = VLC_STATIC_MUTEX; > +static vlc_cond_t exiting = VLC_STATIC_COND; > +void symbian_libvlc_Wait( libvlc_int_t *p_libvlc ); > > You probably don't need that line ^^. > You could simply mark the function as 'static'. > > +void symbian_libvlc_Wait( libvlc_int_t *p_libvlc ) > +{ > + vlc_mutex_lock( &exit_lock ); > + vlc_cond_wait( &exiting, &exit_lock ); > + vlc_mutex_unlock( &exit_lock ); > +} > +#endif > > Using a semaphore would be a lot simpler or more correct: > sem_wait( &exit_sem ); > here and: > sem_post( &exit_sem ); > in vlc_kill(). Normally, a condition variable must always have some > external > state, whereas a semaphore has its own internal state. > > > -- > R?mi Denis-Courmont > http://www.remlab.net/ > http://fi.linkedin.com/in/remidenis > -- Pankaj Yadav Open Source Enthusiast -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Symbian-Merge-changes-to-bin.patch Type: text/x-patch Size: 3800 bytes Desc: not available URL: From jb at videolan.org Thu Jul 29 10:58:04 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 29 Jul 2010 10:58:04 +0200 Subject: [vlc-devel] Fwd: [Patch] Symbian Merge__Changes to /src/bin In-Reply-To: References: <201007291010.23924.remi@remlab.net> Message-ID: <20100729085804.GA21938@videolan.org> On Thu, Jul 29, 2010 at 01:46:48AM -0700, Pankaj yadav wrote : > -#if 0 > /** Signals **/ > #include > > @@ -253,7 +252,6 @@ error: > LOG("Blocked", "%d, %p, %p", signum, act, old); > return -1; > } > -#endif Why ? > -static void exit_timeout (int signum) > -{ > - (void) signum; > - signal (SIGINT, SIG_DFL); > -} Why? > +#ifndef SYMBIAN > if (signal_ignored (SIGHUP)) /* <- needed to handle nohup properly */ > sigdelset (&set, SIGHUP); > sigdelset (&set, SIGPIPE); > @@ -225,16 +235,9 @@ int main( int i_argc, const char *ppsz_argv[] ) > do > sigwait (&set, &signum); > while (signum == SIGCHLD); > - > - /* Restore default signal behaviour after 3 seconds */ > - sigemptyset (&set); > - sigaddset (&set, SIGINT); > - sigaddset (&set, SIGALRM); > - signal (SIGINT, SIG_IGN); > - signal (SIGALRM, exit_timeout); > - pthread_sigmask (SIG_UNBLOCK, &set, NULL); > - alarm (3); > - > +#else > + symbian_libvlc_Wait((libvlc_int_t*)vlc); > +#endif Why removing those lines? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Thu Jul 29 10:59:37 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 29 Jul 2010 10:59:37 +0200 Subject: [vlc-devel] [vlc-commits] commit: Merge branch 'master' of git.videolan.org:vlc (Jean-Baptiste Kempf ) In-Reply-To: <20100729084916.05C2410E36E@albiero.videolan.org> References: <20100729084916.05C2410E36E@albiero.videolan.org> Message-ID: <20100729085937.GA22471@videolan.org> On Thu, Jul 29, 2010 at 10:49:15AM +0200, git at videolan.org wrote : > vlc | branch: master | Jean-Baptiste Kempf | Thu Jul 29 10:47:06 2010 +0200| [33e87bbc20ef8fb9766d1ef9f28561869ef234a2] | committer: Jean-Baptiste Kempf > > Merge branch 'master' of git.videolan.org:vlc > > > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=33e87bbc20ef8fb9766d1ef9f28561869ef234a2 Sorry, my caffeine-level is too low. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From ivoire at videolan.org Thu Jul 29 11:22:03 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Thu, 29 Jul 2010 11:22:03 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_access=5Fh?= =?iso-8859-1?q?ttp=3A_use_only_the_provided_user_agent=2E_=28_R=E9?= =?iso-8859-1?q?mi_Duraffort_=29?= In-Reply-To: <20100729083135.GA16861@videolan.org> References: <20100728210559.69F0B10A07A@albiero.videolan.org> <1280383121.2317.2.camel@Nokia-N900-51-1> <20100729083135.GA16861@videolan.org> Message-ID: <20100729092202.GD15851@dinauz.org> > > So now if a Phonon application uses VLC it wont show up in the agent. This totally sucks. Similaly, the LiVLC version will never be listed for any LibVLC app. This is a pain for tracing and debug. > > Moreover, it will make it more difficult for webmaster to filter out > vlc... So what the point of having http-user-agent option if we add something afterward anyway ? best regards -- R?mi Duraffort | ivoire From pankajdnapster at gmail.com Thu Jul 29 11:42:14 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Thu, 29 Jul 2010 15:12:14 +0530 Subject: [vlc-devel] Fwd: [Patch] Symbian Merge__Changes to /src/bin In-Reply-To: <20100729085804.GA21938@videolan.org> References: <201007291010.23924.remi@remlab.net> <20100729085804.GA21938@videolan.org> Message-ID: Sorry I just messed up with git..A new one again On Thu, Jul 29, 2010 at 2:28 PM, Jean-Baptiste Kempf wrote: > On Thu, Jul 29, 2010 at 01:46:48AM -0700, Pankaj yadav wrote : > > -#if 0 > > /** Signals **/ > > #include > > > > @@ -253,7 +252,6 @@ error: > > LOG("Blocked", "%d, %p, %p", signum, act, old); > > return -1; > > } > > -#endif > Why ? > > > -static void exit_timeout (int signum) > > -{ > > - (void) signum; > > - signal (SIGINT, SIG_DFL); > > -} > Why? > > > +#ifndef SYMBIAN > > if (signal_ignored (SIGHUP)) /* <- needed to handle nohup properly > */ > > sigdelset (&set, SIGHUP); > > sigdelset (&set, SIGPIPE); > > @@ -225,16 +235,9 @@ int main( int i_argc, const char *ppsz_argv[] ) > > do > > sigwait (&set, &signum); > > while (signum == SIGCHLD); > > - > > - /* Restore default signal behaviour after 3 seconds */ > > - sigemptyset (&set); > > - sigaddset (&set, SIGINT); > > - sigaddset (&set, SIGALRM); > > - signal (SIGINT, SIG_IGN); > > - signal (SIGALRM, exit_timeout); > > - pthread_sigmask (SIG_UNBLOCK, &set, NULL); > > - alarm (3); > > - > > +#else > > + symbian_libvlc_Wait((libvlc_int_t*)vlc); > > +#endif > > Why removing those lines? > > Best Regards, > > -- > Jean-Baptiste Kempf > http://www.jbkempf.com/ > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -- Pankaj Yadav Open Source Enthusiast -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Symbian-merge-Changes-to-bin.patch Type: text/x-patch Size: 3062 bytes Desc: not available URL: From remi at remlab.net Thu Jul 29 11:57:35 2010 From: remi at remlab.net (=?ISO-8859-1?Q?R=E9mi?= Denis-Courmont) Date: Thu, 29 Jul 2010 12:57:35 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_access=5Fh?= =?iso-8859-1?q?ttp=3A_use_only_the_provided_user_agent=2E_=28_R=E9?= =?iso-8859-1?q?mi_Duraffort_=29?= In-Reply-To: <20100729092202.GD15851@dinauz.org> References: <20100728210559.69F0B10A07A@albiero.videolan.org> <1280383121.2317.2.camel@Nokia-N900-51-1> <20100729083135.GA16861@videolan.org> <20100729092202.GD15851@dinauz.org> Message-ID: <1280397455.13571.3.camel@Nokia-N900-51-1> ----- Message d'origine ----- > > Moreover, it will make it more difficult for webmaster to filter out > > vlc... > So what the point of having http-user-agent option if we add something > afterward anyway ? That is how the User-Agent field is specified in the IETF RFC. Relevant components are separated by spaces, name-slash-version. I think the app is relevant, and LibVLC is relevant insofar as it is used. From ivoire at videolan.org Thu Jul 29 13:08:14 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Thu, 29 Jul 2010 13:08:14 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_access=5Fh?= =?iso-8859-1?q?ttp=3A_use_only_the_provided_user_agent=2E_=28_R=E9?= =?iso-8859-1?q?mi_Duraffort_=29?= In-Reply-To: <1280397455.13571.3.camel@Nokia-N900-51-1> References: <20100728210559.69F0B10A07A@albiero.videolan.org> <1280383121.2317.2.camel@Nokia-N900-51-1> <20100729083135.GA16861@videolan.org> <20100729092202.GD15851@dinauz.org> <1280397455.13571.3.camel@Nokia-N900-51-1> Message-ID: <20100729110814.GE15851@dinauz.org> Le jeudi 29 juillet 2010 ? 12:57:35, R?mi Denis-Courmont a ?crit : > > > Moreover, it will make it more difficult for webmaster to filter out > > > vlc... > > So what the point of having http-user-agent option if we add something > > afterward anyway ? > > That is how the User-Agent field is specified in the IETF RFC. Relevant components are separated by spaces, name-slash-version. I think the app is relevant, and LibVLC is relevant insofar as it is used. That's the default user agent (name/version), but if people uses the option to change the user agent I think they expect to control it complitely and not only one part of it. best regards -- R?mi Duraffort | ivoire From pdherbemont at free.fr Thu Jul 29 14:09:48 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Thu, 29 Jul 2010 14:09:48 +0200 Subject: [vlc-devel] [PATCH] MacOS: manage the mouse events to allow DVD navigation. In-Reply-To: <7B6E6D3B-A30C-4549-8F52-0C2EC7FBC438@gmail.com> References: <7B6E6D3B-A30C-4549-8F52-0C2EC7FBC438@gmail.com> Message-ID: On Wed, Jul 28, 2010 at 12:10 AM, Sebastien Zwickert wrote: > Hi, Hello, That's something great, however: What if the libvlc application wants to handle mouse events itself, and is not interested in DVD functionality? The patch is not forwarding event at all, so there is no way to disable it easily. I know that we are suffering from the fact that libvlccore and its plugins do not say if the mouse events will be handled or not. Still, we need to at least keep an option at the very least. >From what I remember the mouseMoved thing won't work if you don't first set acceptsMouseMoved events. Might be wrong though, but you surely could do some factorization or use vout_display_PlacePicture in mouseMoved:. And there are some minor style issues such as: > +- (BOOL) acceptsFirstResponder no space before accepts >+ if ( !vd || ![self mouse:curPoint inRect:[self bounds]] ) no space after ( and before ). ... Pierre. From jb at videolan.org Thu Jul 29 14:20:52 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 29 Jul 2010 14:20:52 +0200 Subject: [vlc-devel] [PATCH] MacOS: manage the mouse events to allow DVD navigation. In-Reply-To: References: <7B6E6D3B-A30C-4549-8F52-0C2EC7FBC438@gmail.com> Message-ID: <20100729122052.GA26290@videolan.org> On Thu, Jul 29, 2010 at 02:09:48PM +0200, Pierre d'Herbemont wrote : > That's something great, however: > What if the libvlc application wants to handle mouse events itself, > and is not interested in DVD functionality? The patch is not --mouse-events ? Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From fenrir at elivagar.org Thu Jul 29 14:42:06 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 29 Jul 2010 14:42:06 +0200 Subject: [vlc-devel] [vlc-commits] commit: Qt: save volume on exit (Francois Cartegnie ) In-Reply-To: <20100729112912.D272B10EC2D@albiero.videolan.org> References: <20100729112912.D272B10EC2D@albiero.videolan.org> Message-ID: <20100729124206.GA29077@elivagar.org> Hi, On Thu, Jul 29, 2010 at 01:29:12PM +0200, git at videolan.org wrote: > vlc | branch: master | Francois Cartegnie | Thu Jul 29 13:28:27 2010 +0200| [47e8817acdc58829acfbf5d02913007164b0a0bf] | committer: Francois Cartegnie > > Qt: save volume on exit > > > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=47e8817acdc58829acfbf5d02913007164b0a0bf > --- > > modules/gui/qt4/qt4.cpp | 11 +++++++++++ > 1 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp > index d689c4a..c50327d 100644 > --- a/modules/gui/qt4/qt4.cpp > +++ b/modules/gui/qt4/qt4.cpp > @@ -507,6 +507,17 @@ static void *Thread( void *obj ) > /* Save the path */ > getSettings()->setValue( "filedialog-path", p_intf->p_sys->filepath ); > > + /* Save volume on exit */ > + audio_volume_t i_volume; > + module_config_t *volconf; > + if ( var_InheritBool( p_intf, "qt-autosave-volume" ) ) > + aout_VolumeGet( p_intf, &i_volume ); > + else > + i_volume = config_GetInt( p_intf, "qt-startvolume" ); > + config_PutInt( p_intf, "volume", i_volume ); Unless I am wrong, you don't need to change "volume". The aout core already does it. If confirmed, that part should be reverted. > + volconf = config_FindConfig( VLC_OBJECT(p_intf), "volume" ); > + if ( volconf ) volconf->b_autosave = true; Not thread safe and so not acceptable. Using change_autosave() is probably the right way (in src/libvlc-module.c). Regards, -- fenrir From fcvlcdev at free.fr Thu Jul 29 14:58:53 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Thu, 29 Jul 2010 14:58:53 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Qt=3A_save?= =?iso-8859-1?q?_volume_on_exit_=28_Francois=09Cartegnie_=29?= In-Reply-To: <20100729124206.GA29077@elivagar.org> References: <20100729112912.D272B10EC2D@albiero.videolan.org> <20100729124206.GA29077@elivagar.org> Message-ID: <201007291458.53967.fcvlcdev@free.fr> Le jeudi 29 juillet 2010, Laurent Aimar a ?crit : > > + i_volume = config_GetInt( p_intf, "qt-startvolume" ); > > + config_PutInt( p_intf, "volume", i_volume ); > > Unless I am wrong, you don't need to change "volume". The aout core > already does it. If confirmed, that part should be reverted. No. I set the value for next instance on exit instead of setting volume on start. It makes vlc start at qt-startvolume value, which is a forced default volume, and differs from the volume var. > > + volconf = config_FindConfig( VLC_OBJECT(p_intf), "volume" ); > > + if ( volconf ) volconf->b_autosave = true; > > Not thread safe and so not acceptable. > Using change_autosave() is probably the right way (in src/libvlc-module.c). Isn't that for module local vars only ? If you have the fix in mind, could you apply it ? (Last revert of the last of my set of patches totally broke the volume management.) Francois From fkuehne.videolan at googlemail.com Thu Jul 29 15:55:48 2010 From: fkuehne.videolan at googlemail.com (=?iso-8859-1?Q?Felix_Paul_K=FChne?=) Date: Thu, 29 Jul 2010 15:55:48 +0200 Subject: [vlc-devel] [vlc-commits] Tag 1.1.2 : Jean-Baptiste Kempf : VLC 1.1.2 - 'The Luggage' In-Reply-To: <20100729095733.21E0010EB20@albiero.videolan.org> References: <20100729095733.21E0010EB20@albiero.videolan.org> Message-ID: <65DF66BE-B382-4C27-81C2-BC0E8AB7D897@gmail.com> On 29.07.2010, at 11:57, git at videolan.org wrote: > [vlc/vlc-1.1] [branch: refs/tags/1.1.2] > Tag: 26062e6aaa28972d441b558a6ee7d99eab1f8a4c >> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git?a=tag;h=26062e6aaa28972d441b558a6ee7d99eab1f8a4c > > Tagger: Jean-Baptiste Kempf > Date: Thu Jul 29 11:52:08 2010 +0200 > > VLC 1.1.2 - 'The Luggage' > The third release of the 1.1.x branch of VLC Mac builds are available for testing at Best regards, Felix From jb at videolan.org Thu Jul 29 18:49:57 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 29 Jul 2010 18:49:57 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_OSX_releas?= =?iso-8859-1?q?e_updates_are_made_through_sparkle_=28_Rafa=EBl_Car?= =?iso-8859-1?q?r=E9_=29?= In-Reply-To: <20100729164412.587D510F32D@albiero.videolan.org> References: <20100729164412.587D510F32D@albiero.videolan.org> Message-ID: <20100729164957.GA14308@videolan.org> On Thu, Jul 29, 2010 at 06:44:12PM +0200, git at videolan.org wrote : > vlc | branch: master | Rafa?l Carr? | Thu Jul 29 18:43:27 2010 +0200| [098b32ee0d83c6cb5f6a6a16d298687ca7e8556b] | committer: Rafa?l Carr? > > OSX release updates are made through sparkle Not for PPC. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From fkuehne.videolan at googlemail.com Thu Jul 29 18:52:29 2010 From: fkuehne.videolan at googlemail.com (=?iso-8859-1?Q?Felix_Paul_K=FChne?=) Date: Thu, 29 Jul 2010 18:52:29 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_OSX_releas?= =?iso-8859-1?q?e_updates_are_made_through_sparkle_=28_Rafa=EBl_Carr=E9_?= =?iso-8859-1?q?=29?= In-Reply-To: <20100729164957.GA14308@videolan.org> References: <20100729164412.587D510F32D@albiero.videolan.org> <20100729164957.GA14308@videolan.org> Message-ID: On 29.07.2010, at 18:49, Jean-Baptiste Kempf wrote: > On Thu, Jul 29, 2010 at 06:44:12PM +0200, git at videolan.org wrote : >> vlc | branch: master | Rafa?l Carr? | Thu Jul 29 18:43:27 2010 +0200| [098b32ee0d83c6cb5f6a6a16d298687ca7e8556b] | committer: Rafa?l Carr? >> >> OSX release updates are made through sparkle > > Not for PPC. Same for PPC. There is no way to access VLC's native updater from within the GUI anymore... BTW. How will we integrate the Sparkle updater within the Qt4 interface btw.? Is there a way non-hackish way to access a Cocoa-like interface within Qt (meaning without creating a special ObjC++ file)? Best regards, Felix From ivoire at videolan.org Thu Jul 29 20:31:27 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Thu, 29 Jul 2010 20:31:27 +0200 Subject: [vlc-devel] [Patch] Check memory allocations on avcodec encoder In-Reply-To: References: Message-ID: <20100729183127.GF15851@dinauz.org> Applied thanks. -- R?mi Duraffort | ivoire From remi at remlab.net Thu Jul 29 21:26:26 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Thu, 29 Jul 2010 22:26:26 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_access=5Fh?= =?iso-8859-1?q?ttp=3A_use_only_the_provided_user_agent=2E_=28_R=E9mi_Dura?= =?iso-8859-1?q?ffort_=29?= In-Reply-To: <20100729110814.GE15851@dinauz.org> References: <20100728210559.69F0B10A07A@albiero.videolan.org> <1280397455.13571.3.camel@Nokia-N900-51-1> <20100729110814.GE15851@dinauz.org> Message-ID: <201007292226.27254.remi@remlab.net> Le jeudi 29 juillet 2010 14:08:14 R?mi Duraffort, vous avez ?crit : > That's the default user agent (name/version), but if people uses the option > to change the user agent I think they expect to control it complitely and > not only one part of it. Firstl, I am far from convinced that this option is useful in the preferences. I don't expect the user to set it up itself, only SD, playlists or such. Second, I still fail to see the harm in adding LibVLC at the end. I do see the harm in _not_ adding it. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Thu Jul 29 21:27:56 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Thu, 29 Jul 2010 22:27:56 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Qt=3A_save?= =?iso-8859-1?q?_volume_on_exit_=28_Francois=09Cartegnie_=29?= In-Reply-To: <201007291458.53967.fcvlcdev@free.fr> References: <20100729112912.D272B10EC2D@albiero.videolan.org> <20100729124206.GA29077@elivagar.org> <201007291458.53967.fcvlcdev@free.fr> Message-ID: <201007292227.57056.remi@remlab.net> Le jeudi 29 juillet 2010 15:58:53 Francois Cartegnie, vous avez ?crit : > Le jeudi 29 juillet 2010, Laurent Aimar a ?crit : > > > + i_volume = config_GetInt( p_intf, "qt-startvolume" ); > > > + config_PutInt( p_intf, "volume", i_volume ); > > > > Unless I am wrong, you don't need to change "volume". The aout core > > already does it. If confirmed, that part should be reverted. > > No. I set the value for next instance on exit instead of setting volume on > start. It makes vlc start at qt-startvolume value, which is a forced > default volume, and differs from the volume var. > > > > + volconf = config_FindConfig( VLC_OBJECT(p_intf), "volume" ); > > > + if ( volconf ) volconf->b_autosave = true; > > > > Not thread safe and so not acceptable. > > Using change_autosave() is probably the right way (in > > src/libvlc-module.c). > > Isn't that for module local vars only ? > If you have the fix in mind, could you apply it ? > (Last revert of the last of my set of patches totally broke the volume > management.) Then your patch set was totally broken. THE CONFIGURATION MUST NOT BE SAVED UNLESS THE USER ASKS. Full point. And really, I do not see why Qt4 needs its own volume setting. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Thu Jul 29 21:33:25 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Thu, 29 Jul 2010 22:33:25 +0300 Subject: [vlc-devel] [vlc-commits] commit: Qt: save volume on exit (Francois Cartegnie ) In-Reply-To: <20100729112912.D272B10EC2D@albiero.videolan.org> References: <20100729112912.D272B10EC2D@albiero.videolan.org> Message-ID: <201007292233.25727.remi@remlab.net> Le jeudi 29 juillet 2010 14:29:12 git at videolan.org, vous avez ?crit : > vlc | branch: master | Francois Cartegnie | Thu Jul 29 > 13:28:27 2010 +0200| [47e8817acdc58829acfbf5d02913007164b0a0bf] | > committer: Francois Cartegnie > > Qt: save volume on exit > > > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=47e8817acdc58829ac > > fbf5d02913007164b0a0bf > > --- > > modules/gui/qt4/qt4.cpp | 11 +++++++++++ > 1 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp > index d689c4a..c50327d 100644 > --- a/modules/gui/qt4/qt4.cpp > +++ b/modules/gui/qt4/qt4.cpp > @@ -507,6 +507,17 @@ static void *Thread( void *obj ) > /* Save the path */ > getSettings()->setValue( "filedialog-path", p_intf->p_sys->filepath ); > > + /* Save volume on exit */ > + audio_volume_t i_volume; > + module_config_t *volconf; > + if ( var_InheritBool( p_intf, "qt-autosave-volume" ) ) > + aout_VolumeGet( p_intf, &i_volume ); > + else > + i_volume = config_GetInt( p_intf, "qt-startvolume" ); > + config_PutInt( p_intf, "volume", i_volume ); > + volconf = config_FindConfig( VLC_OBJECT(p_intf), "volume" ); > + if ( volconf ) volconf->b_autosave = true; WTF is this? You're not allowed to change configuration items. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From fcvlcdev at free.fr Thu Jul 29 21:49:25 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Thu, 29 Jul 2010 21:49:25 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Qt=3A_save?= =?iso-8859-1?q?_volume_on_exit_=28_Francois=09Cartegnie_=29?= In-Reply-To: <201007292227.57056.remi@remlab.net> References: <20100729112912.D272B10EC2D@albiero.videolan.org> <201007291458.53967.fcvlcdev@free.fr> <201007292227.57056.remi@remlab.net> Message-ID: <201007292149.25542.fcvlcdev@free.fr> Le jeudi 29 juillet 2010, R?mi Denis-Courmont a ?crit : > THE CONFIGURATION MUST NOT BE SAVED UNLESS THE USER ASKS. > Full point. So do you expect the user to save volume by himself when the "save volume on exit" option is checked ? Until now, Qt has 2 audio prefs: - Uses a default volume on start (from qt) - Save volume on exit (current core volume) > And really, I do not see why Qt4 needs its own volume setting. It does not. -volume is from core -qt-startvolume is on qt side. "default volume" -qt-autosave-volume is on qt side. Defines is we need to replace current volume with qt-startvolume value. One bug were caused by the qt-startvolume directly linked to the 'live'/core volume. Each time the user returned to the prefs, the value was reset to the live volume. Then prefs saving without manually restoring it was leading to a loss of/wrong value. Francois From remi at remlab.net Thu Jul 29 22:09:22 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Thu, 29 Jul 2010 23:09:22 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Qt=3A_save?= =?iso-8859-1?q?_volume_on_exit_=28_Francois=09Cartegnie_=29?= In-Reply-To: <201007292149.25542.fcvlcdev@free.fr> References: <20100729112912.D272B10EC2D@albiero.videolan.org> <201007292227.57056.remi@remlab.net> <201007292149.25542.fcvlcdev@free.fr> Message-ID: <201007292309.22649.remi@remlab.net> Le jeudi 29 juillet 2010 22:49:25 Francois Cartegnie, vous avez ?crit : > Le jeudi 29 juillet 2010, R?mi Denis-Courmont a ?crit : > > THE CONFIGURATION MUST NOT BE SAVED UNLESS THE USER ASKS. > > Full point. > > So do you expect the user to save volume by himself when the "save volume > on exit" option is checked ? There is a reason why the preferences dialog has separate OK and Save buttons. Your stupid change made the configuration ALWAYS saved at exit. This is wrong and unacceptable. This is _not_ going to change just for the sake of the audio volume. > Until now, Qt has 2 audio prefs: > - Uses a default volume on start (from qt) I don't see the point. (lib)VLC already has its default volume. Why the heck does the Qt4 interface needs to have its own default volume? What happens when we have two interfaces with their own (conflicting) default volumes then? > - Save volume on exit (current core volume) That similarly does not belong in the Qt4 interface settings, but in the core. > > And really, I do not see why Qt4 needs its own volume setting. > > It does not. > -volume is from core > -qt-startvolume is on qt side. "default volume" Don't you see a self-contradiction here? > -qt-autosave-volume is on qt side. Defines is we need to replace current > volume with qt-startvolume value. I fail to see why this is a Qt-specific configuration. The correct way to do that is to use mark the audio-volume item has autosaved, and, if autosave- volume is on, update the value from the running volume when the playlist object is destroyed. Unfortumately, this is currently not possible because the running volume is stored in the configuration always, which is wrong. All other playback parameters (that I know) use the object variables and inheritance, which solves the problem nicely. I am not going to come up with an alternative solution. I did not write the buggy Qt4 audio volume handling to begin with, nor the audio output core's, so I do not feel responsible for (fixing) this mess. > One bug were caused by the qt-startvolume directly linked to the > 'live'/core volume. Each time the user returned to the prefs, the value > was reset to the live volume. Then prefs saving without manually restoring > it was leading to a loss of/wrong value. The running audio volume should be stored has a playlist (input parent) object variable anyway. I never fixed it because I did not have the time and courage to fix all the interfaces. But now, you wrote some mindboggingly complicated logic in the core, so I don't understand the thing (anymore), so I couldn't even fix it if I wanted to. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Thu Jul 29 22:10:33 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Thu, 29 Jul 2010 23:10:33 +0300 Subject: [vlc-devel] [vlc-commits] Tag 1.1.2 : Jean-Baptiste Kempf : VLC 1.1.2 - 'The Luggage' In-Reply-To: <20100729095733.21E0010EB20@albiero.videolan.org> References: <20100729095733.21E0010EB20@albiero.videolan.org> Message-ID: <201007292310.34234.remi@remlab.net> Le jeudi 29 juillet 2010 12:57:33 git at videolan.org, vous avez ?crit : > [vlc/vlc-1.1] [branch: refs/tags/1.1.2] > Tag: 26062e6aaa28972d441b558a6ee7d99eab1f8a4c > > > http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git?a=tag;h=26062e6aaa2897 > > 2d441b558a6ee7d99eab1f8a4c > > Tagger: Jean-Baptiste Kempf > Date: Thu Jul 29 11:52:08 2010 +0200 > > VLC 1.1.2 - 'The Luggage' > The third release of the 1.1.x branch of VLC I (and Christophe) have received a security advisory today. I have not been able to review it, but it seems like a terrible idea to go on with 1.1.2 should it turn out to be a real problem. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From rafael.carre at gmail.com Thu Jul 29 22:19:47 2010 From: rafael.carre at gmail.com (=?UTF-8?B?UmFmYcOrbCBDYXJyw6k=?=) Date: Thu, 29 Jul 2010 22:19:47 +0200 Subject: [vlc-devel] =?utf-8?q?commit=3A_Revert_=22Qt=3A_save_volume_on_ex?= =?utf-8?q?it=22_=28_R=C3=A9mi__Denis-Courmont_=29?= In-Reply-To: <20100729193513.BF73C10F3E8@albiero.videolan.org> References: <20100729193513.BF73C10F3E8@albiero.videolan.org> Message-ID: <20100729221947.1cd7cd6a@kru> On Thu, 29 Jul 2010 21:35:13 +0200 (CEST) git at videolan.org wrote: > vlc | branch: master | R?mi Denis-Courmont | Thu > Jul 29 22:35:07 2010 +0300| > [12e711eb3992fc269d47b86004dfd3775fd5e900] | committer: R?mi > Denis-Courmont > > Revert "Qt: save volume on exit" > > This reverts commit 47e8817acdc58829acfbf5d02913007164b0a0bf. Please state why commits are reverted, in the commit log A link to archives of vlc-devel@ discussion works fine It might be obvious to you, now; but not to , when he reads the commit log in the future -- ? Rafa?l Carr? ? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: not available URL: From juhovh at iki.fi Thu Jul 29 22:22:29 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Thu, 29 Jul 2010 23:22:29 +0300 Subject: [vlc-devel] [PATCH 1/3] Qt: Remove extra separator from systray menu Message-ID: <1280434951-67089-1-git-send-email-juhovh@iki.fi> --- modules/gui/qt4/menus.cpp | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/modules/gui/qt4/menus.cpp b/modules/gui/qt4/menus.cpp index 2302559..c59400d 100644 --- a/modules/gui/qt4/menus.cpp +++ b/modules/gui/qt4/menus.cpp @@ -1096,7 +1096,6 @@ void QVLCMenu::updateSystrayMenu( MainInterface *mi, PopupMenuPlaylistControlEntries( sysMenu, p_intf); PopupMenuControlEntries( sysMenu, p_intf); - sysMenu->addSeparator(); addDPStaticEntry( sysMenu, qtr( "&Open Media" ), ":/type/file-wide", SLOT( openFileDialog() ) ); addDPStaticEntry( sysMenu, qtr( "&Quit" ) , -- 1.6.5.7 From juhovh at iki.fi Thu Jul 29 22:22:30 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Thu, 29 Jul 2010 23:22:30 +0300 Subject: [vlc-devel] [PATCH 2/3] Qt: Make the systray menu work much nicer on Mac In-Reply-To: <1280434951-67089-1-git-send-email-juhovh@iki.fi> References: <1280434951-67089-1-git-send-email-juhovh@iki.fi> Message-ID: <1280434951-67089-2-git-send-email-juhovh@iki.fi> --- modules/gui/qt4/main_interface.cpp | 4 ++++ modules/gui/qt4/menus.cpp | 4 +++- 2 files changed, 7 insertions(+), 1 deletions(-) diff --git a/modules/gui/qt4/main_interface.cpp b/modules/gui/qt4/main_interface.cpp index a8dff3b..588f7b5 100644 --- a/modules/gui/qt4/main_interface.cpp +++ b/modules/gui/qt4/main_interface.cpp @@ -971,7 +971,11 @@ void MainInterface::handleSystrayClick( { case QSystemTrayIcon::Trigger: case QSystemTrayIcon::DoubleClick: +#ifdef Q_WS_MAC: + QVLCMenu::updateSystrayMenu( this, p_intf ); +#else toggleUpdateSystrayMenu(); +#endif break; case QSystemTrayIcon::MiddleClick: sysTray->showMessage( qtr( "VLC media player" ), diff --git a/modules/gui/qt4/menus.cpp b/modules/gui/qt4/menus.cpp index c59400d..ad40922 100644 --- a/modules/gui/qt4/menus.cpp +++ b/modules/gui/qt4/menus.cpp @@ -1077,6 +1077,7 @@ void QVLCMenu::updateSystrayMenu( MainInterface *mi, QMenu *sysMenu = mi->getSysTrayMenu(); sysMenu->clear(); +#ifndef Q_WS_MAC /* Hide / Show VLC and cone */ if( mi->isVisible() || b_force_visible ) { @@ -1090,8 +1091,9 @@ void QVLCMenu::updateSystrayMenu( MainInterface *mi, qtr( "Show VLC media player" ), mi, SLOT( toggleUpdateSystrayMenu() ) ); } - sysMenu->addSeparator(); +#endif + PopupPlayEntries( sysMenu, p_intf, p_input ); PopupMenuPlaylistControlEntries( sysMenu, p_intf); PopupMenuControlEntries( sysMenu, p_intf); -- 1.6.5.7 From juhovh at iki.fi Thu Jul 29 22:22:31 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Thu, 29 Jul 2010 23:22:31 +0300 Subject: [vlc-devel] [PATCH 3/3] Qt: Remove an ifdef, no one knows what it should be doing In-Reply-To: <1280434951-67089-2-git-send-email-juhovh@iki.fi> References: <1280434951-67089-1-git-send-email-juhovh@iki.fi> <1280434951-67089-2-git-send-email-juhovh@iki.fi> Message-ID: <1280434951-67089-3-git-send-email-juhovh@iki.fi> --- modules/gui/qt4/util/qvlcframe.hpp | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) diff --git a/modules/gui/qt4/util/qvlcframe.hpp b/modules/gui/qt4/util/qvlcframe.hpp index 6bb960f..ec968b6 100644 --- a/modules/gui/qt4/util/qvlcframe.hpp +++ b/modules/gui/qt4/util/qvlcframe.hpp @@ -101,11 +101,7 @@ class QVLCTools class QVLCFrame : public QWidget { public: -#ifdef __APPLE__ - QVLCFrame( intf_thread_t *_p_intf ) : QWidget( NULL, Qt::Window ), p_intf( _p_intf ) -#else QVLCFrame( intf_thread_t *_p_intf ) : QWidget( NULL ), p_intf( _p_intf ) -#endif {}; virtual ~QVLCFrame() {}; -- 1.6.5.7 From remi at remlab.net Thu Jul 29 22:23:37 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Thu, 29 Jul 2010 23:23:37 +0300 Subject: [vlc-devel] [vlc-commits] Tag 1.1.2 : Jean-Baptiste Kempf : VLC 1.1.2 - 'The Luggage' In-Reply-To: <201007292310.34234.remi@remlab.net> References: <20100729095733.21E0010EB20@albiero.videolan.org> <201007292310.34234.remi@remlab.net> Message-ID: <201007292323.37372.remi@remlab.net> Le jeudi 29 juillet 2010 23:10:33 R?mi Denis-Courmont, vous avez ?crit : > Le jeudi 29 juillet 2010 12:57:33 git at videolan.org, vous avez ?crit : > > [vlc/vlc-1.1] [branch: refs/tags/1.1.2] > > Tag: 26062e6aaa28972d441b558a6ee7d99eab1f8a4c > > > > > http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git?a=tag;h=26062e6aaa28 > > > 97 2d441b558a6ee7d99eab1f8a4c > > > > Tagger: Jean-Baptiste Kempf > > Date: Thu Jul 29 11:52:08 2010 +0200 > > > > VLC 1.1.2 - 'The Luggage' > > The third release of the 1.1.x branch of VLC > > I (and Christophe) have received a security advisory today. I have not been > able to review it, but it seems like a terrible idea to go on with 1.1.2 > should it turn out to be a real problem. Update: It is indeed a real problem, but it seems to be inside contribs... -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From gundachandru at gmail.com Wed Jul 28 07:38:50 2010 From: gundachandru at gmail.com (=?UTF-8?B?4LKa4LKC4LKm4LON4LKw4LOBIOKZpSBDIGggYSBuIGQgciB1IEcgdSBuIGQgYQ==?=) Date: Wed, 28 Jul 2010 11:08:50 +0530 Subject: [vlc-devel] Kannada Translation for VLC In-Reply-To: <20100727223000.GK27619@chewa.net> References: <20100727223000.GK27619@chewa.net> Message-ID: Thanks Xtophe. :) Chandru... On Wed, Jul 28, 2010 at 4:00 AM, Christophe Mutricy wrote: > Hello, > > On Tue, Jul 27, 10 at 10:22 +0530, ?????? ? C h a n d r u G u n d a wrote: > > I am interested to translate strings to Kannada for VLC. Please send me > the > > localization file. > > > > You can find the file to translate there: > http://people.videolan.org/~xtophe/l10n/kn.po > > You can use poEdit or loKalize to translate. Make sure that you use > UTF-8 as encoding. > > If you have question you can ask them on irc #videolan on > irc.freenode.net or on the mailing-list vlc-devel at videolan.org > > When you have done a part of it you can send it to me or put it online > and send us the link. > > There is a mailing list dedicated to translators. You can subscribe at > http://mailman.videolan.org/listinfo/translators > > Thanks > > -- > Xtophe > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jmm at inutil.org Thu Jul 29 21:25:16 2010 From: jmm at inutil.org (Moritz Muehlenhoff) Date: Thu, 29 Jul 2010 15:25:16 -0400 Subject: [vlc-devel] Debian/Ubuntu VLC In-Reply-To: <878w58iotz.fsf@faui44a.informatik.uni-erlangen.de> References: <201007122154.54917.remi@remlab.net> <20100718174146.GB9850@videolan.org> <87wrssis6t.fsf@faui44a.informatik.uni-erlangen.de> <201007182138.00023.remi@remlab.net> <878w58iotz.fsf@faui44a.informatik.uni-erlangen.de> Message-ID: <20100729192516.GA17506@galadriel.inutil.org> On Sun, Jul 18, 2010 at 09:15:20PM +0200, Reinhard Tartler wrote: > I don't think it is a practical problem to point than more than one diff > in the announcement and/or changelog. Do you? For the Debian Security Team is pointer to an upload commit is usually sufficient. Adding one would be much appreciated. > >> >> > But even then, how do you plan to upgrade from 1.0.2 to 1.0.6? > >> >> > >> >> I don't understand the question. Of course by preparing an upload and > >> >> uploading it! > >> > > >> > Waouw, since when has this changed? > >> > 'we cannot update because this release change functionnalities' is what > >> > we usually had... > >> > >> This has not changed, but AFAIUI, there are only very focused and > >> documented changes in bugfix branches. Maybe I'm wrong here? If yes, > >> then a stable release update needs to cherry-pick the relevant changes. > > > > Generally, it mostly contains bug fixes. But as long as the source and binary > > interfaces remain compatible, and regression are perceived as very unlikely, > > new features can and do go in. > > This then may qualify for an ubuntu stable release update[1], but probably > not for a debian one. We could however try, I've seen that there has > been formed a stable release manager team and opinions may have changed > with that. > > [1] https://wiki.ubuntu.com/StableReleaseUpdates There are some exceptions for well-tested point updates. We do that for Postgres, e.g. > >> >> > Or from 1.1.x in final Maverick, to 1.1.x+{1,2,...} ? VideoLAN won't > >> >> > provide one stable tree per release! We can't afford the kernel's > >> >> > luxury time-wise. > >> >> > >> >> I guess 1.0-bugfix and 1.1-bugfix branches do exist, yes? What's the > >> >> problem? > >> > > >> > You don't understand him. He is speaking about 1.1.0-bugfix, > >> > 1.1.1-bugfix, etc... > >> > >> I think the misunderstanding is about the 1.0-bugfix and 1.1-bugfix > >> branches. Can you perhaps explain me the update/commit policy in the > >> 1.0-bufix branch? what patches qualify and what don't? Is there a wiki > >> page or something I can read about? > > > > In 1.0-bugfix the current policy is that it is DEAD. It just happens that > > there have been no security advisories since 1.0.6, and so 1.0-bugfix happens > > to be up-to-date w.r.t. security matters. > > > > But for 1.1-bugfix, there will be select low-risk new features probably until > > shortly before 1.2.0 is out. And 1.2.0 will probably be out long after > > Maverick. So that does not work in the medium term. > > I see. Well, my point still stands, a clearer identification of > important issues (including but not strictly limited to security issues) > would help packagers to identify patches that qualify for backporting. > This backporting itself does not need to be done by upstream, I think, > this means that I certainly don't expect you to actively maintain > 1.x.y-bugfix branches, but I imagine that a little help with VSAs or a > detailed ChangeLog or perhaps some wiki page to list and classify such > patches would be probably little effort for you and help us immensly > with preparing patches for released distro versions. I've discussed this with Reinhard in person at the currently holding Debian conference (DebConf); we'l?l send an end of life announcement for the ancient VLC version in Lenny. Cheers, Moritz From remi at remlab.net Thu Jul 29 22:28:06 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Thu, 29 Jul 2010 23:28:06 +0300 Subject: [vlc-devel] =?iso-8859-15?q?commit=3A_Revert_=22Qt=3A_save_volume?= =?iso-8859-15?q?_on_exit=22_=28_R=E9mi__Denis-Courmont_=29?= In-Reply-To: <20100729221947.1cd7cd6a@kru> References: <20100729193513.BF73C10F3E8@albiero.videolan.org> <20100729221947.1cd7cd6a@kru> Message-ID: <201007292328.07234.remi@remlab.net> Le jeudi 29 juillet 2010 23:19:47 Rafa?l Carr?, vous avez ?crit : > On Thu, 29 Jul 2010 21:35:13 +0200 (CEST) > > git at videolan.org wrote: > > vlc | branch: master | R?mi Denis-Courmont | Thu > > Jul 29 22:35:07 2010 +0300| > > [12e711eb3992fc269d47b86004dfd3775fd5e900] | committer: R?mi > > Denis-Courmont > > > > Revert "Qt: save volume on exit" > > > > This reverts commit 47e8817acdc58829acfbf5d02913007164b0a0bf. > > Please state why commits are reverted, in the commit log Please stop making wrong commits. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From jb at videolan.org Thu Jul 29 22:36:53 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 29 Jul 2010 22:36:53 +0200 Subject: [vlc-devel] [PATCH 1/3] Qt: Remove extra separator from systray menu In-Reply-To: <1280434951-67089-1-git-send-email-juhovh@iki.fi> References: <1280434951-67089-1-git-send-email-juhovh@iki.fi> Message-ID: <20100729203653.GA25619@videolan.org> The 3 patches make sense... Applied. On Thu, Jul 29, 2010 at 11:22:29PM +0300, Juho V?h?-Herttua wrote : > --- > modules/gui/qt4/menus.cpp | 1 - > 1 files changed, 0 insertions(+), 1 deletions(-) > > diff --git a/modules/gui/qt4/menus.cpp b/modules/gui/qt4/menus.cpp > index 2302559..c59400d 100644 > --- a/modules/gui/qt4/menus.cpp > +++ b/modules/gui/qt4/menus.cpp > @@ -1096,7 +1096,6 @@ void QVLCMenu::updateSystrayMenu( MainInterface *mi, > PopupMenuPlaylistControlEntries( sysMenu, p_intf); > PopupMenuControlEntries( sysMenu, p_intf); > > - sysMenu->addSeparator(); > addDPStaticEntry( sysMenu, qtr( "&Open Media" ), > ":/type/file-wide", SLOT( openFileDialog() ) ); > addDPStaticEntry( sysMenu, qtr( "&Quit" ) , > -- > 1.6.5.7 > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel -- Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From beauze.h at gmail.com Thu Jul 29 22:50:11 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Thu, 29 Jul 2010 22:50:11 +0200 Subject: [vlc-devel] =?iso-8859-1?q?commit=3A_Revert_=22Qt=3A_save_volume_?= =?iso-8859-1?q?on_exit=22_=28_R=E9mi_Denis-Courmont_=29?= In-Reply-To: <201007292328.07234.remi@remlab.net> References: <20100729193513.BF73C10F3E8@albiero.videolan.org> <20100729221947.1cd7cd6a@kru> <201007292328.07234.remi@remlab.net> Message-ID: On Thu, Jul 29, 2010 at 10:28 PM, R?mi Denis-Courmont wrote: > Le jeudi 29 juillet 2010 23:19:47 Rafa?l Carr?, vous avez ?crit : >> On Thu, 29 Jul 2010 21:35:13 +0200 (CEST) >> >> git at videolan.org wrote: >> > vlc | branch: master | R?mi Denis-Courmont | Thu >> > Jul 29 22:35:07 2010 +0300| >> > [12e711eb3992fc269d47b86004dfd3775fd5e900] | committer: R?mi >> > Denis-Courmont >> > >> > Revert "Qt: save volume on exit" >> > >> > This reverts commit 47e8817acdc58829acfbf5d02913007164b0a0bf. >> >> Please state why commits are reverted, in the commit log > > Please stop making wrong commits. > Well that explains why you reverted this commit ! Thanks ! -- Hugo Beauz?e-Luyssen From jb at videolan.org Thu Jul 29 22:56:03 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 29 Jul 2010 22:56:03 +0200 Subject: [vlc-devel] =?iso-8859-1?q?commit=3A_Revert_=22Qt=3A_save_volume_?= =?iso-8859-1?q?on_exit=22_=28_R=E9mi_Denis-Courmont_=29?= In-Reply-To: References: <20100729193513.BF73C10F3E8@albiero.videolan.org> <20100729221947.1cd7cd6a@kru> <201007292328.07234.remi@remlab.net> Message-ID: <20100729205603.GA29175@videolan.org> On Thu, Jul 29, 2010 at 10:50:11PM +0200, Hugo Beauzee-Luyssen wrote : > On Thu, Jul 29, 2010 at 10:28 PM, R?mi Denis-Courmont wrote: > > Le jeudi 29 juillet 2010 23:19:47 Rafa?l Carr?, vous avez ?crit : > >> On Thu, 29 Jul 2010 21:35:13 +0200 (CEST) Please stop this stupid discussion now, especially if you have nothing constructive to say. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From dilaroga at gmail.com Thu Jul 29 23:15:39 2010 From: dilaroga at gmail.com (Sebastien Zwickert) Date: Thu, 29 Jul 2010 23:15:39 +0200 Subject: [vlc-devel] [PATCH] MacOS: manage the mouse events to allow DVD navigation. In-Reply-To: References: <7B6E6D3B-A30C-4549-8F52-0C2EC7FBC438@gmail.com> Message-ID: <879309C5-E7F7-4207-A6E9-FA2122A65272@gmail.com> On Jul 29, 2010, at 2:09 PM, Pierre d'Herbemont wrote: > What if the libvlc application wants to handle mouse events itself, > and is not interested in DVD functionality? The patch is not > forwarding event at all, so there is no way to disable it easily. I > know that we are suffering from the fact that libvlccore and its > plugins do not say if the mouse events will be handled or not. Still, > we need to at least keep an option at the very least. I've made changes to the patch to forward the mouse events to the vout view container if it is able to manage mouse events itself. I used the existing option mouse-events as suggested by j-b. The public method libvlc_video_set_mouse_input allows libvlc application to easily change the value of this option. > From what I remember the mouseMoved thing won't work if you don't > first set acceptsMouseMoved events. Right. The window have to accept the mouse moved events to distribute them to its responders. > Might be wrong though, but you surely could do some factorization or > use vout_display_PlacePicture in mouseMoved:. Thanks to point out to me this useful function :) > And there are some minor style issues such as: >> +- (BOOL) acceptsFirstResponder > no space before accepts Fixed. >> + if ( !vd || ![self mouse:curPoint inRect:[self bounds]] ) > no space after ( and before ). > ... Should be fixed. New patch in attachment. -- Sebastien Zwickert -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-MacOS-manage-the-mouse-events-to-allow-DVD-navigati.patch Type: application/octet-stream Size: 3193 bytes Desc: not available URL: -------------- next part -------------- From fenrir at elivagar.org Thu Jul 29 23:40:16 2010 From: fenrir at elivagar.org (Laurent Aimar) Date: Thu, 29 Jul 2010 23:40:16 +0200 Subject: [vlc-devel] [PATCH] MacOS: manage the mouse events to allow DVD navigation. In-Reply-To: <879309C5-E7F7-4207-A6E9-FA2122A65272@gmail.com> References: <7B6E6D3B-A30C-4549-8F52-0C2EC7FBC438@gmail.com> <879309C5-E7F7-4207-A6E9-FA2122A65272@gmail.com> Message-ID: <20100729214016.GA23408@elivagar.org> Hi, On Thu, Jul 29, 2010 at 11:15:39PM +0200, Sebastien Zwickert wrote: > On Jul 29, 2010, at 2:09 PM, Pierre d'Herbemont wrote: > > What if the libvlc application wants to handle mouse events itself, > > and is not interested in DVD functionality? The patch is not > > forwarding event at all, so there is no way to disable it easily. I > > know that we are suffering from the fact that libvlccore and its > > plugins do not say if the mouse events will be handled or not. Still, > > we need to at least keep an option at the very least. > > I've made changes to the patch to forward the mouse events to the > vout view container if it is able to manage mouse events itself. > I used the existing option mouse-events as suggested by j-b. > The public method libvlc_video_set_mouse_input allows libvlc application > to easily change the value of this option. > > > From what I remember the mouseMoved thing won't work if you don't > > first set acceptsMouseMoved events. > > Right. The window have to accept the mouse moved events to distribute them > to its responders. > > > Might be wrong though, but you surely could do some factorization or > > use vout_display_PlacePicture in mouseMoved:. > > Thanks to point out to me this useful function :) If you use it (and yes using it is a really good thing as you will also easily get zoom/autoscale/alignement for free or nearly, and a consistant behaviour with other vouts), you probaby must change the code to use it in reshape(). Otherwise you may end up having inconsistancies... -- fenrir From fcvlcdev at free.fr Thu Jul 29 23:45:29 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Thu, 29 Jul 2010 23:45:29 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Qt=3A_save?= =?iso-8859-1?q?_volume_on_exit_=28_Francois=09Cartegnie_=29?= In-Reply-To: <201007292309.22649.remi@remlab.net> References: <20100729112912.D272B10EC2D@albiero.videolan.org> <201007292149.25542.fcvlcdev@free.fr> <201007292309.22649.remi@remlab.net> Message-ID: <201007292345.29853.fcvlcdev@free.fr> Le jeudi 29 juillet 2010, vous avez ?crit : > There is a reason why the preferences dialog has separate OK and Save > buttons. Your stupid change made the configuration ALWAYS saved at exit. > This is wrong and unacceptable. This is not going to change just for the > sake of the audio volume. Yep, that was out of my scope and stupid but that was config_save related and not the last commit. > I don't see the point. (lib)VLC already has its default volume. Why the > heck does the Qt4 interface needs to have its own default volume? What > happens when we have two interfaces with their own (conflicting) default > volumes then? 1 - User sets the "Qt start value" to val1 2 - User wants to change the way it's done and now wants to "save volume on exit": saves live value val2 3 - User goes back to Qt and now have val2 as "Qt start value" Pressing OK or Save at step #2 would have changed nothing. Qt has two max values: 256 and 512. The core goes as far as 1024. > Don't you see a self-contradiction here? Test case above. Confusion starts with the "Qt start value" linked to the 'live' audio volume. Then came your explanation: "Unfortumately, this is currently not possible because the running volume is stored in the configuration always, which is wrong." > I am not going to come up with an alternative solution. I did not write the > buggy Qt4 audio volume handling to begin with, nor the audio output core's, > so I do not feel responsible for (fixing) this mess. No fix, no workaround :/ > object variable anyway. I never fixed it because I did not have the time > and courage to fix all the interfaces. But now, you wrote some > mindboggingly complicated logic in the core, so I don't understand the Reading action & vars, evaluating two change conditions and apply them whith the benefit of dealing with only one lock section: That's complex, not complicated. Keep the 'mindboggling' if you wish. Patch set has been on the list for more than 15 days. Two people had it in hands without pointing any of those problems , mentioned here or on the earlier revert. Otherwise it would haven't been committed at all. Francois From jb at videolan.org Thu Jul 29 23:55:43 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Thu, 29 Jul 2010 23:55:43 +0200 Subject: [vlc-devel] [vlc-commits] commit: Qt: simple_prefs pack UI (Francois Cartegnie ) In-Reply-To: <20100729172817.5255110F353@albiero.videolan.org> References: <20100729172817.5255110F353@albiero.videolan.org> Message-ID: <20100729215543.GA7833@videolan.org> On Thu, Jul 29, 2010 at 07:28:17PM +0200, git at videolan.org wrote : > vlc | branch: master | Francois Cartegnie | Thu Jul 29 19:27:12 2010 +0200| [9d99a7ab7450ddb180d26f9677d7e95a748a361c] | committer: Francois Cartegnie > > Qt: simple_prefs pack UI This is very nice. It could gain of some centering, but this is really nice... And it fixes the 120%Dpi bug... Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From xxcv07 at gmail.com Fri Jul 30 00:16:16 2010 From: xxcv07 at gmail.com (xxcv) Date: Fri, 30 Jul 2010 08:16:16 +1000 Subject: [vlc-devel] [vlc-commits] commit: Qt: simple_prefs pack UI (Francois Cartegnie ) In-Reply-To: <20100729172817.5255110F353@albiero.videolan.org> References: <20100729172817.5255110F353@albiero.videolan.org> Message-ID: <4C51FDB0.3020606@gmail.com> On 30/07/2010 3:28 AM, git at videolan.org wrote: > vlc | branch: master | Francois Cartegnie | Thu Jul 29 19:27:12 2010 +0200| [9d99a7ab7450ddb180d26f9677d7e95a748a361c] | committer: Francois Cartegnie > > Qt: simple_prefs pack UI > >> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9d99a7ab7450ddb180d26f9677d7e95a748a361c > --- > > modules/gui/qt4/components/simple_preferences.cpp | 15 +- > modules/gui/qt4/components/simple_preferences.hpp | 1 + > modules/gui/qt4/ui/sprefs_interface.ui | 676 +++++++++++++-------- > 3 files changed, 422 insertions(+), 270 deletions(-) > > Diff: http://git.videolan.org/gitweb.cgi/vlc.git/?a=commitdiff;h=9d99a7ab7450ddb180d26f9677d7e95a748a361c Hmm, how come there's some conflicts..? remote: Counting objects: 133, done. remote: Compressing objects: 100% (97/97), done. remote: Total 97 (delta 81), reused 0 (delta 0) Unpacking objects: 100% (97/97), done. From git://git.videolan.org/vlc + 6e88ccc...db6104c master -> origin/master (forced update) Auto-merging NEWS Auto-merging modules/gui/qt4/ui/sout.ui CONFLICT (content): Merge conflict in modules/gui/qt4/ui/sout.ui Automatic merge failed; fix conflicts and then commit the result. diff --cc modules/gui/qt4/ui/sout.ui index 0f8360b,88c075d..0000000 --- a/modules/gui/qt4/ui/sout.ui +++ b/modules/gui/qt4/ui/sout.ui @@@ -280,7 -280,7 +280,11 @@@ ++<<<<<<< HEAD + Options Setup ++======= + Option Setup ++>>>>>>> db6104c7f94c9da5a3dbcfcda5a03757d32d51fa From beauze.h at gmail.com Fri Jul 30 00:20:04 2010 From: beauze.h at gmail.com (Hugo Beauzee-Luyssen) Date: Fri, 30 Jul 2010 00:20:04 +0200 Subject: [vlc-devel] [vlc-commits] commit: Qt: simple_prefs pack UI (Francois Cartegnie ) In-Reply-To: <4C51FDB0.3020606@gmail.com> References: <20100729172817.5255110F353@albiero.videolan.org> <4C51FDB0.3020606@gmail.com> Message-ID: On Fri, Jul 30, 2010 at 12:16 AM, xxcv wrote: > On 30/07/2010 3:28 AM, git at videolan.org wrote: >> >> vlc | branch: master | Francois Cartegnie ?| Thu Jul 29 >> 19:27:12 2010 +0200| [9d99a7ab7450ddb180d26f9677d7e95a748a361c] | committer: >> Francois Cartegnie >> >> Qt: simple_prefs pack UI >> >>> >>> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9d99a7ab7450ddb180d26f9677d7e95a748a361c >> >> --- >> >> ?modules/gui/qt4/components/simple_preferences.cpp | ? 15 +- >> ?modules/gui/qt4/components/simple_preferences.hpp | ? ?1 + >> ?modules/gui/qt4/ui/sprefs_interface.ui ? ? ? ? ? ?| ?676 >> +++++++++++++-------- >> ?3 files changed, 422 insertions(+), 270 deletions(-) >> >> Diff: >> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commitdiff;h=9d99a7ab7450ddb180d26f9677d7e95a748a361c > > Hmm, how come there's some conflicts..? > > remote: Counting objects: 133, done. > remote: Compressing objects: 100% (97/97), done. > remote: Total 97 (delta 81), reused 0 (delta 0) > Unpacking objects: 100% (97/97), done. > From git://git.videolan.org/vlc > ?+ 6e88ccc...db6104c master ? ? -> origin/master ?(forced update) > Auto-merging NEWS > Auto-merging modules/gui/qt4/ui/sout.ui > CONFLICT (content): Merge conflict in modules/gui/qt4/ui/sout.ui > Automatic merge failed; fix conflicts and then commit the result. > > diff --cc modules/gui/qt4/ui/sout.ui > index 0f8360b,88c075d..0000000 > --- a/modules/gui/qt4/ui/sout.ui > +++ b/modules/gui/qt4/ui/sout.ui > @@@ -280,7 -280,7 +280,11 @@@ > ? ? ? ? > ? ? ? ? > ? ? ? ? > ++<<<<<<< HEAD > ?+ ? ? ? Options Setup > ++======= > + ? ? ? ?Option Setup > ++>>>>>>> db6104c7f94c9da5a3dbcfcda5a03757d32d51fa > ? ? ? ? > ? ? ? ? > ? ? ? ? Conflicts comes from your local modifications, so i'd say you're the only one to know. -- Hugo Beauz?e-Luyssen From xxcv07 at gmail.com Fri Jul 30 00:29:47 2010 From: xxcv07 at gmail.com (xxcv) Date: Fri, 30 Jul 2010 08:29:47 +1000 Subject: [vlc-devel] [vlc-commits] commit: Qt: simple_prefs pack UI (Francois Cartegnie ) In-Reply-To: References: <20100729172817.5255110F353@albiero.videolan.org> <4C51FDB0.3020606@gmail.com> Message-ID: <4C5200DB.70102@gmail.com> On 30/07/2010 8:20 AM, Hugo Beauzee-Luyssen wrote: > On Fri, Jul 30, 2010 at 12:16 AM, xxcv wrote: >> On 30/07/2010 3:28 AM, git at videolan.org wrote: >>> >>> vlc | branch: master | Francois Cartegnie | Thu Jul 29 >>> 19:27:12 2010 +0200| [9d99a7ab7450ddb180d26f9677d7e95a748a361c] | committer: >>> Francois Cartegnie >>> >>> Qt: simple_prefs pack UI >>> >>>> >>>> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9d99a7ab7450ddb180d26f9677d7e95a748a361c >>> >>> --- >>> >>> modules/gui/qt4/components/simple_preferences.cpp | 15 +- >>> modules/gui/qt4/components/simple_preferences.hpp | 1 + >>> modules/gui/qt4/ui/sprefs_interface.ui | 676 >>> +++++++++++++-------- >>> 3 files changed, 422 insertions(+), 270 deletions(-) >>> >>> Diff: >>> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commitdiff;h=9d99a7ab7450ddb180d26f9677d7e95a748a361c >> >> Hmm, how come there's some conflicts..? >> >> remote: Counting objects: 133, done. >> remote: Compressing objects: 100% (97/97), done. >> remote: Total 97 (delta 81), reused 0 (delta 0) >> Unpacking objects: 100% (97/97), done. >> From git://git.videolan.org/vlc >> + 6e88ccc...db6104c master -> origin/master (forced update) >> Auto-merging NEWS >> Auto-merging modules/gui/qt4/ui/sout.ui >> CONFLICT (content): Merge conflict in modules/gui/qt4/ui/sout.ui >> Automatic merge failed; fix conflicts and then commit the result. >> >> diff --cc modules/gui/qt4/ui/sout.ui >> index 0f8360b,88c075d..0000000 >> --- a/modules/gui/qt4/ui/sout.ui >> +++ b/modules/gui/qt4/ui/sout.ui >> @@@ -280,7 -280,7 +280,11 @@@ >> >> >> >> ++<<<<<<< HEAD >> +Options Setup >> ++======= >> +Option Setup >> ++>>>>>>> db6104c7f94c9da5a3dbcfcda5a03757d32d51fa >> >> >> > > > Conflicts comes from your local modifications, so i'd say you're the > only one to know. > Hi, I am sure that I didn't modify the local directory of the vlc.git clone. Also there seems to be some missing obj which was on vlc-commits and wasn't in the vlc.git clone. For example 7f625e5f46e6b486ab6073f4f6cab7c1c6b01c83 It is here http://git.videolan.org/gitweb.cgi/vlc.git/?a=commitdiff;h=7f625e5f46e6b486ab6073f4f6cab7c1c6b01c83 But it does not exists in my vlc.git clone. fatal: bad object 7f625e5f46e6b486ab6073f4f6cab7c1c6b01c83 Maybe I have a corrupted vlc.git clone... Thanks for replying. From dilaroga at gmail.com Fri Jul 30 01:03:33 2010 From: dilaroga at gmail.com (Sebastien Zwickert) Date: Fri, 30 Jul 2010 01:03:33 +0200 Subject: [vlc-devel] [PATCH] MacOS: manage the mouse events to allow DVD navigation. In-Reply-To: <20100729214016.GA23408@elivagar.org> References: <7B6E6D3B-A30C-4549-8F52-0C2EC7FBC438@gmail.com> <879309C5-E7F7-4207-A6E9-FA2122A65272@gmail.com> <20100729214016.GA23408@elivagar.org> Message-ID: <222465D6-A04A-4C9D-B694-1890467A02F4@gmail.com> On Jul 29, 2010, at 11:40 PM, Laurent Aimar wrote: > Hi, > > On Thu, Jul 29, 2010 at 11:15:39PM +0200, Sebastien Zwickert wrote: >> On Jul 29, 2010, at 2:09 PM, Pierre d'Herbemont wrote: >> >>> Might be wrong though, but you surely could do some factorization or >>> use vout_display_PlacePicture in mouseMoved:. >> >> Thanks to point out to me this useful function :) > If you use it (and yes using it is a really good thing as you will also > easily get zoom/autoscale/alignement for free or nearly, and a consistant > behaviour with other vouts), you probaby must change the code to use it in > reshape(). Otherwise you may end up having inconsistancies... Thank you for the consulting. In attachment a separate patch which takes the benefits of vout_display_PlacePicture in reshape(). -- Sebastien Zwickert -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-MacOS-take-benefit-of-vout_display_PlacePicture.patch Type: application/octet-stream Size: 1578 bytes Desc: not available URL: From remi at remlab.net Fri Jul 30 07:40:55 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Fri, 30 Jul 2010 08:40:55 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Qt=3A_save?= =?iso-8859-1?q?_volume_on_exit_=28_Francois=09Cartegnie_=29?= In-Reply-To: <201007292339.34345.fcvlcdev@free.fr> References: <20100729112912.D272B10EC2D@albiero.videolan.org> <201007292309.22649.remi@remlab.net> <201007292339.34345.fcvlcdev@free.fr> Message-ID: <201007300840.55649.remi@remlab.net> Le vendredi 30 juillet 2010 00:39:34 Francois Cartegnie, vous avez ?crit : > Le jeudi 29 juillet 2010, vous avez ?crit : > > There is a reason why the preferences dialog has separate OK and Save > > > > buttons. Your stupid change made the configuration ALWAYS saved at exit. > > This is wrong and unacceptable. This is _not_ going to change just for > > the sake of the audio volume. > > Yep, that was out of my scope and stupid but that was config_save related > and not the last commit. It should be obvious to anyone writing VLC code that you can't change random data shared by multiple threads. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Fri Jul 30 07:46:44 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Fri, 30 Jul 2010 08:46:44 +0300 Subject: [vlc-devel] =?iso-8859-1?q?commit=3A_Revert_=22Qt=3A_save_volume_?= =?iso-8859-1?q?on_exit=22_=28_R=E9mi_Denis-Courmont_=29?= In-Reply-To: References: <20100729193513.BF73C10F3E8@albiero.videolan.org> <201007292328.07234.remi@remlab.net> Message-ID: <201007300846.45170.remi@remlab.net> Le jeudi 29 juillet 2010 23:50:11 Hugo Beauzee-Luyssen, vous avez ?crit : > On Thu, Jul 29, 2010 at 10:28 PM, R?mi Denis-Courmont wrote: > > Le jeudi 29 juillet 2010 23:19:47 Rafa?l Carr?, vous avez ?crit : > >> On Thu, 29 Jul 2010 21:35:13 +0200 (CEST) > >> > >> git at videolan.org wrote: > >> > vlc | branch: master | R?mi Denis-Courmont | Thu > >> > Jul 29 22:35:07 2010 +0300| > >> > [12e711eb3992fc269d47b86004dfd3775fd5e900] | committer: R?mi > >> > Denis-Courmont > >> > > >> > Revert "Qt: save volume on exit" > >> > > >> > This reverts commit 47e8817acdc58829acfbf5d02913007164b0a0bf. > >> > >> Please state why commits are reverted, in the commit log > > > > Please stop making wrong commits. > > Well that explains why you reverted this commit ! > Thanks ! If you can't see a patent violation of the memory model, you better not write multi-threaded code. I do not hold a degree in teaching, so I wouldn't be able explain that. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From pdherbemont at free.fr Fri Jul 30 10:20:36 2010 From: pdherbemont at free.fr (Pierre d'Herbemont) Date: Fri, 30 Jul 2010 10:20:36 +0200 Subject: [vlc-devel] [PATCH] MacOS: manage the mouse events to allow DVD navigation. In-Reply-To: <879309C5-E7F7-4207-A6E9-FA2122A65272@gmail.com> References: <7B6E6D3B-A30C-4549-8F52-0C2EC7FBC438@gmail.com> <879309C5-E7F7-4207-A6E9-FA2122A65272@gmail.com> Message-ID: Hi Sebastien, Thanks for the fast update. On Thu, Jul 29, 2010 at 11:15 PM, Sebastien Zwickert wrote: > > On Jul 29, 2010, at 2:09 PM, Pierre d'Herbemont wrote: >> What if the libvlc application wants to handle mouse events itself, >> and is not interested in DVD functionality? The patch is not >> forwarding event at all, so there is no way to disable it easily. I >> know that we are suffering from the fact that libvlccore and its >> plugins do not say if the mouse events will be handled or not. Still, >> we need to at least keep an option at the very least. > > I've made changes to the patch to forward the mouse events to the > vout view container if it is able to manage mouse events itself. > I used the existing option mouse-events as suggested by j-b. > The public method libvlc_video_set_mouse_input allows libvlc application > to easily change the value of this option. This is exactly what needs to be done. Thanks! >> From what I remember the mouseMoved thing won't work if you don't >> first set acceptsMouseMoved events. > Right. The window have to accept the mouse moved events to distribute them > to its responders. ok. We need to remind this somewhere. A comment is fine. Also: + vout_display_sys_t *sys = vd->sys; + if (sys->container && [sys->container respondsToSelector:@selector(mouseMoved:)]) + [sys->container mouseMoved:theEvent]; I would just pass it to super. Less code, and probably more accurate. What do you think? And +- (BOOL)acceptsFirstResponder +{ + return YES; +} Needs to return NO when "mouse-events" is false. That said, these are minor issues and could be fixed later on. Pierre. From ivoire at videolan.org Fri Jul 30 10:29:05 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Fri, 30 Jul 2010 10:29:05 +0200 Subject: [vlc-devel] [vlc-commits] commit: Qt: simple_prefs pack UI (Francois Cartegnie ) In-Reply-To: <4C5200DB.70102@gmail.com> References: <20100729172817.5255110F353@albiero.videolan.org> <4C51FDB0.3020606@gmail.com> <4C5200DB.70102@gmail.com> Message-ID: <20100730082905.GG15851@dinauz.org> > Hi, > I am sure that I didn't modify the local directory of the vlc.git clone. > Also there seems to be some missing obj which was on vlc-commits and > wasn't in the vlc.git clone. > For example 7f625e5f46e6b486ab6073f4f6cab7c1c6b01c83 > It is here > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commitdiff;h=7f625e5f46e6b486ab6073f4f6cab7c1c6b01c83 > But it does not exists in my vlc.git clone. > fatal: bad object 7f625e5f46e6b486ab6073f4f6cab7c1c6b01c83 This one came from a faulty git forced push (not me). But the commit was repushed afterward. > Maybe I have a corrupted vlc.git clone... Maybe. -- R?mi Duraffort | ivoire From ivoire at videolan.org Fri Jul 30 10:32:27 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Fri, 30 Jul 2010 10:32:27 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_access=5Fh?= =?iso-8859-1?q?ttp=3A_use_only_the_provided_user_agent=2E_=28_R=E9?= =?iso-8859-1?q?mi_Duraffort_=29?= In-Reply-To: <201007292226.27254.remi@remlab.net> References: <20100728210559.69F0B10A07A@albiero.videolan.org> <1280397455.13571.3.camel@Nokia-N900-51-1> <20100729110814.GE15851@dinauz.org> <201007292226.27254.remi@remlab.net> Message-ID: <20100730083226.GH15851@dinauz.org> Le jeudi 29 juillet 2010 ? 10:26:26, R?mi Denis-Courmont a ?crit : > Le jeudi 29 juillet 2010 14:08:14 R?mi Duraffort, vous avez ?crit : > > That's the default user agent (name/version), but if people uses the option > > to change the user agent I think they expect to control it complitely and > > not only one part of it. > > Firstl, I am far from convinced that this option is useful in the preferences. I do agree with you on this. > I don't expect the user to set it up itself, only SD, playlists or such. In this case setting the user-agent to exactly what the SD script asks seams logical to me. > Second, I still fail to see the harm in adding LibVLC at the end. I do see the > harm in _not_ adding it. I don't know if it harms or not but I see this as some kind of a bug. If we provide an option to override the user agent, it might override it. Maybe the name of the option/variable or the help text is not suitable ? best regards -- R?mi Duraffort | ivoire From ileoo at videolan.org Fri Jul 30 10:47:04 2010 From: ileoo at videolan.org (Ilkka Ollakka) Date: Fri, 30 Jul 2010 11:47:04 +0300 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_access=5Fh?= =?iso-8859-1?q?ttp=3A_use_only_the_provided_user_agent=2E_=28_R=E9?= =?iso-8859-1?q?mi_Duraffort_=29?= In-Reply-To: <20100730083226.GH15851@dinauz.org> References: <20100728210559.69F0B10A07A@albiero.videolan.org> <1280397455.13571.3.camel@Nokia-N900-51-1> <20100729110814.GE15851@dinauz.org> <201007292226.27254.remi@remlab.net> <20100730083226.GH15851@dinauz.org> Message-ID: <20100730084704.GJ26085@ileoo> On Fri, Jul 30, 2010 at 10:32:27AM +0200, R?mi Duraffort wrote: > Le jeudi 29 juillet 2010 ? 10:26:26, R?mi Denis-Courmont a ?crit : > > Le jeudi 29 juillet 2010 14:08:14 R?mi Duraffort, vous avez ?crit : > > > That's the default user agent (name/version), but if people uses the option > > > to change the user agent I think they expect to control it complitely and > > > not only one part of it. > > I don't expect the user to set it up itself, only SD, playlists or such. > In this case setting the user-agent to exactly what the SD script asks > seams logical to me. Actually most cases user-agent is added just that server can match certain string, I don't think any of those user-agent lookup tries to match whole string, only tries to find one certain part in there (like quicktime/7 for apple etc). And I agree with courmisch here, that we should have libvlc/version un http-user agent. > > Second, I still fail to see the harm in adding LibVLC at the end. I do see the > > harm in _not_ adding it. > I don't know if it harms or not but I see this as some kind of a bug. If > we provide an option to override the user agent, it might override it. > Maybe the name of the option/variable or the help text is not suitable ? We could mention that we add libvlc/version to http-user agent string, but otherwise it seems to be correct, as user_agent handles also application name toward pulseaudio etc? > best regards -- Ilkka Ollakka Don't get even -- get odd! -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 490 bytes Desc: not available URL: From dilaroga at gmail.com Fri Jul 30 12:25:54 2010 From: dilaroga at gmail.com (Sebastien Zwickert) Date: Fri, 30 Jul 2010 12:25:54 +0200 Subject: [vlc-devel] [PATCH] MacOS: manage the mouse events to allow DVD navigation. In-Reply-To: References: <7B6E6D3B-A30C-4549-8F52-0C2EC7FBC438@gmail.com> <879309C5-E7F7-4207-A6E9-FA2122A65272@gmail.com> Message-ID: <2A0649EE-124A-4615-90E2-27ABA19E9868@gmail.com> On Jul 30, 2010, at 10:20 AM, Pierre d'Herbemont wrote: > On Thu, Jul 29, 2010 at 11:15 PM, Sebastien Zwickert wrote: >> >> On Jul 29, 2010, at 2:09 PM, Pierre d'Herbemont wrote: >>> From what I remember the mouseMoved thing won't work if you don't >>> first set acceptsMouseMoved events. >> Right. The window have to accept the mouse moved events to distribute them >> to its responders. > ok. We need to remind this somewhere. A comment is fine. Comment added. > Also: > > + vout_display_sys_t *sys = vd->sys; > + if (sys->container && [sys->container > respondsToSelector:@selector(mouseMoved:)]) > + [sys->container mouseMoved:theEvent]; > > I would just pass it to super. Less code, and probably more accurate. > What do you think? Fixed. You're right : i've forgot that the default implementation simply passes this message to the next responder so with super we don't break the responders chain. Moreover by default the next responder is the superview, so same result for less code and more accurate. > > And > > +- (BOOL)acceptsFirstResponder > +{ > + return YES; > +} > > Needs to return NO when "mouse-events" is false. In this case, all the events won't be sent to the view. Maybe later we need to manage the keyboard events. Thus libvlc application should be able to enable/disable mouse-events and keyboard-events independently. What do you think ? New patch in attachment. -- Sebastien Zwickert -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-MacOS-manage-the-mouse-events-to-allow-DVD-navigati.patch Type: application/octet-stream Size: 2893 bytes Desc: not available URL: -------------- next part -------------- From valentin.gosu at gmail.com Fri Jul 30 13:59:13 2010 From: valentin.gosu at gmail.com (Valentin Gosu) Date: Fri, 30 Jul 2010 14:59:13 +0300 Subject: [vlc-devel] Webplugin & video-sidebar Message-ID: <4C52BE91.8060006@gmail.com> Hello, A few weeks ago, along with some fellow students, I have started a project to create a "video sidebar" extension for Mozilla Firefox. The purpose of the extension is to provide the ability to watch video files (especially local video files) in your browser, while surfing the web. The extension makes use of VLC's Mozilla Plugin. You can install it [1] or check out the source code on google code [2] We could also use your help concerning the playlist. The playlist in the sidebar is sortable, but only for demonstration purposes. Reordering the files does nothing, nor does removing them. This is in part because there is no 'add to position' method in the Webplugin's API [3]. Is there another way to change the order of elements in the playlist? We would appreciate it if you took a look at our add-on, and sent us some feedback. Thank you! [1] https://addons.mozilla.org/en-US/firefox/addon/204328/ [2] https://code.google.com/p/video-sidebar/ [3] http://wiki.videolan.org/Documentation:WebPlugin#Playlist_object -- Valentin Gosu From fcvlcdev at free.fr Fri Jul 30 14:10:07 2010 From: fcvlcdev at free.fr (Francois Cartegnie) Date: Fri, 30 Jul 2010 14:10:07 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_Qt=3A_save?= =?iso-8859-1?q?_volume_on_exit_=28_Francois=09Cartegnie_=29?= In-Reply-To: <201007300840.55649.remi@remlab.net> References: <20100729112912.D272B10EC2D@albiero.videolan.org> <201007292339.34345.fcvlcdev@free.fr> <201007300840.55649.remi@remlab.net> Message-ID: <201007301410.07239.fcvlcdev@free.fr> Le vendredi 30 juillet 2010, vous avez ?crit : > > It should be obvious to anyone writing VLC code that you can't change > random data shared by multiple threads. I picked config_SaveConfigFile because it is the code associated to the "Save" button. I don't why the user choice would provide better thread safe guarantee doing a config_SaveConfigFile though the prefs window at time T, and saving the same variables at time T+1. If it's prefs variables, it should still be untouched. The only pointed-out problem was that I saving prefs that were not intended to be saved, and without user's consent. Francois From juhovh at iki.fi Fri Jul 30 14:43:54 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Fri, 30 Jul 2010 15:43:54 +0300 Subject: [vlc-devel] [PATCH] Qt: Do not use the xpm window icon on Mac, it's ugly Message-ID: <1280493834-84351-1-git-send-email-juhovh@iki.fi> --- modules/gui/qt4/qt4.cpp | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index d689c4a..5965c05 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -423,10 +423,12 @@ static void *Thread( void *obj ) QSettings::UserScope, "vlc", "vlc-qt-interface" ); /* Icon setting */ +#ifndef Q_WS_MAC if( QDate::currentDate().dayOfYear() >= 352 ) /* One Week before Xmas */ app.setWindowIcon( QIcon(vlc_christmas_xpm) ); else app.setWindowIcon( QIcon(vlc_xpm) ); +#endif /* Initialize timers and the Dialog Provider */ DialogsProvider::getInstance( p_intf ); -- 1.6.5.7 From xxcv07 at gmail.com Fri Jul 30 14:54:39 2010 From: xxcv07 at gmail.com (xxcv) Date: Fri, 30 Jul 2010 22:54:39 +1000 Subject: [vlc-devel] [vlc-commits] commit: Qt: save volume on exit ( Francois Cartegnie ) In-Reply-To: <201007301410.07239.fcvlcdev@free.fr> References: <20100729112912.D272B10EC2D@albiero.videolan.org> <201007292339.34345.fcvlcdev@free.fr> <201007300840.55649.remi@remlab.net> <201007301410.07239.fcvlcdev@free.fr> Message-ID: <4C52CB8F.6040200@gmail.com> On 30/07/2010 10:10 PM, Francois Cartegnie wrote: > Le vendredi 30 juillet 2010, vous avez ?crit : >> >> It should be obvious to anyone writing VLC code that you can't change >> random data shared by multiple threads. > > I picked config_SaveConfigFile because it is the code associated to the "Save" > button. I don't why the user choice would provide better thread safe guarantee > doing a config_SaveConfigFile though the prefs window at time T, and saving > the same variables at time T+1. If it's prefs variables, it should still be > untouched. > The only pointed-out problem was that I saving prefs that were not intended to > be saved, and without user's consent. Remi is right. You are not supposed to save it in the Qt module which is core's work. Therefore I think if you want to save the volume for any reason should you save it in the settings object instead. While perhaps the core would like to implement a feature for just save the audio volume maybe a little bit unnecessary. > > Francois > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > From ncopa at alpinelinux.org Fri Jul 30 10:26:39 2010 From: ncopa at alpinelinux.org (Natanael Copa) Date: Fri, 30 Jul 2010 08:26:39 +0000 Subject: [vlc-devel] [PATCH] build: libcompat fix in case there are no functions to replace Message-ID: <1280478399-1549-1-git-send-email-ncopa@alpinelinux.org> If the libc provides all the funcs in libcompat the libcompat.a will never be created due to LIBOBJS is empty (normally it contains whatever AC_REPLACE_FUNCS detects). This happens on uclibc. Since Makefile.am have a hardcoded LDADD to ../compat/libcompat.la things goes bad when there is no libcompat.a at all. We solve this by checking if LIBOBJS is set by AC_REPLACE_FUNCS and add libcompat via LTLIBCOMPAT. For alternative fixes see http://www.gnu.org/software/hello/manual/automake/LIBOBJS.html --- bin/Makefile.am | 2 +- configure.ac | 8 ++++++++ modules/common.am | 2 +- src/Makefile.am | 4 ++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/bin/Makefile.am b/bin/Makefile.am index 92e6879..a941d99 100644 --- a/bin/Makefile.am +++ b/bin/Makefile.am @@ -60,5 +60,5 @@ vlc_win32_rc.$(OBJEXT): vlc_win32_rc.rc vlc_cache_gen_SOURCES = cachegen.c vlc_cache_gen_LDADD = \ $(GNUGETOPT_LIBS) \ - ../compat/libcompat.la \ + $(LTLIBCOMPAT) \ ../src/libvlc.la ../src/libvlccore.la diff --git a/configure.ac b/configure.ac index 52e4830..b385100 100644 --- a/configure.ac +++ b/configure.ac @@ -547,6 +547,14 @@ need_libc=false dnl Check for usual libc functions AC_CHECK_FUNCS([ctime_r daemon fcntl fdopendir fstatvfs fork getenv getpwuid_r gettimeofday isatty lstat memalign openat posix_fadvise posix_madvise posix_memalign setenv setlocale stricmp strnicmp tdestroy uselocale]) AC_REPLACE_FUNCS([asprintf atof atoll getcwd getdelim getpid gmtime_r lldiv localtime_r nrand48 rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab vasprintf]) + +dnl Check that we actually need libcompat +LTLIBCOMPAT="" +if test "x${LIBOBJS}" != "x"; then + LTLIBCOMPAT="\$(top_builddir)/compat/libcompat.la" +fi +AC_SUBST(LTLIBCOMPAT) + AC_CHECK_FUNCS(fdatasync,, [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.]) ]) diff --git a/modules/common.am b/modules/common.am index 5e4d65f..9e2c739 100644 --- a/modules/common.am +++ b/modules/common.am @@ -24,7 +24,7 @@ AM_LDFLAGS = -rpath '$(libvlcdir)' \ -no-undefined \ `$(VLC_CONFIG) --ldflags plugin $@` AM_LIBADD = `$(VLC_CONFIG) -libs plugin $@` \ - $(LTLIBVLCCORE) $(top_builddir)/compat/libcompat.la + $(LTLIBVLCCORE) $(LTLIBCOMPAT) include $(srcdir)/Modules.am diff --git a/src/Makefile.am b/src/Makefile.am index f46a154..6aad884 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -201,7 +201,7 @@ libvlccore_la_LDFLAGS = `$(VLC_CONFIG) --ldflags libvlccore` $(AM_LDFLAGS) \ -export-symbols $(srcdir)/libvlccore.sym \ -version-info 5:0:0 libvlccore_la_LIBADD = `$(VLC_CONFIG) -libs libvlccore` $(AM_LIBADD) \ - $(LTLIBINTL) ../compat/libcompat.la + $(LTLIBINTL) $(LTLIBCOMPAT) libvlccore_la_DEPENDENCIES = libvlccore.sym if HAVE_WIN32 libvlccore_la_DEPENDENCIES += libvlc_win32_rc.$(OBJEXT) @@ -214,7 +214,7 @@ libvlc_win32_rc.$(OBJEXT): libvlc_win32_rc.rc libvlc_la_SOURCES = $(SOURCES_libvlc_control) nodist_libvlc_la_SOURCES = revision.c libvlc_la_LIBADD = `$(VLC_CONFIG) -libs libvlc` \ - libvlccore.la ../compat/libcompat.la + libvlccore.la $(LTLIBCOMPAT) libvlc_la_CFLAGS = `$(VLC_CONFIG) --cflags libvlc` libvlc_la_LDFLAGS = $(AM_LDFLAGS) `$(VLC_CONFIG) --ldflags libvlc` \ -version-info 6:0:1 \ -- 1.7.2.1 From apolon04 at gmail.com Fri Jul 30 11:16:12 2010 From: apolon04 at gmail.com (Peter) Date: Fri, 30 Jul 2010 12:16:12 +0300 Subject: [vlc-devel] Hebrew traslation - VLC Message-ID: Hello, I would like to translate VLC to Hebrew. I saw that there is some Heb. translation,* but* there are a lot of sentences and expressions that are still in English. I can finish this and also check all the rest :) -- peterg http://peterg.coi.co.il -------------- next part -------------- An HTML attachment was scrubbed... URL: From sunilshevante at yahoo.com Fri Jul 30 15:45:47 2010 From: sunilshevante at yahoo.com (Sunil Shevante) Date: Fri, 30 Jul 2010 06:45:47 -0700 (PDT) Subject: [vlc-devel] Marathi translation Message-ID: <543966.38987.qm@web56708.mail.re3.yahoo.com> I would like to provide Marathi translation for VLC player. Please send me the localization file. Thanks, Sunil. -------------- next part -------------- An HTML attachment was scrubbed... URL: From goetz.waschk at gmail.com Fri Jul 30 16:53:19 2010 From: goetz.waschk at gmail.com (=?ISO-8859-1?Q?G=F6tz_Waschk?=) Date: Fri, 30 Jul 2010 16:53:19 +0200 Subject: [vlc-devel] [patch] fix rvlc wrapper Message-ID: Hi everyone, the rvlc wrapper starts vlc with the nonexistent (in 1.1.2) rc plugin. It should use oldrc instead. Regards, G?tz -- AL I:40: Do what thou wilt shall be the whole of the Law. -------------- next part -------------- A non-text attachment was scrubbed... Name: vlc-1.1.2-rvlc.patch Type: application/octet-stream Size: 404 bytes Desc: not available URL: From remi at remlab.net Fri Jul 30 17:43:39 2010 From: remi at remlab.net (=?ISO-8859-1?Q?R=E9mi?= Denis-Courmont) Date: Fri, 30 Jul 2010 18:43:39 +0300 Subject: [vlc-devel] [vlc-commits] commit: Qt: save volume on exit ( Francois Cartegnie ) In-Reply-To: <201007301410.07239.fcvlcdev@free.fr> References: <20100729112912.D272B10EC2D@albiero.videolan.org> <201007292339.34345.fcvlcdev@free.fr> <201007300840.55649.remi@remlab.net> <201007301410.07239.fcvlcdev@free.fr> Message-ID: <1280504619.20816.2.camel@Nokia-N900-51-1> ----- Message d'origine ----- > Le vendredi 30 juillet 2010, vous avez ?crit : > > > > It should be obvious to anyone writing VLC code that you can't change > >? random data shared by multiple threads. > > I picked config_SaveConfigFile because it is the code associated to the "Save" Uh? The question was about the b_autosave revert. So was the answer. > button. I don't why the user choice would provide better thread safe guarantee > doing a config_SaveConfigFile though the prefs window at time T, and saving > the same variables at time T+1. If it's prefs variables, it should still be > untouched. That would be thread-safe. That is just functionaly wrong and caused a number of bugs and user confusion in the past. From remi at remlab.net Fri Jul 30 17:49:45 2010 From: remi at remlab.net (=?ISO-8859-1?Q?R=E9mi?= Denis-Courmont) Date: Fri, 30 Jul 2010 18:49:45 +0300 Subject: [vlc-devel] [PATCH] build: libcompat fix in case there are no functions to replace In-Reply-To: <1280478399-1549-1-git-send-email-ncopa@alpinelinux.org> References: <1280478399-1549-1-git-send-email-ncopa@alpinelinux.org> Message-ID: <1280504985.20816.5.camel@Nokia-N900-51-1> ----- Message d'origine ----- > Since Makefile.am have a hardcoded LDADD to ../compat/libcompat.la things > goes bad when there is no libcompat.a at all. We solve this by checking > if LIBOBJS is set by AC_REPLACE_FUNCS and add libcompat via LTLIBCOMPAT. Adding a dummy empty source file would be far simpler. Personnaly, I found uclibc so ridiculously broken that I never bothered to check. Not so long ago, it defined POSIX features constants for features that it did not implement - never seen such a braindead C run-time. From remi at remlab.net Fri Jul 30 17:50:30 2010 From: remi at remlab.net (=?ISO-8859-1?Q?R=E9mi?= Denis-Courmont) Date: Fri, 30 Jul 2010 18:50:30 +0300 Subject: [vlc-devel] [patch] fix rvlc wrapper In-Reply-To: References: Message-ID: <1280505030.20816.9.camel@Nokia-N900-51-1> ----- Message d'origine ----- > Hi everyone, > > the rvlc wrapper starts vlc with the nonexistent (in 1.1.2) rc plugin. Is it not provided by LUA? From jmenon86 at gmail.com Fri Jul 30 19:57:57 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Fri, 30 Jul 2010 23:27:57 +0530 Subject: [vlc-devel] [PATCH] MKV : Fix format specifier for KaxChapterUID. Message-ID: <1280512677-10915-1-git-send-email-jmenon86@gmail.com> --- modules/demux/mkv/matroska_segment_parse.cpp | 2 +- modules/demux/mkv/mkv.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp index 3e1edc0..1d07084 100644 --- a/modules/demux/mkv/matroska_segment_parse.cpp +++ b/modules/demux/mkv/matroska_segment_parse.cpp @@ -842,7 +842,7 @@ void matroska_segment_c::ParseChapterAtom( int i_level, KaxChapterAtom *ca, chap if( MKV_IS_ID( l, KaxChapterUID ) ) { chapters.i_uid = uint64_t(*(KaxChapterUID*)l); - msg_Dbg( &sys.demuxer, "| | | | + ChapterUID: %"PRId64"", chapters.i_uid ); + msg_Dbg( &sys.demuxer, "| | | | + ChapterUID: %"PRIu64"", chapters.i_uid ); } else if( MKV_IS_ID( l, KaxChapterFlagHidden ) ) { diff --git a/modules/demux/mkv/mkv.cpp b/modules/demux/mkv/mkv.cpp index 7dec8d7..adc5623 100644 --- a/modules/demux/mkv/mkv.cpp +++ b/modules/demux/mkv/mkv.cpp @@ -604,7 +604,7 @@ void BlockDecode( demux_t *p_demux, KaxBlock *block, KaxSimpleBlock *simpleblock } tk->i_last_dts = p_block->i_dts; -#if 0 +#if 1 msg_Dbg( p_demux, "block i_dts: %"PRId64" / i_pts: %"PRId64, p_block->i_dts, p_block->i_pts); #endif if( strcmp( tk->psz_codec, "S_VOBSUB" ) ) -- 1.7.1.1 From jmenon86 at gmail.com Fri Jul 30 20:10:54 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Fri, 30 Jul 2010 23:40:54 +0530 Subject: [vlc-devel] [PATCH] MKV : Fix format specifier for KaxChapterUID. In-Reply-To: <1280512677-10915-1-git-send-email-jmenon86@gmail.com> References: <1280512677-10915-1-git-send-email-jmenon86@gmail.com> Message-ID: <87d3u4zvpt.wl@outrax.retroficial.org> At Fri, 30 Jul 2010 23:27:57 +0530, Jai Menon wrote: > > --- > modules/demux/mkv/matroska_segment_parse.cpp | 2 +- > modules/demux/mkv/mkv.cpp | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) This time without unrelated changes. -- Jai Menon ===File ~/patches/vlc/0001-MKV-Fix-format-specifier-for-KaxChapterUID.patch=== From c46cc7bd4bb291767ab48ae563faa9a4d7fc5c5e Mon Sep 17 00:00:00 2001 From: Jai Menon Date: Fri, 30 Jul 2010 23:30:31 +0530 Subject: [PATCH] MKV : Fix format specifier for KaxChapterUID. --- modules/demux/mkv/matroska_segment_parse.cpp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp index 3e1edc0..1d07084 100644 --- a/modules/demux/mkv/matroska_segment_parse.cpp +++ b/modules/demux/mkv/matroska_segment_parse.cpp @@ -842,7 +842,7 @@ void matroska_segment_c::ParseChapterAtom( int i_level, KaxChapterAtom *ca, chap if( MKV_IS_ID( l, KaxChapterUID ) ) { chapters.i_uid = uint64_t(*(KaxChapterUID*)l); - msg_Dbg( &sys.demuxer, "| | | | + ChapterUID: %"PRId64"", chapters.i_uid ); + msg_Dbg( &sys.demuxer, "| | | | + ChapterUID: %"PRIu64"", chapters.i_uid ); } else if( MKV_IS_ID( l, KaxChapterFlagHidden ) ) { -- 1.7.1.1 ============================================================ From jpsaman at gmail.com Fri Jul 30 21:13:25 2010 From: jpsaman at gmail.com (Jean-Paul Saman) Date: Fri, 30 Jul 2010 21:13:25 +0200 Subject: [vlc-devel] Webplugin & video-sidebar In-Reply-To: <4C52BE91.8060006@gmail.com> References: <4C52BE91.8060006@gmail.com> Message-ID: On 30 jul 2010, at 13:59, Valentin Gosu wrote: > Hello, > > A few weeks ago, along with some fellow students, I have started a > project to create a "video sidebar" extension for Mozilla Firefox. > The purpose of the extension is to provide the ability to watch > video files (especially local video files) in your browser, while > surfing the web. > The extension makes use of VLC's Mozilla Plugin. You can install it > [1] or check out the source code on google code [2] > > We could also use your help concerning the playlist. The playlist in > the sidebar is sortable, but only for demonstration purposes. > Reordering the files does nothing, nor does removing them. This is > in part because there is no 'add to position' method in the > Webplugin's API [3]. Is there another way to change the order of > elements in the playlist? > > We would appreciate it if you took a look at our add-on, and sent us > some feedback. I would not make use of vlc playlist in this case. Just do it yourself in your extension. In this it is easier to sort and change to your hearts content. Gtz Jean-Paul Saman > > Thank you! > > > [1] https://addons.mozilla.org/en-US/firefox/addon/204328/ > [2] https://code.google.com/p/video-sidebar/ > [3] http://wiki.videolan.org/Documentation:WebPlugin#Playlist_object > > -- > Valentin Gosu > > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel From jb at videolan.org Sat Jul 31 01:04:06 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sat, 31 Jul 2010 01:04:06 +0200 Subject: [vlc-devel] [PATCH] Qt: Do not use the xpm window icon on Mac, it's ugly In-Reply-To: <1280493834-84351-1-git-send-email-juhovh@iki.fi> References: <1280493834-84351-1-git-send-email-juhovh@iki.fi> Message-ID: <20100730230406.GA32618@videolan.org> On Fri, Jul 30, 2010 at 03:43:54PM +0300, Juho V?h?-Herttua wrote : > modules/gui/qt4/qt4.cpp | 2 ++ Applied. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From jb at videolan.org Sat Jul 31 01:04:20 2010 From: jb at videolan.org (Jean-Baptiste Kempf) Date: Sat, 31 Jul 2010 01:04:20 +0200 Subject: [vlc-devel] [PATCH] MKV : Fix format specifier for KaxChapterUID. In-Reply-To: <87d3u4zvpt.wl@outrax.retroficial.org> References: <1280512677-10915-1-git-send-email-jmenon86@gmail.com> <87d3u4zvpt.wl@outrax.retroficial.org> Message-ID: <20100730230420.GB32618@videolan.org> On Fri, Jul 30, 2010 at 11:40:54PM +0530, Jai Menon wrote : > At Fri, 30 Jul 2010 23:27:57 +0530, > Jai Menon wrote: > > > > --- > > modules/demux/mkv/matroska_segment_parse.cpp | 2 +- > > modules/demux/mkv/mkv.cpp | 2 +- > > 2 files changed, 2 insertions(+), 2 deletions(-) > > This time without unrelated changes. Applied. Best Regards, -- Jean-Baptiste Kempf http://www.jbkempf.com/ From remi at remlab.net Sat Jul 31 09:22:42 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 31 Jul 2010 10:22:42 +0300 Subject: [vlc-devel] [Patch] Symbian Merge Changes to includes In-Reply-To: References: Message-ID: <201007311022.42836.remi@remlab.net> diff --git a/include/vlc_codecs.h b/include/vlc_codecs.h index 6c087da..81dc203 100644 --- a/include/vlc_codecs.h +++ b/include/vlc_codecs.h @@ -43,6 +43,7 @@ typedef struct _GUID } GUID, *REFGUID, *LPGUID; #endif /* GUID_DEFINED */ +#ifndef __WINSCW__ #ifdef HAVE_ATTRIBUTE_PACKED # define ATTR_PACKED __attribute__((__packed__)) #elif defined(__SUNPRO_C) @@ -51,6 +52,9 @@ typedef struct _GUID #else # error FIXME #endif +#else +#define ATTR_PACKED +#endif It would look a lot better with just #elif defined __WINSCW__ at the end. diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h index 25102fa..d897b65 100644 --- a/include/vlc_fixups.h +++ b/include/vlc_fixups.h @@ -26,6 +26,15 @@ #ifndef LIBVLC_FIXUPS_H # define LIBVLC_FIXUPS_H 1 +#ifdef SYMBIAN +#include +#define asprintf symbian_asprintf +int symbian_asprintf (char **strp, const char *fmt, ...); +#if !defined(__cplusplus) +typedef int bool; As Laurent already pointed out, the implicit conversions rules for 'int' and 'bool' are incompatible. +#endif +#endif + #if !defined (HAVE_GMTIME_R) || !defined (HAVE_LOCALTIME_R) # include /* time_t */ #endif diff --git a/include/vlc_threads.h b/include/vlc_threads.h index 3770e2f..abc9b3b 100644 --- a/include/vlc_threads.h +++ b/include/vlc_threads.h @@ -111,7 +111,21 @@ typedef pthread_mutex_t vlc_mutex_t; typedef pthread_cond_t vlc_cond_t; #define VLC_STATIC_COND PTHREAD_COND_INITIALIZER typedef pthread_rwlock_t vlc_rwlock_t; -typedef pthread_key_t vlc_threadvar_t; I believe this breaks compilation on all platforms except Windows. @@ -216,7 +230,7 @@ VLC_EXPORT( void, vlc_timer_destroy, (vlc_timer_t) ); VLC_EXPORT( void, vlc_timer_schedule, (vlc_timer_t, bool, mtime_t, mtime_t) ); VLC_EXPORT( unsigned, vlc_timer_getoverrun, (vlc_timer_t) LIBVLC_USED ); -#ifndef LIBVLC_USE_PTHREAD_CANCEL +#if !defined(LIBVLC_USE_PTHREAD_CANCEL) || defined(SYMBIAN) I already said this is counter-sensical. @@ -227,7 +241,7 @@ VLC_EXPORT( int, vlc_savecancel, (void) ); VLC_EXPORT( void, vlc_restorecancel, (int state) ); VLC_EXPORT( void, vlc_testcancel, (void) ); -#if defined (LIBVLC_USE_PTHREAD_CANCEL) +#if defined (LIBVLC_USE_PTHREAD_CANCEL) && !defined(SYMBIAN) Same here. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sat Jul 31 09:41:34 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 31 Jul 2010 10:41:34 +0300 Subject: [vlc-devel] Symbian VLC Merge changes to src In-Reply-To: References: Message-ID: <201007311041.35070.remi@remlab.net> diff --git a/src/control/core.c b/src/control/core.c index 942212d..59d98cd 100644 --- a/src/control/core.c +++ b/src/control/core.c @@ -48,14 +48,24 @@ libvlc_instance_t * libvlc_new( int argc, const char *const *argv ) const char *my_argv[argc + 2]; my_argv[0] = "libvlc"; /* dummy arg0, skipped by getopt() et al */ for( int i = 0; i < argc; i++ ) - my_argv[i + 1] = argv[i]; + +#ifndef __WINSCW__ + my_argv[i + 1] = argv[i]; +#else + my_argv[i + 1] = (char *) argv[i]; +#endif + I still don't understand why you need that cast. diff --git a/src/input/es_out_timeshift.c b/src/input/es_out_timeshift.c index 3ac19d5..054abd0 100644 --- a/src/input/es_out_timeshift.c +++ b/src/input/es_out_timeshift.c @@ -55,7 +55,7 @@ *****************************************************************************/ /* XXX attribute_packed is (and MUST be) used ONLY to reduce memory usage */ -#ifdef HAVE_ATTRIBUTE_PACKED +#if defined(HAVE_ATTRIBUTE_PACKED) && !defined(__WINSCW__) This is counter-sensical. If you don't have attribute packed, then you don't have attribute packed. diff --git a/src/misc/block.c b/src/misc/block.c index 7649d7a..26f3285 100644 --- a/src/misc/block.c +++ b/src/misc/block.c @@ -439,6 +439,7 @@ block_t *block_File (int fd) } #endif +#ifndef SYMBIAN /* If mmap() is not implemented by the OS _or_ the filesystem... */ block_t *block = block_Alloc (length); if (block == NULL) @@ -458,6 +459,7 @@ block_t *block_File (int fd) } vlc_cleanup_pop (); return block; +#endif This seems silly. diff --git a/src/misc/messages.c b/src/misc/messages.c index 063ae60..23b3435 100644 --- a/src/misc/messages.c +++ b/src/misc/messages.c @@ -511,6 +511,7 @@ static void PrintMsg ( vlc_object_t * p_this, msg_item_t * p_item ) msg_bank_t *bank = priv->msg_bank; int i_type = p_item->i_type; +#ifndef SYMBIAN switch( i_type ) { case VLC_MSG_ERR: @@ -526,6 +527,7 @@ static void PrintMsg ( vlc_object_t * p_this, msg_item_t * p_item ) if( priv->i_verbose < 2 ) return; break; } +#endif This too. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From pankajdnapster at gmail.com Sat Jul 31 13:57:53 2010 From: pankajdnapster at gmail.com (Pankaj yadav) Date: Sat, 31 Jul 2010 04:57:53 -0700 Subject: [vlc-devel] Symbian VLC Merge changes to src In-Reply-To: <201007311041.35070.remi@remlab.net> References: <201007311041.35070.remi@remlab.net> Message-ID: On 7/31/10, R?mi Denis-Courmont wrote: > diff --git a/src/control/core.c b/src/control/core.c > index 942212d..59d98cd 100644 > --- a/src/control/core.c > +++ b/src/control/core.c > @@ -48,14 +48,24 @@ libvlc_instance_t * libvlc_new( int argc, const char > *const *argv ) > const char *my_argv[argc + 2]; > my_argv[0] = "libvlc"; /* dummy arg0, skipped by getopt() et al */ > for( int i = 0; i < argc; i++ ) > - my_argv[i + 1] = argv[i]; > + > +#ifndef __WINSCW__ > + my_argv[i + 1] = argv[i]; > +#else > + my_argv[i + 1] = (char *) argv[i]; > +#endif > + > > I still don't understand why you need that cast. > Because WINSCW compiler is so stupid that it says "Illegal implicit conversion from char * to const char *"...Where as GCCE works well with the code being as it is.So I need all these hacks. > diff --git a/src/input/es_out_timeshift.c b/src/input/es_out_timeshift.c > index 3ac19d5..054abd0 100644 > --- a/src/input/es_out_timeshift.c > +++ b/src/input/es_out_timeshift.c > @@ -55,7 +55,7 @@ > > *****************************************************************************/ > > /* XXX attribute_packed is (and MUST be) used ONLY to reduce memory usage > */ > -#ifdef HAVE_ATTRIBUTE_PACKED > +#if defined(HAVE_ATTRIBUTE_PACKED) && !defined(__WINSCW__) > > This is counter-sensical. If you don't have attribute packed, then you don't > have attribute packed. > Same Reason, I have to define HAVE_ATTRIBUTE PACKED as GCCE allows where as WINSCW doesnot. > diff --git a/src/misc/block.c b/src/misc/block.c > index 7649d7a..26f3285 100644 > --- a/src/misc/block.c > +++ b/src/misc/block.c > @@ -439,6 +439,7 @@ block_t *block_File (int fd) > } > #endif > > +#ifndef SYMBIAN > /* If mmap() is not implemented by the OS _or_ the filesystem... */ > block_t *block = block_Alloc (length); > if (block == NULL) > @@ -458,6 +459,7 @@ block_t *block_File (int fd) > } > vlc_cleanup_pop (); > return block; > +#endif > > This seems silly. Because read Function is not available on symbian ..So better Disable this code for SYMBIAN > > diff --git a/src/misc/messages.c b/src/misc/messages.c > index 063ae60..23b3435 100644 > --- a/src/misc/messages.c > +++ b/src/misc/messages.c > @@ -511,6 +511,7 @@ static void PrintMsg ( vlc_object_t * p_this, msg_item_t > * > p_item ) > msg_bank_t *bank = priv->msg_bank; > int i_type = p_item->i_type; > > +#ifndef SYMBIAN > switch( i_type ) > { > case VLC_MSG_ERR: > @@ -526,6 +527,7 @@ static void PrintMsg ( vlc_object_t * p_this, msg_item_t > * > p_item ) > if( priv->i_verbose < 2 ) return; > break; > } > +#endif > > This too. I dont know how to give command line parameters while dubugging symbian binaries.So to have verbose messages I have disable filtering temporarily. > > -- > R?mi Denis-Courmont > http://www.remlab.net/ > http://fi.linkedin.com/in/remidenis > _______________________________________________ > vlc-devel mailing list > To unsubscribe or modify your subscription options: > http://mailman.videolan.org/listinfo/vlc-devel > -- Pankaj Yadav Open Source Enthusiast From jmenon86 at gmail.com Sat Jul 31 16:22:26 2010 From: jmenon86 at gmail.com (Jai Menon) Date: Sat, 31 Jul 2010 19:52:26 +0530 Subject: [vlc-devel] [PATCH] MPEG4 Audio Packetizer : Send atleast one frame without the ADTS header stripped off in the absence of decoder config extradata. Message-ID: <1280586146-23569-1-git-send-email-jmenon86@gmail.com> This is useful when we don't have an MPEG4AudioDecoderConfig available at the time of codec initialization. We construct one later in the packetizer but codecs like the libavcodec based AAC decoder, for example, won't pick that up. --- modules/packetizer/mpeg4audio.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/modules/packetizer/mpeg4audio.c b/modules/packetizer/mpeg4audio.c index 3e4561c..1afdbf5 100644 --- a/modules/packetizer/mpeg4audio.c +++ b/modules/packetizer/mpeg4audio.c @@ -138,6 +138,7 @@ struct decoder_sys_t /* LOAS */ bool b_latm_cfg; latm_mux_t latm; + bool send_initial_adts_header; }; enum { @@ -258,6 +259,7 @@ static int OpenPacketizer( vlc_object_t *p_this ) /* Set callback */ p_dec->pf_packetize = PacketizeRawBlock; p_sys->i_type = TYPE_RAW; + p_sys->send_initial_adts_header = false; } else { @@ -272,6 +274,7 @@ static int OpenPacketizer( vlc_object_t *p_this ) /* Set callback */ p_dec->pf_packetize = PacketizeStreamBlock; p_sys->i_type = TYPE_NONE; + p_sys->send_initial_adts_header = true; } return VLC_SUCCESS; @@ -1143,6 +1146,17 @@ static block_t *PacketizeStreamBlock( decoder_t *p_dec, block_t **pp_block ) /* When we reach this point we already know we have enough * data available. */ + if( p_sys->send_initial_adts_header ) + { + p_out_buffer = block_New( p_dec, p_sys->i_frame_size + p_sys->i_header_size); + if( !p_out_buffer ) + return NULL; + block_GetBytes( &p_sys->bytestream, p_out_buffer->p_buffer, + p_sys->i_frame_size + p_sys->i_header_size); + p_sys->send_initial_adts_header = false; + } + else + { p_out_buffer = block_New( p_dec, p_sys->i_frame_size ); if( !p_out_buffer ) { @@ -1176,6 +1190,7 @@ static block_t *PacketizeStreamBlock( decoder_t *p_dec, block_t **pp_block ) break; } } + } SetupOutput( p_dec, p_out_buffer ); /* Make sure we don't reuse the same pts twice */ if( p_sys->i_pts == p_sys->bytestream.p_block->i_pts ) -- 1.7.1.1 From juhovh at iki.fi Sat Jul 31 17:46:08 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sat, 31 Jul 2010 18:46:08 +0300 Subject: [vlc-devel] Another suggestion for running the Qt4 interface on main thread Message-ID: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> Hi, I'm sending a patch set of 3 patches that should hopefully clear up the reason why I would like to keep using the pf_run instead of running Thread function on Open directly. So the first patch makes the Qt4 interface start nicely on Mac, the third one makes it quit nicely. (except for the embedded video race condition that become really bad when running on main thread, reproducable every time...) Open to discussion... Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From juhovh at iki.fi Sat Jul 31 17:47:31 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Sat, 31 Jul 2010 18:47:31 +0300 Subject: [vlc-devel] [PATCH 1/3] Qt: Run mainloop on the main thread on OSX In-Reply-To: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> Message-ID: <1280591253-20366-1-git-send-email-juhovh@iki.fi> --- modules/gui/qt4/qt4.cpp | 23 ++++++++++++++++++++--- 1 files changed, 20 insertions(+), 3 deletions(-) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 5965c05..9582a80 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -327,6 +327,11 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider ) x11_display = display; #endif vlc_sem_init (&ready, 0); +#ifdef Q_WS_MAC + /* Run mainloop thread on first thread instead */ + p_intf->b_should_run_on_first_thread = true; + p_intf->pf_run = (void(*)(intf_thread_t *))Thread; +#else if( vlc_clone( &p_sys->thread, Thread, p_intf, VLC_THREAD_PRIORITY_LOW ) ) { delete p_sys; @@ -337,9 +342,9 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider ) return VLC_ENOMEM; } - /* */ + /* Wait until the interface is initialized */ vlc_sem_wait (&ready); - vlc_sem_destroy (&ready); +#endif if( !p_sys->b_isDialogProvider ) { @@ -377,7 +382,11 @@ static void Close( vlc_object_t *p_this ) QVLCApp::triggerQuit(); + vlc_sem_wait (&ready); +#ifndef Q_WS_MAC vlc_join (p_sys->thread, NULL); +#endif + vlc_sem_destroy (&ready); #ifdef Q_WS_X11 free (x11_display); x11_display = NULL; @@ -463,9 +472,14 @@ static void *Thread( void *obj ) /* Explain how to show a dialog :D */ p_intf->pf_show_dialog = ShowDialog; - /* */ + /* Notify that the interface is initialized */ vlc_sem_post (&ready); +#ifdef Q_WS_MAC + /* Start playlist here, because we took over main thread */ + playlist_Play( p_intf->p_sys->p_playlist ); +#endif Q_WS_MAC + /* Last settings */ app.setQuitOnLastWindowClosed( false ); @@ -515,6 +529,9 @@ static void *Thread( void *obj ) /* Destroy the MainInputManager */ MainInputManager::killInstance(); + /* Notify that the interface is cleaned up */ + vlc_sem_post (&ready); + /* Delete the application automatically */ return NULL; } -- 1.6.5.7 From juhovh at iki.fi Sat Jul 31 17:47:32 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Sat, 31 Jul 2010 18:47:32 +0300 Subject: [vlc-devel] [PATCH 2/3] Add an abort function to the Mac interface hack, remove extra thread In-Reply-To: <1280591253-20366-1-git-send-email-juhovh@iki.fi> References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <1280591253-20366-1-git-send-email-juhovh@iki.fi> Message-ID: <1280591253-20366-2-git-send-email-juhovh@iki.fi> --- include/vlc_interface.h | 1 + src/interface/interface.c | 42 ++++++++++-------------------------------- 2 files changed, 11 insertions(+), 32 deletions(-) diff --git a/include/vlc_interface.h b/include/vlc_interface.h index ed9b64e..52b4973 100644 --- a/include/vlc_interface.h +++ b/include/vlc_interface.h @@ -55,6 +55,7 @@ typedef struct intf_thread_t /* Thread properties and locks */ #if defined( __APPLE__ ) bool b_should_run_on_first_thread; + void ( *pf_abort ) ( struct intf_thread_t * ); /** Abort function */ #endif /* Specific interfaces */ diff --git a/src/interface/interface.c b/src/interface/interface.c index 43b45f2..6315428 100644 --- a/src/interface/interface.c +++ b/src/interface/interface.c @@ -51,9 +51,6 @@ * Local prototypes *****************************************************************************/ static void* RunInterface( vlc_object_t *p_this ); -#if defined( __APPLE__ ) -static void * MonitorLibVLCDeath( vlc_object_t *p_this ); -#endif static int AddIntfCallback( vlc_object_t *, char const *, vlc_value_t , vlc_value_t , void * ); @@ -108,6 +105,7 @@ int intf_Create( vlc_object_t *p_this, const char *psz_module ) vlc_object_attach( p_intf, p_libvlc ); #if defined( __APPLE__ ) p_intf->b_should_run_on_first_thread = false; + p_intf->pf_abort = NULL; #endif /* Choose the best module */ @@ -132,18 +130,15 @@ int intf_Create( vlc_object_t *p_this, const char *psz_module ) * (it needs access to the main thread) */ if( p_intf->b_should_run_on_first_thread ) { - if( vlc_thread_create( p_intf, "interface", MonitorLibVLCDeath, - VLC_THREAD_PRIORITY_LOW ) ) + if( p_intf->pf_abort ) { - msg_Err( p_intf, "cannot spawn libvlc death monitoring thread" ); - vlc_mutex_unlock( &lock ); - goto error; + libvlc_SetExitHandler( p_intf->p_libvlc, + (void (*) (void *)) p_intf->pf_abort, + (void *) p_intf ); } + assert( p_intf->pf_run ); p_intf->pf_run( p_intf ); - - /* It is monitoring libvlc, not the p_intf */ - vlc_object_kill( p_intf->p_libvlc ); } else #endif @@ -197,7 +192,11 @@ void intf_DestroyAll( libvlc_int_t *p_libvlc ) { intf_thread_t *p_next = p_intf->p_next; +#if defined( __APPLE__ ) + if( p_intf->pf_run && !p_intf->b_should_run_on_first_thread ) +#else if( p_intf->pf_run ) +#endif vlc_thread_join( p_intf ); module_unneed( p_intf, p_intf->p_module ); free( p_intf->psz_intf ); @@ -223,27 +222,6 @@ static void* RunInterface( vlc_object_t *p_this ) return NULL; } -#if defined( __APPLE__ ) -#include "control/libvlc_internal.h" /* libvlc_InternalWait */ -/** - * MonitorLibVLCDeath: Used when b_should_run_on_first_thread is set. - * - *??@param p_this: the interface object - */ -static void * MonitorLibVLCDeath( vlc_object_t * p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t *)p_this; - libvlc_int_t * p_libvlc = p_intf->p_libvlc; - int canc = vlc_savecancel (); - - libvlc_InternalWait( p_libvlc ); - - vlc_object_kill( p_intf ); /* Kill the stupid first thread interface */ - vlc_restorecancel (canc); - return NULL; -} -#endif - static int AddIntfCallback( vlc_object_t *p_this, char const *psz_cmd, vlc_value_t oldval, vlc_value_t newval, void *p_data ) { -- 1.6.5.7 From juhovh at iki.fi Sat Jul 31 17:47:33 2010 From: juhovh at iki.fi (=?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?=) Date: Sat, 31 Jul 2010 18:47:33 +0300 Subject: [vlc-devel] [PATCH 3/3] Qt: Use the abort function to stop main thread on Mac In-Reply-To: <1280591253-20366-2-git-send-email-juhovh@iki.fi> References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <1280591253-20366-1-git-send-email-juhovh@iki.fi> <1280591253-20366-2-git-send-email-juhovh@iki.fi> Message-ID: <1280591253-20366-3-git-send-email-juhovh@iki.fi> --- modules/gui/qt4/qt4.cpp | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 9582a80..3bf427e 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -62,6 +62,7 @@ static void Close ( vlc_object_t * ); static int WindowOpen ( vlc_object_t * ); static void WindowClose ( vlc_object_t * ); static void *Thread ( void * ); +static void Abort ( intf_thread_t *p_intf ); static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * ); /***************************************************************************** @@ -331,6 +332,7 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider ) /* Run mainloop thread on first thread instead */ p_intf->b_should_run_on_first_thread = true; p_intf->pf_run = (void(*)(intf_thread_t *))Thread; + p_intf->pf_abort = Abort; #else if( vlc_clone( &p_sys->thread, Thread, p_intf, VLC_THREAD_PRIORITY_LOW ) ) { @@ -536,6 +538,11 @@ static void *Thread( void *obj ) return NULL; } +static void Abort( intf_thread_t *p_intf ) +{ + QVLCApp::triggerQuit(); +} + /***************************************************************************** * Callback to show a dialog *****************************************************************************/ -- 1.6.5.7 From remi at remlab.net Sat Jul 31 18:54:57 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sat, 31 Jul 2010 19:54:57 +0300 Subject: [vlc-devel] [PATCH 1/3] Qt: Run mainloop on the main thread on OSX In-Reply-To: <1280591253-20366-1-git-send-email-juhovh@iki.fi> References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <1280591253-20366-1-git-send-email-juhovh@iki.fi> Message-ID: <201007311954.58098.remi@remlab.net> Le samedi 31 juillet 2010 18:47:31 Juho V?h?-Herttua, vous avez ?crit : > --- > modules/gui/qt4/qt4.cpp | 23 ++++++++++++++++++++--- > 1 files changed, 20 insertions(+), 3 deletions(-) As already noted, the semaphore modifications look wrong. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sat Jul 31 18:57:33 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 31 Jul 2010 19:57:33 +0300 Subject: [vlc-devel] [PATCH 2/3] Add an abort function to the Mac interface hack, remove extra thread In-Reply-To: <1280591253-20366-2-git-send-email-juhovh@iki.fi> References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <1280591253-20366-1-git-send-email-juhovh@iki.fi> <1280591253-20366-2-git-send-email-juhovh@iki.fi> Message-ID: <201007311957.33860.remi@remlab.net> Le samedi 31 juillet 2010 18:47:32 Juho V?h?-Herttua, vous avez ?crit : > + libvlc_SetExitHandler( p_intf->p_libvlc, > + (void (*) (void *)) p_intf->pf_abort, > + (void *) p_intf ); This is really no better than calling libvlc_SetExitHandler() directly in the interface. It's just more complicated. The limitations are the same either (which is to say, libvlc_add_intf() and libvlc_set_exit_handler() will break, but there's no way around that). -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From juhovh at iki.fi Sat Jul 31 19:44:52 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sat, 31 Jul 2010 20:44:52 +0300 Subject: [vlc-devel] [PATCH 1/3] Qt: Run mainloop on the main thread on OSX In-Reply-To: <201007311954.58098.remi@remlab.net> References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <1280591253-20366-1-git-send-email-juhovh@iki.fi> <201007311954.58098.remi@remlab.net> Message-ID: <668C60AA-C9FB-40BD-B311-7BDDEF5EF8F7@iki.fi> On 31.7.2010, at 19.54, R?mi Denis-Courmont wrote: > Le samedi 31 juillet 2010 18:47:31 Juho V?h?-Herttua, vous avez ?crit : >> --- >> modules/gui/qt4/qt4.cpp | 23 ++++++++++++++++++++--- >> 1 files changed, 20 insertions(+), 3 deletions(-) > > As already noted, the semaphore modifications look wrong. Thanks for your comments. It would be useful to know why they look wrong, that way I don't have to iterate until they "look right". I've already had to go to the commit history and ask around to find reasons for some changes, because the code is mainly documented with "/* */" if anything. I did notice this modification on mac leaves the semaphore in a state where it's posted one time more than waited before destroying. Last patch didn't have that issue, but was rejected anyway. (probably on same basis, since I didn't notice other reasons?) I don't see how destroying the semaphore in Close instead of Open makes any difference, since the global state is stored in the ugly one struct and semaphores should be thread safe. Also, I can see you're a fan of global variables in qt4.cpp, but why not throw those in the intf_thread_t since it's available? Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From juhovh at iki.fi Sat Jul 31 19:58:08 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sat, 31 Jul 2010 20:58:08 +0300 Subject: [vlc-devel] [PATCH 2/3] Add an abort function to the Mac interface hack, remove extra thread In-Reply-To: <201007311957.33860.remi@remlab.net> References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <1280591253-20366-1-git-send-email-juhovh@iki.fi> <1280591253-20366-2-git-send-email-juhovh@iki.fi> <201007311957.33860.remi@remlab.net> Message-ID: On 31.7.2010, at 19.57, R?mi Denis-Courmont wrote: > Le samedi 31 juillet 2010 18:47:32 Juho V?h?-Herttua, vous avez ?crit : >> + libvlc_SetExitHandler( p_intf->p_libvlc, >> + (void (*) (void *)) p_intf->pf_abort, >> + (void *) p_intf ); > > This is really no better than calling libvlc_SetExitHandler() directly in the > interface. It's just more complicated. The limitations are the same either > (which is to say, libvlc_add_intf() and libvlc_set_exit_handler() will break, > but there's no way around that). Mainly including "../../../src/control/libvlc_internal.h" just didn't sound right, and I wanted to keep the code calling it in the core so that it can be easily located in case of problems. But if that's the case, then I'll just merge the two mac patches into one uglier but less complicated one, which is your point I hope. I still need some way to make sure the Thread function has finished execution before I cleanup in the Close since thread_join won't work, so I'll wait for your reply on how it should be done without using the semaphore. Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From remi at remlab.net Sat Jul 31 20:00:22 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 31 Jul 2010 21:00:22 +0300 Subject: [vlc-devel] [PATCH 1/3] Qt: Run mainloop on the main thread on OSX In-Reply-To: <668C60AA-C9FB-40BD-B311-7BDDEF5EF8F7@iki.fi> References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <201007311954.58098.remi@remlab.net> <668C60AA-C9FB-40BD-B311-7BDDEF5EF8F7@iki.fi> Message-ID: <201007312100.22371.remi@remlab.net> Le samedi 31 juillet 2010 20:44:52 Juho V?h?-Herttua, vous avez ?crit : > Thanks for your comments. It would be useful to know why they look wrong, > that way I don't have to iterate until they "look right". I've already had > to go to the commit history and ask around to find reasons for some > changes, because the code is mainly documented with "/* */" if anything. AFAICT, the semaphore is there because [other platforms] initialize Qt4 in a different thread. Anyway, by design of a semaphore (in general), there is absolutely no point in a semaphore that is only ever used from a single thread. It will either result in a no-op or a deadlock, neither of which is useful. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sat Jul 31 20:03:08 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 31 Jul 2010 21:03:08 +0300 Subject: [vlc-devel] [PATCH 2/3] Add an abort function to the Mac interface hack, remove extra thread In-Reply-To: References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <201007311957.33860.remi@remlab.net> Message-ID: <201007312103.08394.remi@remlab.net> Le samedi 31 juillet 2010 20:58:08 Juho V?h?-Herttua, vous avez ?crit : > I still need some way to make sure the Thread function has finished > execution before I cleanup in the Close since thread_join won't work, so > I'll wait for your reply on how it should be done without using the > semaphore. That's intrinsic if you do not return from Open() until after you have cleaned up... -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From remi at remlab.net Sat Jul 31 20:06:39 2010 From: remi at remlab.net (=?iso-8859-1?q?R=E9mi?= Denis-Courmont) Date: Sat, 31 Jul 2010 21:06:39 +0300 Subject: [vlc-devel] Symbian VLC Merge changes to src In-Reply-To: References: <201007311041.35070.remi@remlab.net> Message-ID: <201007312106.39409.remi@remlab.net> Le samedi 31 juillet 2010 14:57:53 Pankaj yadav, vous avez ?crit : > On 7/31/10, R?mi Denis-Courmont wrote: > > diff --git a/src/control/core.c b/src/control/core.c > > index 942212d..59d98cd 100644 > > --- a/src/control/core.c > > +++ b/src/control/core.c > > @@ -48,14 +48,24 @@ libvlc_instance_t * libvlc_new( int argc, const char > > *const *argv ) > > > > const char *my_argv[argc + 2]; > > my_argv[0] = "libvlc"; /* dummy arg0, skipped by getopt() et al */ > > for( int i = 0; i < argc; i++ ) > > > > - my_argv[i + 1] = argv[i]; > > + > > +#ifndef __WINSCW__ > > + my_argv[i + 1] = argv[i]; > > +#else > > + my_argv[i + 1] = (char *) argv[i]; > > +#endif > > + > > > > I still don't understand why you need that cast. > > Because WINSCW compiler is so stupid that it says "Illegal implicit > conversion from char * to const char *"...Where as GCCE works well > with the code being as it is.So I need all these hacks. C code converts from char * to const char * all over the place, in VLC and everywhere else. ifdef or explicitly cast for BROKEN compilers are a total non starter, especially for something as stupid and as frequent as this case. > > */ > > -#ifdef HAVE_ATTRIBUTE_PACKED > > +#if defined(HAVE_ATTRIBUTE_PACKED) && !defined(__WINSCW__) > > > > This is counter-sensical. If you don't have attribute packed, then you > > don't have attribute packed. > > Same Reason, I have to define HAVE_ATTRIBUTE PACKED as GCCE allows > where as WINSCW doesnot. Let me put it a third time more explicitly: You MUST NOT define HAVE_ATTRIBUTE_PACKED if you do not support the packed attribute. I don't want such non-sense in the code base. > I dont know how to give command line parameters while dubugging > symbian binaries.So to have verbose messages I have disable filtering > temporarily. Debug hacks don't belong in the official source code. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From juhovh at iki.fi Sat Jul 31 20:12:38 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sat, 31 Jul 2010 21:12:38 +0300 Subject: [vlc-devel] [PATCH 1/3] Qt: Run mainloop on the main thread on OSX In-Reply-To: <201007312100.22371.remi@remlab.net> References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <201007311954.58098.remi@remlab.net> <668C60AA-C9FB-40BD-B311-7BDDEF5EF8F7@iki.fi> <201007312100.22371.remi@remlab.net> Message-ID: <762BE2A3-7809-49C9-8A72-957129048682@iki.fi> On 31.7.2010, at 21.00, R?mi Denis-Courmont wrote: > AFAICT, the semaphore is there because [other platforms] initialize Qt4 in a > different thread. > > Anyway, by design of a semaphore (in general), there is absolutely no point in > a semaphore that is only ever used from a single thread. It will either result > in a no-op or a deadlock, neither of which is useful. On other platforms the semaphore is used to synchronize functions "Open" and "Thread", which run in different threads. On OSX I attempted to use the semaphore to synchronize functions "Close" and "Thread", from which I have no guarantee that they are run from the same thread. On 31.7.2010, at 21.03, R?mi Denis-Courmont wrote: > Le samedi 31 juillet 2010 20:58:08 Juho V?h?-Herttua, vous avez ?crit : >> I still need some way to make sure the Thread function has finished >> execution before I cleanup in the Close since thread_join won't work, so >> I'll wait for your reply on how it should be done without using the >> semaphore. > > That's intrinsic if you do not return from Open() until after you have cleaned > up... If that's the case then it makes things a lot easier. I didn't want to rely on it, because there was commits like 7553630d1a "Do not assume that Open and Close are called in the same thread". But if you say that Close() can never be called before Open() has returned, I'll rely on that and prepare a patch accordingly. Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From kaarlo.raiha at gmail.com Sat Jul 31 20:17:31 2010 From: kaarlo.raiha at gmail.com (=?ISO-8859-1?B?S2FhcmxvIFLkaWjk?=) Date: Sat, 31 Jul 2010 21:17:31 +0300 Subject: [vlc-devel] [PATCH] Remove .txt subtitle loading Message-ID: Some people have complained in forums that VLC tries to autoload .txt files as subtitles since they have same kind of name as input file ( http://forum.videolan.org/viewtopic.php?f=14&t=55979#p244039 ). But because those .txt files aren't subtitles, VLC will complain with dialog that says 'format of 'something.txt' cannot be detected. Have a look at the log for details'. So I made patch that removes .txt from supported subtitle file extension list and users will avoid the dialogs. I haven't heard that anyone uses .txt extension for subtitle file (at least subbers avoid it) and thus this shouldn't cause issues for regular users (QT4 subtitle loading dialog doesn't even offer .txt extension at all). Problem is that same check function (subtitles_Filter) is used in control.c (line 367) and with removal of .txt those subtitles cannot be loaded anymore. There are better ways to solve the problem (like customizable subtitle autoload extension list for users) but I would guess this easy solution is good enough. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-remove-.txt-subtitle-autoloading-because-it-causes.patch Type: application/octet-stream Size: 788 bytes Desc: not available URL: From remi at remlab.net Sat Jul 31 20:23:49 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 31 Jul 2010 21:23:49 +0300 Subject: [vlc-devel] [PATCH 1/3] Qt: Run mainloop on the main thread on OSX In-Reply-To: <762BE2A3-7809-49C9-8A72-957129048682@iki.fi> References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <201007312100.22371.remi@remlab.net> <762BE2A3-7809-49C9-8A72-957129048682@iki.fi> Message-ID: <201007312123.49808.remi@remlab.net> Le samedi 31 juillet 2010 21:12:38 Juho V?h?-Herttua, vous avez ?crit : > On other platforms the semaphore is used to synchronize functions "Open" > and "Thread", which run in different threads. On OSX I attempted to use > the semaphore to synchronize functions "Close" and "Thread", from which I > have no guarantee that they are run from the same thread. You do have that guarantee. A thread cannot call module_unneed() (which calls pf_deactivate = Close) before a succesful *completed* call to module_need (which calls pf_activate = Open). Hence Close() cannot be called before Open(). -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From david at 2of1.org Sat Jul 31 21:02:19 2010 From: david at 2of1.org (David Kaplan) Date: Sat, 31 Jul 2010 22:02:19 +0300 Subject: [vlc-devel] DVB-S scanning Message-ID: I'm busy working on improving the DVB support (there's are quite a few items here - specially int he area of usability). I'd like a few suggestions re DVB-S scanning. The best way of scanning is using sat transponder lists (imho at least). Using a freq range isn't that sensible and there are very good sat lists that can help greatly. It would be great if we could somehow include these lists in VLC. That way I can reference them from the dvb code and allow for scanning of satellites by sat name/position. Is this something we could consider at all (It'll add a few kb). if so, where's the best place to put them and how should I access the lists from the VLC code (is there a generic way of handling such text file resources?) -- http://blog.2of1.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From juhovh at iki.fi Sat Jul 31 21:11:11 2010 From: juhovh at iki.fi (=?iso-8859-1?Q?Juho_V=E4h=E4-Herttua?=) Date: Sat, 31 Jul 2010 22:11:11 +0300 Subject: [vlc-devel] [PATCH 1/3] Qt: Run mainloop on the main thread on OSX In-Reply-To: <201007312123.49808.remi@remlab.net> References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <201007312100.22371.remi@remlab.net> <762BE2A3-7809-49C9-8A72-957129048682@iki.fi> <201007312123.49808.remi@remlab.net> Message-ID: On 31.7.2010, at 21.23, R?mi Denis-Courmont wrote: > Le samedi 31 juillet 2010 21:12:38 Juho V?h?-Herttua, vous avez ?crit : >> On other platforms the semaphore is used to synchronize functions "Open" >> and "Thread", which run in different threads. On OSX I attempted to use >> the semaphore to synchronize functions "Close" and "Thread", from which I >> have no guarantee that they are run from the same thread. > > You do have that guarantee. A thread cannot call module_unneed() (which calls > pf_deactivate = Close) before a succesful *completed* call to module_need > (which calls pf_activate = Open). Hence Close() cannot be called before > Open(). Thank you, this conversation cleared up a lot, and I made a patch that I hope is something you're after. There's only two issues I can think of: 1) the variable creation is moved to RegisterIntf function, because it needs to be called from two different places, avoids code duplication 2) the semaphore is still created and used even on Mac OS X single thread, I don't think this is an issue since it's a no-op here as you said Everything seemed to work fine when I tested, unless libvlc_Quit is called during video playback as already mentioned before. That will give the good old main interface destroyed before vout_window_Delete called issue: Assertion failed: (!stable), function ~VideoWidget, file ../../../../modules/gui/qt4/components/interface_widgets.cpp, line 81. Juho -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Qt-Run-mainloop-on-the-main-thread-on-OSX.patch Type: application/octet-stream Size: 3011 bytes Desc: not available URL: -------------- next part -------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4215 bytes Desc: not available URL: From remi at remlab.net Sat Jul 31 21:30:13 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 31 Jul 2010 22:30:13 +0300 Subject: [vlc-devel] [PATCH 1/3] Qt: Run mainloop on the main thread on OSX In-Reply-To: References: <08696C73-C618-4EF8-8957-BDC88D954ED4@iki.fi> <201007312123.49808.remi@remlab.net> Message-ID: <201007312230.13883.remi@remlab.net> Le samedi 31 juillet 2010 22:11:11 Juho V?h?-Herttua, vous avez ?crit : > On 31.7.2010, at 21.23, R?mi Denis-Courmont wrote: > > Le samedi 31 juillet 2010 21:12:38 Juho V?h?-Herttua, vous avez ?crit : > >> On other platforms the semaphore is used to synchronize functions "Open" > >> and "Thread", which run in different threads. On OSX I attempted to use > >> the semaphore to synchronize functions "Close" and "Thread", from which > >> I have no guarantee that they are run from the same thread. > > > > You do have that guarantee. A thread cannot call module_unneed() (which > > calls pf_deactivate = Close) before a succesful *completed* call to > > module_need (which calls pf_activate = Open). Hence Close() cannot be > > called before Open(). > > Thank you, this conversation cleared up a lot, and I made a patch that I > hope is something you're after. There's only two issues I can think of: > > 1) the variable creation is moved to RegisterIntf function, because it > needs to be called from two different places, avoids code duplication 2) > the semaphore is still created and used even on Mac OS X single thread, I > don't think this is an issue since it's a no-op here as you said Merged, thanks. > Everything seemed to work fine when I tested, unless libvlc_Quit is called > during video playback as already mentioned before. That will give the good > old main interface destroyed before vout_window_Delete called issue: > > Assertion failed: (!stable), function ~VideoWidget, file > ../../../../modules/gui/qt4/components/interface_widgets.cpp, line 81. In principle, pl_Deactivate() will wait for the ongoing input to finish, and release all the input "resources" (including the video window). Only later intf_DestroyAll() will clean up all interfaces. Laurent can correct me if I am wrong. But I do not understand how the race can still happen. If I recall correctly, there was some anecdotal crash report evidence that it is still possible on Linux/Windows as well. At least on X11, we could ignore the problem. We could let the Qt4 thread destroy the window. We just need to change WindowControl() and WindowClose() to fail safely if the window was already destroyed. The owner of the video window may get some errors from the X server, but nothing fatal. I am not sure if this can work on Windows and MacOS though. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From ivoire at videolan.org Sat Jul 31 21:45:07 2010 From: ivoire at videolan.org (=?iso-8859-1?Q?R=E9mi?= Duraffort) Date: Sat, 31 Jul 2010 21:45:07 +0200 Subject: [vlc-devel] =?iso-8859-1?q?=5Bvlc-commits=5D_commit=3A_access=5Fh?= =?iso-8859-1?q?ttp=3A_use_only_the_provided_user_agent=2E_=28_R=E9?= =?iso-8859-1?q?mi_Duraffort_=29?= In-Reply-To: <20100730084704.GJ26085@ileoo> References: <20100728210559.69F0B10A07A@albiero.videolan.org> <1280397455.13571.3.camel@Nokia-N900-51-1> <20100729110814.GE15851@dinauz.org> <201007292226.27254.remi@remlab.net> <20100730083226.GH15851@dinauz.org> <20100730084704.GJ26085@ileoo> Message-ID: <20100731194506.GI15851@dinauz.org> > Actually most cases user-agent is added just that server can match > certain string, I don't think any of those user-agent lookup tries to > match whole string, only tries to find one certain part in there (like > quicktime/7 for apple etc). And I agree with courmisch here, that we > should have libvlc/version un http-user agent. Probable yes. > > > Second, I still fail to see the harm in adding LibVLC at the end. I do see the > > > harm in _not_ adding it. > > > I don't know if it harms or not but I see this as some kind of a bug. If > > we provide an option to override the user agent, it might override it. > > Maybe the name of the option/variable or the help text is not suitable ? > > We could mention that we add libvlc/version to http-user agent string, > but otherwise it seems to be correct, as user_agent handles also > application name toward pulseaudio etc? As I said before I don't really know what the best choice is. I just wanted this option to be consitent. If we precise that VLC will add libvlc string and version at the end of the user-agent, you can revet my commit then. As long as that's consitent I'm fine with it. Best regards -- R?mi Duraffort | ivoire From remi at remlab.net Sat Jul 31 21:46:43 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 31 Jul 2010 22:46:43 +0300 Subject: [vlc-devel] DVB-S scanning In-Reply-To: References: Message-ID: <201007312246.43562.remi@remlab.net> Le samedi 31 juillet 2010 22:02:19 David Kaplan, vous avez ?crit : > I'm busy working on improving the DVB support (there's are quite a few > items here - specially int he area of usability). > > I'd like a few suggestions re DVB-S scanning. > > The best way of scanning is using sat transponder lists (imho at least). > Using a freq range isn't that sensible and there are very good sat lists > that can help greatly. > It would be great if we could somehow include these lists in VLC. We could include the lists as shared data if they were small and static. While I imagine they are not that big (and easy to compress), I also expect some churn over the timespan of a single VLC version. Then, it might not be so bright to have the lists offline. Moreover, churn means noise in the source code history. An online list would require someone to provide the centralized service for us, say some HTTP server with predefined channel confs URLs for each satellite reception geographical areas or whatever. But does that exist? The VideoLAN project may (or may not) be able to host the data, but surely not to maintain it. > That way > I can reference them from the dvb code and allow for scanning of > satellites by sat name/position. > Is this something we could consider at all (It'll add a few kb). if so, > where's the best place to put them and how should I access the lists from > the VLC code (is there a generic way of handling such text file resources?) Platform-independent data is usually stored in share/*/ and found with config_GetDataDir(). But I am not sure it is workable in this case. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From david at 2of1.org Sat Jul 31 21:58:10 2010 From: david at 2of1.org (David Kaplan) Date: Sat, 31 Jul 2010 22:58:10 +0300 Subject: [vlc-devel] DVB-S scanning In-Reply-To: <201007312246.43562.remi@remlab.net> References: <201007312246.43562.remi@remlab.net> Message-ID: 2010/7/31 R?mi Denis-Courmont > We could include the lists as shared data if they were small and static. > While > I imagine they are not that big (and easy to compress), I also expect some > churn over the timespan of a single VLC version. Then, it might not be so > bright to have the lists offline. Moreover, churn means noise in the source > code history. > They are fairly static. Unless there's a new provider/sat. Easily compressed. > An online list would require someone to provide the centralized service for > us, say some HTTP server with predefined channel confs URLs for each > satellite > reception geographical areas or whatever. But does that exist? The VideoLAN > project may (or may not) be able to host the data, but surely not to > maintain > it. > Not chan lists - transponder scan lists. We could maybe host on videolan? I don't mind maintaining but i still think offline is better as lists are fairly static - at least for the established birds. > > That way > > I can reference them from the dvb code and allow for scanning of > > satellites by sat name/position. > > Is this something we could consider at all (It'll add a few kb). if so, > > where's the best place to put them and how should I access the lists from > > the VLC code (is there a generic way of handling such text file > resources?) > > Platform-independent data is usually stored in share/*/ and found with > config_GetDataDir(). But I am not sure it is workable in this case. > Not workable because we're not sure about offline files? Or not workable because of something else? -- http://blog.2of1.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From remi at remlab.net Sat Jul 31 22:18:49 2010 From: remi at remlab.net (=?iso-8859-15?q?R=E9mi?= Denis-Courmont) Date: Sat, 31 Jul 2010 23:18:49 +0300 Subject: [vlc-devel] DVB-S scanning In-Reply-To: References: <201007312246.43562.remi@remlab.net> Message-ID: <201007312318.50267.remi@remlab.net> Le samedi 31 juillet 2010 22:58:10 David Kaplan, vous avez ?crit : > Not chan lists - transponder scan lists. We could maybe host on videolan? I > don't mind maintaining but i still think offline is better as lists are > fairly static - at least for the established birds. Maintaining lists for the entire Earth? > > > That way > > > I can reference them from the dvb code and allow for scanning of > > > satellites by sat name/position. > > > Is this something we could consider at all (It'll add a few kb). if so, > > > where's the best place to put them and how should I access the lists > > > from the VLC code (is there a generic way of handling such text file > > > > resources?) > > > > Platform-independent data is usually stored in share/*/ and found with > > config_GetDataDir(). But I am not sure it is workable in this case. > > Not workable because we're not sure about offline files? Yes. -- R?mi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis From goetz.waschk at gmail.com Fri Jul 30 19:23:46 2010 From: goetz.waschk at gmail.com (=?ISO-8859-1?Q?G=F6tz_Waschk?=) Date: Fri, 30 Jul 2010 19:23:46 +0200 Subject: [vlc-devel] [patch] fix rvlc wrapper In-Reply-To: References: Message-ID: >> Hi everyone, >> the rvlc wrapper starts vlc with the nonexistent (in 1.1.2) rc plugin. > Is it not provided by LUA? You were right. I didn't have lua support installed and I was looking for a shared library. Sorry for the noise. -- AL I:40: Do what thou wilt shall be the whole of the Law.