]> git.sesse.net Git - vlc/commitdiff
Simpler aspect parsing.
authorSteinar H. Gunderson <steinar+vlc@gunderson.no>
Sat, 2 Oct 2010 00:13:36 +0000 (02:13 +0200)
committerSteinar H. Gunderson <steinar+vlc@gunderson.no>
Sat, 2 Oct 2010 00:13:36 +0000 (02:13 +0200)
modules/access/decklink.cpp

index fe7e580ef121c33847a8415e06384d4c8756d0cc..3f837f22f09ca9197cdba7827a4d0606e696d509 100644 (file)
@@ -270,6 +270,7 @@ static int Open( vlc_object_t *p_this )
     int         i_card_index;
     int         i_width, i_height, i_fps_num, i_fps_den;
     int         i_rate;
+    unsigned    u_aspect_num, u_aspect_den;
 
     /* Only when selected */
     if( *p_demux->psz_access == '\0' )
@@ -553,17 +554,10 @@ static int Open( vlc_object_t *p_this )
     video_fmt.video.i_frame_rate_base = i_fps_den;
     video_fmt.i_bitrate = video_fmt.video.i_width * video_fmt.video.i_height * video_fmt.video.i_frame_rate * 2 * 8;
 
-    psz_aspect = var_CreateGetNonEmptyString( p_demux, "decklink-aspect-ratio" );
-    if( psz_aspect )
-    {
-        char *psz_denominator = strchr( psz_aspect, ':' );
-        if( psz_denominator )
-        {
-            *psz_denominator++ = '\0';
-            video_fmt.video.i_sar_num = atoi( psz_aspect )      * video_fmt.video.i_height;
-            video_fmt.video.i_sar_den = atoi( psz_denominator ) * video_fmt.video.i_width;
-        }
-        free( psz_aspect );
+    if ( !var_InheritURational( p_demux, &u_aspect_num, &u_aspect_den, "decklink-aspect-ratio" ) &&
+         u_aspect_num > 0 && u_aspect_den > 0 ) {
+        video_fmt.video.i_sar_num = u_aspect_num * video_fmt.video.i_height;
+        video_fmt.video.i_sar_den = u_aspect_den * video_fmt.video.i_width;
     }
 
     msg_Dbg( p_demux, "added new video es %4.4s %dx%d",