baseparse: Don't return more data than asked for in pull_range() 32/244932/1 accepted/tizen/unified/20201102.124429 submit/tizen/20201028.052639
authorJan Schmidt <jan@centricular.com>
Wed, 8 Apr 2020 07:53:17 +0000 (17:53 +1000)
committerGilbok Lee <gilbok.lee@samsung.com>
Mon, 28 Sep 2020 05:31:38 +0000 (14:31 +0900)
commit2f17a95cd57f08f0a8d91113872281d57505434d
tree49ddcbba34f38e7e040fd2ae50d2d50dbc5b2f80
parent4cc3d6a9b771bfe25f8087ac850572282d1ad02e
baseparse: Don't return more data than asked for in pull_range()

Even when pulling a new 64KB buffer from upstream, don't return
more data than was asked for in the pull_range() method and then
return less later, as that confused subclasses like h264parse.

Add a unit test that when a subclass asks for more data, it always
receives a larger buffer on the next iteration, never less.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/530

Change-Id: Id2e903a3a859b048baebb387b00cebf6658b477d
libs/gst/base/gstbaseparse.c
packaging/gstreamer.spec
tests/check/libs/baseparse.c