Browse Source

const

Originally committed as revision 11800 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Aurelien Jacobs 18 years ago
parent
commit
60b6dbe716
1 changed files with 7 additions and 5 deletions
  1. +7
    -5
      libavcodec/vc1.c

+ 7
- 5
libavcodec/vc1.c View File

@@ -3776,7 +3776,7 @@ static void vc1_decode_blocks(VC1Context *v)
/** Find VC-1 marker in buffer /** Find VC-1 marker in buffer
* @return position where next marker starts or end of buffer if no marker found * @return position where next marker starts or end of buffer if no marker found
*/ */
static av_always_inline uint8_t* find_next_marker(uint8_t *src, uint8_t *end)
static av_always_inline const uint8_t* find_next_marker(const uint8_t *src, const uint8_t *end)
{ {
uint32_t mrk = 0xFFFFFFFF; uint32_t mrk = 0xFFFFFFFF;


@@ -3789,7 +3789,7 @@ static av_always_inline uint8_t* find_next_marker(uint8_t *src, uint8_t *end)
return end; return end;
} }


static av_always_inline int vc1_unescape_buffer(uint8_t *src, int size, uint8_t *dst)
static av_always_inline int vc1_unescape_buffer(const uint8_t *src, int size, uint8_t *dst)
{ {
int dsize = 0, i; int dsize = 0, i;


@@ -3862,8 +3862,10 @@ static int vc1_decode_init(AVCodecContext *avctx)
av_log(avctx, AV_LOG_INFO, "Read %i bits in overflow\n", -count); av_log(avctx, AV_LOG_INFO, "Read %i bits in overflow\n", -count);
} }
} else { // VC1/WVC1 } else { // VC1/WVC1
uint8_t *start = avctx->extradata, *end = avctx->extradata + avctx->extradata_size;
uint8_t *next; int size, buf2_size;
const uint8_t *start = avctx->extradata;
uint8_t *end = avctx->extradata + avctx->extradata_size;
const uint8_t *next;
int size, buf2_size;
uint8_t *buf2 = NULL; uint8_t *buf2 = NULL;
int seq_inited = 0, ep_inited = 0; int seq_inited = 0, ep_inited = 0;


@@ -3998,7 +4000,7 @@ static int vc1_decode_frame(AVCodecContext *avctx,
} }
} }
}else if(v->interlace && ((buf[0] & 0xC0) == 0xC0)){ /* WVC1 interlaced stores both fields divided by marker */ }else if(v->interlace && ((buf[0] & 0xC0) == 0xC0)){ /* WVC1 interlaced stores both fields divided by marker */
uint8_t *divider;
const uint8_t *divider;


divider = find_next_marker(buf, buf + buf_size); divider = find_next_marker(buf, buf + buf_size);
if((divider == (buf + buf_size)) || AV_RB32(divider) != VC1_CODE_FIELD){ if((divider == (buf + buf_size)) || AV_RB32(divider) != VC1_CODE_FIELD){


Loading…
Cancel
Save