]> git.sesse.net Git - vlc/commitdiff
Revert "Revert "Implement libvlc_video_get_size(), close #3679""
authorRafaël Carré <funman@videolan.org>
Tue, 17 Jan 2012 18:52:06 +0000 (13:52 -0500)
committerRafaël Carré <funman@videolan.org>
Tue, 17 Jan 2012 18:52:06 +0000 (13:52 -0500)
This reverts commit 47cf242f9af4a55ba9d1c77325d100d73e30a325.

lib/video.c

index 163bca306e2245bd4d15a4aa4cf3be2f6365ad20..7e092bd0559a0772d86c7611aa08454044749a17 100644 (file)
@@ -161,18 +161,22 @@ libvlc_video_take_snapshot( libvlc_media_player_t *p_mi, unsigned num,
 int libvlc_video_get_size( libvlc_media_player_t *p_mi, unsigned num,
                            unsigned *restrict px, unsigned *restrict py )
 {
-#if 0
-    vout_thread_t *p_vout = GetVout (p_mi, num);
-    if (p_vout == NULL)
-        return -1;
+    libvlc_media_track_info_t *info;
+    int ret = -1;
+    int infos = libvlc_media_get_tracks_info(p_mi->p_md, &info);
+    if (infos <= 0)
+        return ret;
+
+    for (int i = 0; i < infos; i++)
+        if (info[i].i_type == libvlc_track_video && num-- == 0) {
+            *px = info[i].u.video.i_width;
+            *py = info[i].u.video.i_height;
+            ret = 0;
+            break;
+        }
 
-    *px = p_vout->i_window_height;
-    *py = p_vout->i_window_width;
-    vlc_object_release (p_vout);
-    return 0;
-#else
-    return -1;
-#endif
+    free(info);
+    return ret;
 }
 
 int libvlc_video_get_height( libvlc_media_player_t *p_mi )