Originally committed as revision 876 to svn://svn.ffmpeg.org/ffmpeg/trunk
Michael Niedermayer authored on 2002/08/29 06:47:28... | ... |
@@ -290,7 +290,7 @@ static int rv10_decode_picture_header(MpegEncContext *s) |
290 | 290 |
else |
291 | 291 |
s->pict_type = I_TYPE; |
292 | 292 |
//printf("h:%d ver:%d\n",h,s->rv10_version); |
293 |
-if(!marker) printf("marker missing\n"); |
|
293 |
+ if(!marker) printf("marker missing\n"); |
|
294 | 294 |
pb_frame = get_bits(&s->gb, 1); |
295 | 295 |
|
296 | 296 |
#ifdef DEBUG |
... | ... |
@@ -335,12 +335,9 @@ if(!marker) printf("marker missing\n"); |
335 | 335 |
} |
336 | 336 |
unk= get_bits(&s->gb, 3); /* ignored */ |
337 | 337 |
//printf("%d\n", unk); |
338 |
-s->h263_long_vectors = s->mb_num<100; //FIXME check if this is ok (100 i just guessed) |
|
339 | 338 |
s->f_code = 1; |
340 | 339 |
s->unrestricted_mv = 1; |
341 |
-#if 0 |
|
342 |
- s->h263_long_vectors = 1; |
|
343 |
-#endif |
|
340 |
+ |
|
344 | 341 |
return mb_count; |
345 | 342 |
} |
346 | 343 |
|
... | ... |
@@ -356,7 +353,27 @@ static int rv10_decode_init(AVCodecContext *avctx) |
356 | 356 |
s->height = avctx->height; |
357 | 357 |
|
358 | 358 |
s->h263_rv10 = 1; |
359 |
- s->rv10_version = avctx->sub_id; |
|
359 |
+ if(avctx->extradata_size >= 8){ |
|
360 |
+ switch(((uint32_t*)avctx->extradata)[1]){ |
|
361 |
+ case 0x10000000: |
|
362 |
+ s->rv10_version= 0; |
|
363 |
+ s->h263_long_vectors=0; |
|
364 |
+ break; |
|
365 |
+ case 0x10003000: |
|
366 |
+ s->rv10_version= 3; |
|
367 |
+ s->h263_long_vectors=1; |
|
368 |
+ break; |
|
369 |
+ case 0x10003001: |
|
370 |
+ s->rv10_version= 3; |
|
371 |
+ s->h263_long_vectors=0; |
|
372 |
+ break; |
|
373 |
+ default: |
|
374 |
+ fprintf(stderr, "unknown header %X\n", ((uint32_t*)avctx->extradata)[1]); |
|
375 |
+ } |
|
376 |
+ }else{ |
|
377 |
+ // for backward compatibility |
|
378 |
+ s->rv10_version= avctx->sub_id; |
|
379 |
+ } |
|
360 | 380 |
|
361 | 381 |
s->flags= avctx->flags; |
362 | 382 |
|