"aspect, or a float value (1.25, 1.3333, etc.) expressing pixel " \
"squareness.")
+#define SASPECT_RATIO_TEXT N_("Screen aspect ratio")
+#define SASPECT_RATIO_LONGTEXT N_( \
+ "This will force the scree aspect ratio. Default screen aspect ratio" \
+ "is 4:3. Setting the screen aspect ratio to 4:3 will have no effect," \
+ "other settings (like 16:9) will change the image.")
+
#define SKIP_FRAMES_TEXT N_("Skip frames")
#define SKIP_FRAMES_LONGTEXT N_( \
"Disable this option to disable frame drops on MPEG-2 streams.")
add_integer( "video-y", -1, NULL, VIDEOY_TEXT, VIDEOY_LONGTEXT, VLC_TRUE );
add_string( "aspect-ratio", "", NULL,
ASPECT_RATIO_TEXT, ASPECT_RATIO_LONGTEXT, VLC_FALSE );
+ add_string( "screen-aspect-ratio", "", NULL,
+ SASPECT_RATIO_TEXT, SASPECT_RATIO_LONGTEXT, VLC_FALSE );
add_bool( "video-deco", 1, NULL, VIDEO_DECO_TEXT,
VIDEO_DECO_LONGTEXT, VLC_TRUE );
add_string( "video-title", NULL, NULL, VIDEO_TITLE_TEXT,
input_thread_t * p_input_thread;
int i_index; /* loop variable */
char * psz_plugin;
- vlc_value_t val, text;
+ vlc_value_t val, val2, text;
unsigned int i_width = p_fmt->i_width;
unsigned int i_height = p_fmt->i_height;
* the video output pipe */
if( p_parent->i_object_type != VLC_OBJECT_VOUT )
{
+ int i_screen_aspect_x = 4 , i_screen_aspect_y = 3;
var_Get( p_vout, "aspect-ratio", &val );
+ var_Get( p_vout, "screen-aspect-ratio", &val2 );
+
+ if( val2.psz_string )
+ {
+ char *psz_parser = strchr( val2.psz_string, ':' );
+ if( psz_parser )
+ {
+ *psz_parser++ = '\0';
+ i_screen_aspect_x = atoi( val2.psz_string );
+ i_screen_aspect_y = atoi( psz_parser );
+ } else {
+ AspectRatio( VOUT_ASPECT_FACTOR * atof( val2.psz_string ),
+ &i_screen_aspect_x, &i_screen_aspect_y );
+ }
+
+ free( val2.psz_string );
+ }
/* Check whether the user tried to override aspect ratio */
if( val.psz_string )
{
unsigned int i_new_aspect = i_aspect;
char *psz_parser = strchr( val.psz_string, ':' );
+ int i_aspect_x, i_aspect_y;
+ AspectRatio( i_aspect, &i_aspect_x, &i_aspect_y );
if( psz_parser )
{
*psz_parser++ = '\0';
- i_new_aspect = atoi( val.psz_string ) * VOUT_ASPECT_FACTOR
- / atoi( psz_parser );
+ i_new_aspect = atoi( val.psz_string )
+ * VOUT_ASPECT_FACTOR / atoi( psz_parser );
}
else
{
- i_new_aspect = VOUT_ASPECT_FACTOR
- * atof( val.psz_string );
+ if( atof( val.psz_string ) != 0 )
+ {
+ i_new_aspect = VOUT_ASPECT_FACTOR * atof( val.psz_string );
+ }
}
+ i_new_aspect = (int)((float)i_new_aspect
+ * (float)i_screen_aspect_y*4.0/((float)i_screen_aspect_x*3.0));
free( val.psz_string );
var_Create( p_vout, "snapshot-path", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
var_Create( p_vout, "snapshot-format", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
var_Create( p_vout, "aspect-ratio", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
+ var_Create( p_vout, "screen-aspect-ratio",
+ VLC_VAR_STRING | VLC_VAR_DOINHERIT );
var_Create( p_vout, "width", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Create( p_vout, "height", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Create( p_vout, "align", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );