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