Browse Source

Check resync marker only when enabled.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.1
Anuj Mittal Michael Niedermayer 12 years ago
parent
commit
ce19aec15b
3 changed files with 9 additions and 7 deletions
  1. +1
    -1
      libavcodec/h263.h
  2. +1
    -1
      libavcodec/h263dec.c
  3. +7
    -5
      libavcodec/ituh263dec.c

+ 1
- 1
libavcodec/h263.h View File

@@ -110,7 +110,7 @@ int av_const h263_get_picture_format(int width, int height);

void ff_clean_h263_qscales(MpegEncContext *s);
int ff_h263_resync(MpegEncContext *s);
const uint8_t *ff_h263_find_resync_marker(const uint8_t *p, const uint8_t *end);
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);



+ 1
- 1
libavcodec/h263dec.c View File

@@ -170,7 +170,7 @@ static int decode_slice(MpegEncContext *s){

if (s->avctx->hwaccel) {
const uint8_t *start= s->gb.buffer + get_bits_count(&s->gb)/8;
const uint8_t *end = ff_h263_find_resync_marker(start + 1, s->gb.buffer_end);
const uint8_t *end = ff_h263_find_resync_marker(s, start + 1, s->gb.buffer_end);
skip_bits_long(&s->gb, 8*(end - start));
return s->avctx->hwaccel->decode_slice(s->avctx, start, end - start);
}


+ 7
- 5
libavcodec/ituh263dec.c View File

@@ -207,16 +207,18 @@ static int h263_decode_gob_header(MpegEncContext *s)
* @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(const uint8_t *av_restrict p, const uint8_t *av_restrict end)
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++;
for(;p<end; p+=2){
if(!*p){
if (!p[-1] && p[1]) return p - 1;
else if(!p[ 1] && p[2]) return p;
if(s->resync_marker){
for(;p<end; p+=2){
if(!*p){
if (!p[-1] && p[1]) return p - 1;
else if(!p[ 1] && p[2]) return p;
}
}
}
return end+2;


Loading…
Cancel
Save