Query on Gst-base-parse gstreamer plugin

Sachin Gadag sachin_gadag at yahoo.com
Thu Apr 6 09:25:47 UTC 2023


Gentle Reminder!!!

Thanks,
Sachin

> On 31-Mar-2023, at 10:39 PM, Sachin Gadag <sachin_gadag at yahoo.com> wrote:
> 
> 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/20230406/7f02eb12/attachment.htm>


More information about the gstreamer-devel mailing list