Query on Gst-base-parse gstreamer plugin

Sachin Gadag sachin_gadag at yahoo.com
Fri Mar 31 17:09:05 UTC 2023


Hi Team,

Can you help with response for query ?

Thanks,
Sachin

> On 28-Mar-2023, at 6:42 PM, Sachin Gadag <sachin_gadag at yahoo.com> wrote:
> 
> 
> 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/20230331/a74edd07/attachment.htm>


More information about the gstreamer-devel mailing list