mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-22 15:18:21 +00:00
If output size == input size, just pass through buffer
Original commit message from CVS: If output size == input size, just pass through buffer
This commit is contained in:
parent
c5d1baf05a
commit
4f5c32f140
1 changed files with 15 additions and 10 deletions
|
@ -266,22 +266,27 @@ GST_DEBUG(0,"size=%ld from=%dx%d to=%dx%d newsize=%d",
|
|||
videoscale->targetwidth, videoscale->targetheight,
|
||||
videoscale->targetwidth*videoscale->targetheight + videoscale->targetwidth*videoscale->targetheight/2);
|
||||
|
||||
outbuf = gst_buffer_new();
|
||||
/* XXX this is wrong for anything but I420 */
|
||||
GST_BUFFER_SIZE(outbuf) = videoscale->targetwidth*videoscale->targetheight +
|
||||
if(videoscale->targetwidth==videoscale->width &&
|
||||
videoscale->targetheight==videoscale->height){
|
||||
gst_pad_push(videoscale->srcpad, buf);
|
||||
}else{
|
||||
outbuf = gst_buffer_new();
|
||||
/* XXX this is wrong for anything but I420 */
|
||||
GST_BUFFER_SIZE(outbuf) = videoscale->targetwidth*videoscale->targetheight +
|
||||
videoscale->targetwidth*videoscale->targetheight/2;
|
||||
GST_BUFFER_DATA(outbuf) = g_malloc (videoscale->targetwidth*videoscale->targetheight*2);
|
||||
GST_BUFFER_TIMESTAMP(outbuf) = GST_BUFFER_TIMESTAMP(buf);
|
||||
GST_BUFFER_DATA(outbuf) = g_malloc (videoscale->targetwidth*videoscale->targetheight*2);
|
||||
GST_BUFFER_TIMESTAMP(outbuf) = GST_BUFFER_TIMESTAMP(buf);
|
||||
|
||||
/*g_return_if_fail(videoscale->scale_cc != NULL); */
|
||||
videoscale->scale_cc(videoscale, data, GST_BUFFER_DATA(outbuf));
|
||||
/*g_return_if_fail(videoscale->scale_cc != NULL); */
|
||||
videoscale->scale_cc(videoscale, data, GST_BUFFER_DATA(outbuf));
|
||||
|
||||
GST_DEBUG (0,"gst_videoscale_chain: pushing buffer of %d bytes in '%s'",GST_BUFFER_SIZE(outbuf),
|
||||
GST_DEBUG (0,"gst_videoscale_chain: pushing buffer of %d bytes in '%s'",GST_BUFFER_SIZE(outbuf),
|
||||
GST_OBJECT_NAME (videoscale));
|
||||
|
||||
gst_pad_push(videoscale->srcpad, outbuf);
|
||||
gst_pad_push(videoscale->srcpad, outbuf);
|
||||
|
||||
gst_buffer_unref(buf);
|
||||
gst_buffer_unref(buf);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in a new issue