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