Query on Gst-base-parse gstreamer plugin

Sachin Gadag sachin_gadag at yahoo.com
Tue Mar 28 13:12:00 UTC 2023


Hi Team,
I'm looking for info on GST-baseparse implementation, kindly please help with response.
Im playing a mp3 file which has no headers (XING/VBRI) information & duration is 1.4sec. Upon query of element_query_duration , pipeline is always returning -1. On analyzing logs found that baseparse is returning -1. 

NOTE: baseparse is running is PUSH Mode.
On code browsing, found that to configure duration in baseparse 

1) Subclass ( eg mpegaudioparse) can invoke prase_set_duration https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.22/subprojects/gstreamer/libs/gst/base/gstbaseparse.c#L3860  . Since in my mp3 file there is no header information hence it failed to set duration. Hitting this COL https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-good/gst/audioparsers/gstmpegaudioparse.c#L1382 



2) Using update_interval . I see baseparse has configured update_interval to 1.5sec by default https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.22/subprojects/gstreamer/libs/gst/base/gstbaseparse.c#L3973 . But my mp3 duration is < 1.5sec hence not hitting frames_count  == 1.5sec worth of frames. https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.22/subprojects/gstreamer/libs/gst/base/gstbaseparse.c#L2512 




Queries;
1) Am i missing anything in debugging step ?2) Is my analysis correct ?3) Why interval time is 1.5sec , normally notification /touch tones will be ~1sec duration, then how does gstreamer handles such contents ?4) While checking logs found that query_duration call goes till source element in plugin , duration info is available in BYTES_FORMAT , but requested one is TIME_FORMAT . Basesrc is unable to convert to required format & in baseparse there is no code for conversion.  QUERY_POSITION case in baseparse https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.22/subprojects/gstreamer/libs/gst/base/gstbaseparse.c#L4196 has a code for conversion but same code/logic is not present in QUERY_DURATION case https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.22/subprojects/gstreamer/libs/gst/base/gstbaseparse.c#L4213 . Any reason why conversion logic is not present ? 
5) Do we have soln patch for such case ?


Thank you,
Sachin

 












-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20230328/d322e731/attachment.htm>


More information about the gstreamer-devel mailing list