diff options
-rw-r--r-- | libavcodec/rv10.c | 34 | ||||
-rw-r--r-- | libavformat/mp3.c | 3 | ||||
-rw-r--r-- | libavformat/raw.c | 20 |
3 files changed, 21 insertions, 36 deletions
diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c index e1e8287..ece6f90 100644 --- a/libavcodec/rv10.c +++ b/libavcodec/rv10.c @@ -539,43 +539,29 @@ static int rv10_decode_init(AVCodecContext *avctx) s->h263_long_vectors= ((uint8_t*)avctx->extradata)[3] & 1; avctx->sub_id= AV_RB32((uint8_t*)avctx->extradata + 4); - switch(avctx->sub_id){ - case 0x10000000: + if (avctx->sub_id == 0x10000000) { s->rv10_version= 0; s->low_delay=1; - break; - case 0x10002000: + } else if (avctx->sub_id == 0x10002000) { s->rv10_version= 3; s->low_delay=1; s->obmc=1; - break; - case 0x10003000: + } else if (avctx->sub_id == 0x10003000) { s->rv10_version= 3; s->low_delay=1; - break; - case 0x10003001: + } else if (avctx->sub_id == 0x10003001) { s->rv10_version= 3; s->low_delay=1; - break; - case 0x20001000: /* real rv20 decoder fail on this id */ - /*case 0x20100001: - case 0x20101001: - case 0x20103001:*/ - case 0x20100000 ... 0x2019ffff: + } else if ( avctx->sub_id == 0x20001000 + || (avctx->sub_id >= 0x20100000 && avctx->sub_id < 0x201a0000)) { s->low_delay=1; - break; - /*case 0x20200002: - case 0x20201002: - case 0x20203002:*/ - case 0x20200002 ... 0x202fffff: - case 0x30202002: - case 0x30203002: + } else if ( avctx->sub_id == 0x30202002 + || avctx->sub_id == 0x30203002 + || (avctx->sub_id >= 0x20200002 && avctx->sub_id < 0x20300000)) { s->low_delay=0; s->avctx->has_b_frames=1; - break; - default: + } else av_log(s->avctx, AV_LOG_ERROR, "unknown header %X\n", avctx->sub_id); - } if(avctx->debug & FF_DEBUG_PICT_INFO){ av_log(avctx, AV_LOG_DEBUG, "ver:%X ver0:%X\n", avctx->sub_id, avctx->extradata_size >= 4 ? ((uint32_t*)avctx->extradata)[0] : -1); diff --git a/libavformat/mp3.c b/libavformat/mp3.c index 04e8bcf..8d63f92 100644 --- a/libavformat/mp3.c +++ b/libavformat/mp3.c @@ -234,7 +234,8 @@ static void id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t fl taghdrlen = 6; break; - case 3 ... 4: + case 3: + case 4: isv34 = 1; taghdrlen = 10; break; diff --git a/libavformat/raw.c b/libavformat/raw.c index 1057aac..7d1fafd 100644 --- a/libavformat/raw.c +++ b/libavformat/raw.c @@ -366,17 +366,15 @@ static int mpeg4video_probe(AVProbeData *probe_packet) for(i=0; i<probe_packet->buf_size; i++){ temp_buffer = (temp_buffer<<8) + probe_packet->buf[i]; - if ((temp_buffer & 0xffffff00) == 0x100) { - switch(temp_buffer){ - case VOP_START_CODE: VOP++; break; - case VISUAL_OBJECT_START_CODE: VISO++; break; - case 0x100 ... 0x11F: VO++; break; - case 0x120 ... 0x12F: VOL++; break; - case 0x130 ... 0x1AF: - case 0x1B7 ... 0x1B9: - case 0x1C4 ... 0x1FF: res++; break; - } - } + if ((temp_buffer & 0xffffff00) != 0x100) + continue; + + if (temp_buffer == VOP_START_CODE) VOP++; + else if (temp_buffer == VISUAL_OBJECT_START_CODE) VISO++; + else if (temp_buffer < 0x120) VO++; + else if (temp_buffer < 0x130) VOL++; + else if ( !(0x1AF < temp_buffer && temp_buffer < 0x1B7) + && !(0x1B9 < temp_buffer && temp_buffer < 0x1C4)) res++; } if ( VOP >= VISO && VOP >= VOL && VO >= VOL && VOL > 0 && res==0) |