[Bug 744211] interleave: assertion 'self->func != NULL' failed
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Mon Jun 1 11:08:23 PDT 2015
https://bugzilla.gnome.org/show_bug.cgi?id=744211
--- Comment #6 from Thiago Sousa Santos <thiagossantos at gmail.com> ---
(In reply to Vineeth from comment #5)
> I went through the code again and these are my observations.
> The main reason of this error is that,
> if channel_positions_from_input is set to TRUE, the channel positions is
> taken from input caps.
> But whenever channel_positions_from_input is set to FALSE, it is expecting
> channel-positions property to be set through pipeline.
>
> I am not sure why a property for channel_positions_from_input is needed.
> From code we are by default initializing it as TRUE. So if will take the
> channel position from input caps if provided.
> And when we provide property channel-positions then the value will be set to
> FALSE and it will take the provided channel-positions.
>
> The problem with controllable channel_positions_from_input property arises
> when
> it is set without channel-positions property or set after channel-positions
> property is set.
> These can be verified in the test cases by making some minor changes as
> follows.
>
> In the test case test_interleave_2ch_pipeline_input_chanpos,
> channel-positions is not being set. When we change the
> channel-positions-from-input property to FALSE, then we get the assertion
> errors and the test case fails.
In this test, the input positions is to be taken from caps. One of the channels
is set as a LEFT and the other as a RIGHT. The left channels will have its
values set to -1 while the right will have it set to 1.
>
> In the test case test_interleave_2ch_pipeline_custom_chanpos,
> channel-positions are being set, and channel-positions-from-input property
> is being set to TRUE before setting channel-positions. But if we set
> channel-positions-from-input property after channel-positions then the test
> case fails.
In this one, the interleave should ignore the input caps positions and use
whatever was set on its property. in this case it is CENTER_FRONT and
CENTER_REAR with the -1 and 1 values (just like above).
Both tests seem to make sense to me.
This also made me realize that your test of setting the property to false
without giving a channel-positions array is a wrong usage. The user should set
a channel-positions array if it wants to ignore input caps positions so the
assertion might make sense in the end as it is a programming error.
This might not be a valid bug after all.
One could argue that the channel-positions-from-input property is not needed as
it would be possible to just check if the input-positions is NULL or not but we
can't change that now as it would be a behavior break and applications relying
on the current way would behave differently.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list