i want to know how to set the framerate parameter dynamicly for the decode .thank you very much
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
i want to know how to set the framerate parameter dynamicly for the decode .thank you very much
Pls use API:Vdec_setTplayConfig
Below is description:
/**
\brief Set playback control configuration to trickplay logic
decoder output frame rate is controlled based on setting
trickplay skipcount field.
ex: for 2x speed, skip count should be 2 & decoder output
frame rate will be skipped half of original frame rate.
\param vcChnId [IN] decode channel ID
*/
void Vdec_setTplayConfig(VDEC_CHN vdecChnId, VDEC_TPLAY speed);
You can use TPLAY speeds like 2X/4X/8X/16X,
thank you . i want to ask whether the decode framerate is decided by the thread send how much frames per second to the decoder. because i have changed all the framerate in the decdis demo ,but the framerate still not be changed.
Decoder frame rate is decided by MIN(Input FPS rate,Output FPS rate). That means decoder fps will be be minimum of rate at which application sends data and rate at which SwMs is consuming data .In decode display demo swms will consume at 30 fps.
so if i want to set the framerate for decode that i have to control the rate which i send the frame to the decoder by the thread?
Can you give example of how you want to change the frame rate dynamically.Pls mention the dynamic frame rate value.
for example ,i have 2 decode channel ,i want one frame rate is 60 FPS,the other one is 30 FPS.so how can i do?
Pls follow below steps:
Ensure you are using RDK 3.5
1. Confirm your display is configured for 60 fps output (For example :1080P60)
2. Configure the SwMs.layoutPrms.outputFps = 60 -> This will ensure SwMs does mosaic at 60 fps.
3. Ensure avsync is enabled in the usecase. It is already enabled by default. Incase you have done any change to disable it undo the change.
4. When feeding the frame to Vdec_putBitstreamBuffer() ensure all frames have the correct timestamp set.
i.e
-- For 60 fps channels timestamp difference between two frames should be 1/60 sec (~ 16ms)
-- For 30 fps channels timestamp difference between two frames should be 1/30 sec (~ 33ms)
5. Feed frames by invoking Vdec_putBitstreamBuffer() at rate of one frame/ch every 8 msec atleast to ensure no underrun at decoder input.
Note that a single scaler does not have enough bandwidth to do 2 1080P displays @ 60 fps so you may have to reduce one display sWms fps if you dont meet realtime performance.