real time question : RR vs FF?

Victor henri nadaeck at hotmail.com
Thu Apr 28 14:49:34 PDT 2011



Hello Stefan and thank you for your answer

>> I have made an app that displays the harmonics in 3d.
>>
>> I want to be able to run it in real-time; I have used the 'rtpool-test' code
>> from the gstreamer core examples (streams->rtpool-test.c) and it works. However,
>> I have seen that this grants me a priority of 90 with a 'RR' policy. Is it
>> possible to change the code code to get 'FIFO' policy? If yes, please how could
>> I do this? I have tied to use the set_schedparam code, but I got the 'Invalid
>> argument' during 'pthread_attr_setschedparam (&attr, &sched)' error... (as well
>> as starting the app with 'chrt -r -p my-pid')
>
> You need to have permission to swicth your app to that (e.g. try the chrt call
> as root).

It doesn't work; both starting the app with "sudo chrt -r my_app" and using the 'set_schedparam' function don't work : I get the error : "pthread_attr_setschedparam (&attr, &sched)" and this has already been reported I think.
I have seen a post at the gstreamer list about this, and they advised to use the 'rtpool-test' code; I did it and it worked;

>Now the better question is why you want to do it. Before I go depper,
> if would be good if you could tell what your expectation is.

The app displays in a 3D graph the harmonics of the sound sound captured from the microphone;  since it is 3d (hence cpu and gpu consuming) and a real-time analysis, I'd like to start the app with the real-time policy to ensure that is has priority about other process that may slow it down; I'm well aware that running it in real time won't decrease its CPU and GPU use though

>
> Stefan
>
>>
>> Another question : this code grants real time for Gstreamer code, but what about
>> other code code (not Gstreamer) that follows it? The app is written like this :
>> GTK GUI with a 'Play" button, that starts playing the sound with Gstreamer, and
>> the 'spectrum' element send messages to the bus; everytime the "message handler"
>> function retrives the values of the spectrum, there is a call to a function that
>> display the values of the spectrum in a SDL/OpenGL window. My question is : is
>> the display in the SDL/OpenGL window done also with the RR policy or back with
>> TS policy?
>>
>> When I run the app (its name is 'spectrum3d', then when I run 'ps -cLe' in a
>> terminal to see all the threads of the app, I see this :
>>
>> 5265 5265 TS 19 pts/0 00:00:01 spectrum3d
>> 5265 5267 TS 19 pts/0 00:00:00 threaded-ml
>> 5265 5268 TS 19 pts/0 00:00:00 threaded-ml
>> 5265 5270 TS 19 pts/0 00:00:00 task0
>> 5265 5271 TS 19 pts/0 00:00:00 spectrum3d
>> 5265 5272 RR 90 pts/0 00:00:01 alsasrc:src
>>
>> The 1st pid is the Gtk GUI; the last one must be the gstreamer sound reading,
>> since its policy is RR; but I don't know what the other pid represent...
>>

Regarding this, do you think running the Gstreamer thread in real-time is enough to give also real-time display with openGL, since the display function is called from the message handler function of Gstreamer

Thank you for helping me

Victor

 		 	   		  


More information about the gstreamer-devel mailing list