From 6386d77ee81d5f2155d2864fab339bc9358fd8c7 Mon Sep 17 00:00:00 2001 From: Viktor Gal Date: Sun, 20 Dec 2009 23:40:38 +1100 Subject: [PATCH] Add oggplay_get_video_aspect_ratio function Adds 'oggplay_get_video_aspect_ratio' function to the API. It returns aspect ratio of the video track being played. --- include/oggplay/oggplay.h | 3 +++ src/liboggplay/oggplay.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/include/oggplay/oggplay.h b/include/oggplay/oggplay.h index 59a98b1..08a9ef4 100644 --- a/include/oggplay/oggplay.h +++ b/include/oggplay/oggplay.h @@ -231,6 +231,9 @@ OggPlayErrorCode oggplay_get_video_fps(OggPlay *me, int track, int* fps_denom, int* fps_num); OggPlayErrorCode +oggplay_get_video_aspect_ratio(OggPlay *me, int track, int* aspect_denom, int* aspect_num); + +OggPlayErrorCode oggplay_convert_video_to_rgb(OggPlay *me, int track, int convert, int swap_rgb); OggPlayErrorCode diff --git a/src/liboggplay/oggplay.c b/src/liboggplay/oggplay.c index 71574da..161db94 100644 --- a/src/liboggplay/oggplay.c +++ b/src/liboggplay/oggplay.c @@ -321,6 +321,35 @@ oggplay_get_video_fps(OggPlay *me, int track, int* fps_denom, int* fps_num) { } OggPlayErrorCode +oggplay_get_video_aspect_ratio(OggPlay *me, int track, int* aspect_denom, int* aspect_num) { + OggPlayTheoraDecode *decode; + + if (me == NULL) { + return E_OGGPLAY_BAD_OGGPLAY; + } + + if (track < 0 || track >= me->num_tracks) { + return E_OGGPLAY_BAD_TRACK; + } + + if (me->decode_data[track]->decoded_type != OGGPLAY_YUV_VIDEO) { + return E_OGGPLAY_WRONG_TRACK_TYPE; + } + + decode = (OggPlayTheoraDecode *)(me->decode_data[track]); + + if ((decode->video_info.aspect_denominator == 0) + || (decode->video_info.aspect_numerator == 0)) { + return E_OGGPLAY_UNINITIALISED; + } + + (*aspect_denom) = decode->video_info.aspect_denominator; + (*aspect_num) = decode->video_info.aspect_numerator; + + return E_OGGPLAY_OK; +} + +OggPlayErrorCode oggplay_convert_video_to_rgb(OggPlay *me, int track, int convert, int swap_rgb) { OggPlayTheoraDecode *decode; -- 2.11.4.GIT