From 2482f928d8723867a51961b1b4f8b94a4f5d57b0 Mon Sep 17 00:00:00 2001 From: Guenter Bartsch Date: Sun, 7 Oct 2001 17:08:23 +0000 Subject: error detection for screenshot function CVS patchset: 758 CVS date: 2001/10/07 17:08:23 --- include/xine.h.tmpl.in | 13 +++++++------ src/xine-engine/xine.c | 12 ++++++++---- src/xine-engine/xine_internal.h | 10 +++++----- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/include/xine.h.tmpl.in b/include/xine.h.tmpl.in index 6112a99cf..09fad1936 100644 --- a/include/xine.h.tmpl.in +++ b/include/xine.h.tmpl.in @@ -28,7 +28,7 @@ \endverbatim */ /* - * $Id: xine.h.tmpl.in,v 1.45 2001/10/07 16:57:02 guenter Exp $ + * $Id: xine.h.tmpl.in,v 1.46 2001/10/07 17:08:23 guenter Exp $ * */ @@ -1374,17 +1374,18 @@ void xine_send_event(xine_t *self, event_t *event, void *data); /** * snapshot function * - * returns: * width, height : size of image (be aware that u,v may be subsampled) * ratio_code : aspect ratio of the frame * format : subsampling format YUV 4:2:0 or 4:2:2 * y : lumiance information * u,v : subsample color information + * + * return value: 1 => succ, 0=> fail */ -void xine_get_current_frame (xine_t *self, int *width, int *height, - int *ratio_code, int *format, - uint8_t **y, uint8_t **u, - uint8_t **v); +int xine_get_current_frame (xine_t *self, int *width, int *height, + int *ratio_code, int *format, + uint8_t **y, uint8_t **u, + uint8_t **v); #define XINE_IMGFMT_YV12 0x32315659 diff --git a/src/xine-engine/xine.c b/src/xine-engine/xine.c index 3d32d0f4d..bd37285b3 100644 --- a/src/xine-engine/xine.c +++ b/src/xine-engine/xine.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine.c,v 1.65 2001/10/07 16:57:02 guenter Exp $ + * $Id: xine.c,v 1.66 2001/10/07 17:08:23 guenter Exp $ * * top-level xine functions * @@ -648,14 +648,17 @@ int xine_set_audio_property(xine_t *this, int property, int value) { return ~value; } -void xine_get_current_frame (xine_t *this, int *width, int *height, - int *ratio_code, int *format, - uint8_t **y, uint8_t **u, uint8_t **v) { +int xine_get_current_frame (xine_t *this, int *width, int *height, + int *ratio_code, int *format, + uint8_t **y, uint8_t **u, uint8_t **v) { vo_frame_t *frame; frame = this->video_out->get_last_frame (this->video_out); + if (!frame) + return 0; + *width = frame->width; *height = frame->height; @@ -666,5 +669,6 @@ void xine_get_current_frame (xine_t *this, int *width, int *height, *u = frame->base[1]; *v = frame->base[2]; + return 1; } diff --git a/src/xine-engine/xine_internal.h b/src/xine-engine/xine_internal.h index 55ca7a996..01f0b8d30 100644 --- a/src/xine-engine/xine_internal.h +++ b/src/xine-engine/xine_internal.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_internal.h,v 1.47 2001/10/07 16:57:02 guenter Exp $ + * $Id: xine_internal.h,v 1.48 2001/10/07 17:08:23 guenter Exp $ * */ @@ -518,10 +518,10 @@ void xine_send_event(xine_t *this, event_t *event, void *data); * y : lumiance information * u,v : subsample color information */ -void xine_get_current_frame (xine_t *this, int *width, int *height, - int *ratio_code, int *format, - uint8_t **y, uint8_t **u, - uint8_t **v); +int xine_get_current_frame (xine_t *this, int *width, int *height, + int *ratio_code, int *format, + uint8_t **y, uint8_t **u, + uint8_t **v); #ifdef __cplusplus } -- cgit v1.2.3