void ff_clean_h263_qscales(MpegEncContext *s);
int ff_h263_resync(MpegEncContext *s);
-const uint8_t *ff_h263_find_resync_marker(MpegEncContext *s, const uint8_t *p, const uint8_t *end);
int ff_h263_get_gob_height(MpegEncContext *s);
void ff_h263_encode_motion(MpegEncContext * s, int val, int f_code);
}
/**
- * Find the next resync_marker.
- * @param p pointer to buffer to scan
- * @param end pointer to the end of the buffer
- * @return pointer to the next resync_marker, or end if none was found
- */
-const uint8_t *ff_h263_find_resync_marker(MpegEncContext *s, const uint8_t *av_restrict p, const uint8_t *av_restrict end)
-{
- av_assert2(p < end);
-
- end-=2;
- p++;
- if(s->resync_marker){
- int prefix_len = ff_mpeg4_get_video_packet_prefix_length(s);
- for(;p<end; p+=2){
- if(!*p){
- if (!p[-1] && ((p[1] >> (23-prefix_len)) == 1)) return p - 1;
- else if (!p[ 1] && ((p[2] >> (23-prefix_len)) == 1)) return p;
- }
- }
- }
- return end+2;
-}
-
-/**
* Decode the group of blocks / video packet header.
* @return bit position of the resync_marker, or <0 if none was found
*/