diff options
| author | Julien Moutte <julien@moutte.net> | 2005-10-26 14:08:49 +0000 | 
|---|---|---|
| committer | Julien Moutte <julien@moutte.net> | 2005-10-26 14:08:49 +0000 | 
| commit | eb21c9bf1c94894bcee736a5c49a5b003565f61a (patch) | |
| tree | f38adff3b7b73c50bcf59bff7685d9c01bf96131 | |
| parent | 6b9cda6ee93d0d394874e4cb560673218c2801a1 (diff) | |
gst/videobox/gstvideobox.c: Fix the stride issue when boxing to AYUV.
Original commit message from CVS:
2005-10-26  Julien MOUTTE  <julien@moutte.net>
* gst/videobox/gstvideobox.c: (gst_video_box_class_init),
(gst_video_box_transform_caps), (gst_video_box_get_unit_size),
(gst_video_box_ayuv): Fix the stride issue when boxing to AYUV.
| -rw-r--r-- | ChangeLog | 6 | ||||
| -rw-r--r-- | gst/videobox/gstvideobox.c | 22 | 
2 files changed, 19 insertions, 9 deletions
@@ -1,3 +1,9 @@ +2005-10-26  Julien MOUTTE  <julien@moutte.net> + +	* gst/videobox/gstvideobox.c: (gst_video_box_class_init), +	(gst_video_box_transform_caps), (gst_video_box_get_unit_size), +	(gst_video_box_ayuv): Fix the stride issue when boxing to AYUV. +  2005-10-26  Tim-Philipp Müller  <tim at centricular dot net>  	* sys/oss/gstossaudio.c: diff --git a/gst/videobox/gstvideobox.c b/gst/videobox/gstvideobox.c index 374ab6aa..28fb13a6 100644 --- a/gst/videobox/gstvideobox.c +++ b/gst/videobox/gstvideobox.c @@ -303,6 +303,7 @@ gst_video_box_set_property (GObject * object, guint prop_id,    else      gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (video_box), FALSE);  } +  static void  gst_video_box_get_property (GObject * object, guint prop_id, GValue * value,      GParamSpec * pspec) @@ -561,7 +562,7 @@ gst_video_box_ayuv (GstVideoBox * video_box, guint8 * src, guint8 * dest)    guint8 *srcY, *srcU, *srcV;    gint crop_width, crop_width2, crop_height;    gint out_width, out_height; -  gint src_stride, src_stride2; +  gint src_stridey, src_strideu, src_stridev;    gint br, bl, bt, bb;    gint colorY, colorU, colorV;    gint i, j; @@ -570,6 +571,8 @@ gst_video_box_ayuv (GstVideoBox * video_box, guint8 * src, guint8 * dest)    guint32 *destp = (guint32 *) dest;    guint32 ayuv; +  GST_LOG ("blending AYUV"); +    br = video_box->border_right;    bl = video_box->border_left;    bt = video_box->border_top; @@ -578,8 +581,9 @@ gst_video_box_ayuv (GstVideoBox * video_box, guint8 * src, guint8 * dest)    out_width = video_box->out_width;    out_height = video_box->out_height; -  src_stride = GST_VIDEO_I420_Y_ROWSTRIDE (video_box->in_width); -  src_stride2 = src_stride / 2; +  src_stridey = GST_VIDEO_I420_Y_ROWSTRIDE (video_box->in_width); +  src_strideu = GST_VIDEO_I420_U_ROWSTRIDE (video_box->in_width); +  src_stridev = GST_VIDEO_I420_V_ROWSTRIDE (video_box->in_width);    crop_width =        video_box->in_width - (video_box->crop_left + video_box->crop_right); @@ -589,13 +593,13 @@ gst_video_box_ayuv (GstVideoBox * video_box, guint8 * src, guint8 * dest)    srcY =        src + GST_VIDEO_I420_Y_OFFSET (video_box->in_width, video_box->in_height); -  srcY += src_stride * video_box->crop_top + video_box->crop_left; +  srcY += src_stridey * video_box->crop_top + video_box->crop_left;    srcU =        src + GST_VIDEO_I420_U_OFFSET (video_box->in_width, video_box->in_height); -  srcU += src_stride2 * (video_box->crop_top / 2) + (video_box->crop_left / 2); +  srcU += src_strideu * (video_box->crop_top / 2) + (video_box->crop_left / 2);    srcV =        src + GST_VIDEO_I420_V_OFFSET (video_box->in_width, video_box->in_height); -  srcV += src_stride2 * (video_box->crop_top / 2) + (video_box->crop_left / 2); +  srcV += src_stridev * (video_box->crop_top / 2) + (video_box->crop_left / 2);    colorY = yuv_colors_Y[video_box->fill_type];    colorU = yuv_colors_U[video_box->fill_type]; @@ -632,10 +636,10 @@ gst_video_box_ayuv (GstVideoBox * video_box, guint8 * src, guint8 * dest)        srcU -= crop_width2;        srcV -= crop_width2;      } else { -      srcU += src_stride2 - crop_width2; -      srcV += src_stride2 - crop_width2; +      srcU += src_strideu - crop_width2; +      srcV += src_stridev - crop_width2;      } -    srcY += src_stride - crop_width; +    srcY += src_stridey - crop_width;      destp = (guint32 *) dest;      /* right border */  | 
