detecting audio drop

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

detecting audio drop

Tony Beville
I'm a relative novice with gstreamer, and had just developed some plugins for our emebedded system to use the the hardware video decoding, scaling and colorspace conversion.
 
We have written a custom app for playback, and for the most part it works great.  With some videos, though, the time to display a frame is too slow for the given framerate, and when playing, the audio will stop eventually, but the video will continue.  I am assuming this happens because the two threads are out of sync.  Pipeline looks like something this:
 
filesrc location=vidfile ! qtdemux name=d ! { queue ! decodebin  !  autovideosink } { d. ! queue  ! decodebin ! audioconvert ! autoaudiosink }
 
 If I add the videorate element to the pipeline, and slow down the framerate, those videos will play better (but of course more choppy):
 
filesrc location=vidfile  ! qtdemux name=d ! { queue ! decodebin ! videorate ! video/x-raw-yuv, framerate=15/1 !  autovideosink  } { d. ! queue  ! decodebin ! audioconvert ! autoaudiosink }
 
 
What I would like to do is have the app detect when the when the audio drops, and dynamically lower the caps filter to a slower rate until audio restarts. 
 
I am guessing there is a signal or message or callback I can set, but I am unable to work out what.  Is this even possible?
 
Thanks,
 
Tony

------------------------------------------------------------------------------

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: detecting audio drop

Wim Taymans
On Sat, 2008-12-20 at 11:23 -0800, Tony Beville wrote:

> I'm a relative novice with gstreamer, and had just developed some
> plugins for our emebedded system to use the the hardware video
> decoding, scaling and colorspace conversion.
>  
> We have written a custom app for playback, and for the most part it
> works great.  With some videos, though, the time to display a frame is
> too slow for the given framerate, and when playing, the audio will
> stop eventually, but the video will continue.  I am assuming this
> happens because the two threads are out of sync.  Pipeline looks like
> something this:
>  
> filesrc location=vidfile ! qtdemux name=d ! { queue ! decodebin  !
> autovideosink } { d. ! queue  ! decodebin ! audioconvert !
> autoaudiosink }
>  
>  If I add the videorate element to the pipeline, and slow down the
> framerate, those videos will play better (but of course more choppy):
>  
> filesrc location=vidfile  ! qtdemux name=d ! { queue ! decodebin !
> videorate ! video/x-raw-yuv, framerate=15/1 !  autovideosink  } { d. !
> queue  ! decodebin ! audioconvert ! autoaudiosink }
>  
>  
> What I would like to do is have the app detect when the when the audio
> drops, and dynamically lower the caps filter to a slower rate until
> audio restarts.  
>  
> I am guessing there is a signal or message or callback I can set, but
> I am unable to work out what.  Is this even possible?

You should check out the QoS events and the theory behind it here:

http://webcvs.freedesktop.org/gstreamer/gstreamer/docs/design/part-qos.txt?revision=1.8&view=markup

Wim

>  
> Thanks,
>  
> Tony
> ------------------------------------------------------------------------------
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: detecting audio drop

Stefan Sauer
In reply to this post by Tony Beville
Hi,

Tony Beville schrieb:

> I'm a relative novice with gstreamer, and had just developed some
> plugins for our emebedded system to use the the hardware video decoding,
> scaling and colorspace conversion.
>  
> We have written a custom app for playback, and for the most part it
> works great.  With some videos, though, the time to display a frame is
> too slow for the given framerate, and when playing, the audio will stop
> eventually, but the video will continue.  I am assuming this happens
> because the two threads are out of sync.  Pipeline looks like something
> this:
>  
> filesrc location=vidfile ! qtdemux name=d ! { queue ! decodebin  !
> autovideosink } { d. ! queue  ! decodebin ! audioconvert ! autoaudiosink }

1st, the '{' are used in 0.8 No need anymore.
2nd, make it easier:
filesrc location=vidfile ! decodebin name=d ! autovideosink d. ! audioconvert !
autoaudiosink
or even:
playbin uri=file://$PWD/vidfile

Stefan


>  
>  If I add the videorate element to the pipeline, and slow down the
> framerate, those videos will play better (but of course more choppy):
>  
> filesrc location=vidfile  ! qtdemux name=d ! { queue ! decodebin !
> videorate ! video/x-raw-yuv, framerate=15/1 !  autovideosink  } { d. !
> queue  ! decodebin ! audioconvert ! autoaudiosink }
>  
>  
> What I would like to do is have the app detect when the when the audio
> drops, and dynamically lower the caps filter to a slower rate until
> audio restarts.
>  
> I am guessing there is a signal or message or callback I can set, but I
> am unable to work out what.  Is this even possible?
>  
> Thanks,
>  
> Tony
>
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Hi....

vaisakhn7
Please tell me
Where I get gst-plug-in 0.10 versions with plug-in "mad"?


Or please tell me how I can include plug-in "mad" with gst-plug-in base
0.10.21 (in which there is no mad plug in)
Thanks..

------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Hi....

Sudarshan Bisht
Hi ,,,
          For "mad" first build libmad library and then buil gst-plugin-ugly package ( http://gstreamer.freedesktop.org/src/)  .

 
On Mon, Dec 22, 2008 at 12:40 PM, Vaisakh N. <[hidden email]> wrote:
Please tell me
Where I get gst-plug-in 0.10 versions with plug-in "mad"?


Or please tell me how I can include plug-in "mad" with gst-plug-in base
0.10.21 (in which there is no mad plug in)
Thanks..

------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel



--
Regards,

Sudarshan Bisht

------------------------------------------------------------------------------

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel