Hi,<br>I am using x264 for live video stream encoding and then it is transmitted over rtp. In my server application I get feedback from my rtp client about which particular frame has been received by the decoder without any error. So for my next frame encoding I want to reference from that frame which has been received by decoder.<br>
To do this I am dropping frame from my encoder's DPB.<br><br>I am trying this code for frame dropping in the reference list.<br><br>x264_frame_t ** frames = h->frames.reference<br>while(*frames)<br>{<br> if( *frames->i_poc != received_poc)<br>
x264_frame_push_unused(h, x264_frame_shift(frames));<br> else<br> frames++<br>}<br><br>I have inserted this code in x264_encoder_encode function just before <br> if( x264_reference_update( h ) )<br>
return -1;<br>I is it the right code and right place? Do I need to do anything else for frame dropping?<br><br>I have checked h->frames.reference is a 16 size array, Does that mean x264 always keeps 16 frames in its DPB?<br>
<br>If I find that received_poc is 10 frames earlier ( aasume poc=n) than the current frame to be encoded and if it is available in my DPB then after encoding at my client's decoder reference buffer will that nth frame be still available for referencing?<br>
<br>Thanks<br>Arindam<br><br>