aiffparse: fix CAPS query
Was causing criticals in decodebin/playbin because the caps query done when exposing pads would return ANY caps.
This commit is contained in:
parent
48734bd522
commit
ed69b2896f
@ -1506,20 +1506,19 @@ done:
|
|||||||
static gboolean
|
static gboolean
|
||||||
gst_aiff_parse_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
|
gst_aiff_parse_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
|
||||||
{
|
{
|
||||||
gboolean res = TRUE;
|
gboolean res = FALSE;
|
||||||
GstAiffParse *aiff = GST_AIFF_PARSE (parent);
|
GstAiffParse *aiff = GST_AIFF_PARSE (parent);
|
||||||
|
|
||||||
/* only if we know */
|
|
||||||
if (aiff->state != AIFF_PARSE_DATA) {
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (GST_QUERY_TYPE (query)) {
|
switch (GST_QUERY_TYPE (query)) {
|
||||||
case GST_QUERY_DURATION:
|
case GST_QUERY_DURATION:
|
||||||
{
|
{
|
||||||
gint64 duration = 0;
|
gint64 duration = 0;
|
||||||
GstFormat format;
|
GstFormat format;
|
||||||
|
|
||||||
|
/* only if we know */
|
||||||
|
if (aiff->state != AIFF_PARSE_DATA)
|
||||||
|
break;
|
||||||
|
|
||||||
gst_query_parse_duration (query, &format, NULL);
|
gst_query_parse_duration (query, &format, NULL);
|
||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
@ -1542,6 +1541,10 @@ gst_aiff_parse_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
|
|||||||
gint64 srcvalue, dstvalue;
|
gint64 srcvalue, dstvalue;
|
||||||
GstFormat srcformat, dstformat;
|
GstFormat srcformat, dstformat;
|
||||||
|
|
||||||
|
/* only if we know */
|
||||||
|
if (aiff->state != AIFF_PARSE_DATA)
|
||||||
|
break;
|
||||||
|
|
||||||
gst_query_parse_convert (query, &srcformat, &srcvalue,
|
gst_query_parse_convert (query, &srcformat, &srcvalue,
|
||||||
&dstformat, &dstvalue);
|
&dstformat, &dstvalue);
|
||||||
res = gst_aiff_parse_pad_convert (pad, srcformat, srcvalue,
|
res = gst_aiff_parse_pad_convert (pad, srcformat, srcvalue,
|
||||||
@ -1553,6 +1556,10 @@ gst_aiff_parse_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
|
|||||||
case GST_QUERY_SEEKING:{
|
case GST_QUERY_SEEKING:{
|
||||||
GstFormat fmt;
|
GstFormat fmt;
|
||||||
|
|
||||||
|
/* only if we know */
|
||||||
|
if (aiff->state != AIFF_PARSE_DATA)
|
||||||
|
break;
|
||||||
|
|
||||||
gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL);
|
gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL);
|
||||||
if (fmt == GST_FORMAT_TIME) {
|
if (fmt == GST_FORMAT_TIME) {
|
||||||
gboolean seekable = TRUE;
|
gboolean seekable = TRUE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user