From: Sebastian Dröge Date: Fri, 30 Mar 2012 11:52:56 +0000 (+0200) Subject: theoradec: Add crop metadata before mapping the buffer content X-Git-Tag: RELEASE-0.11.90~43 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=27408ee47f73a830cf00b9cf81e420345982be25;p=platform%2Fupstream%2Fgst-plugins-base.git theoradec: Add crop metadata before mapping the buffer content Otherwise the buffer is not writable and the crop metadata can't be added. --- diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c index 8a4279f..ed44141 100644 --- a/ext/theora/gsttheoradec.c +++ b/ext/theora/gsttheoradec.c @@ -1132,10 +1132,6 @@ theora_handle_image (GstTheoraDec * dec, th_ycbcr_buffer buf, GstBuffer ** out) if (G_UNLIKELY (result != GST_FLOW_OK)) goto no_buffer; - if G_UNLIKELY - (!gst_video_frame_map (&frame, &dec->vinfo, *out, GST_MAP_WRITE)) - goto invalid_frame; - if (!dec->has_cropping) { /* we need to crop the hard way */ offset_x = dec->info.pic_x; @@ -1171,6 +1167,10 @@ theora_handle_image (GstTheoraDec * dec, th_ycbcr_buffer buf, GstBuffer ** out) GST_CAT_TRACE_OBJECT (GST_CAT_PERFORMANCE, dec, "doing unavoidable video frame copy"); + if G_UNLIKELY + (!gst_video_frame_map (&frame, &dec->vinfo, *out, GST_MAP_WRITE)) + goto invalid_frame; + for (comp = 0; comp < 3; comp++) { width = GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (frame.info.finfo, comp, pic_width);