Signed-off-by: Diego Biurrun <diego@biurrun.de>
Vittorio Giovara authored on 2013/09/21 00:28:04... | ... |
@@ -24,47 +24,55 @@ |
24 | 24 |
|
25 | 25 |
static int h264_probe(AVProbeData *p) |
26 | 26 |
{ |
27 |
- uint32_t code= -1; |
|
28 |
- int sps=0, pps=0, idr=0, res=0, sli=0; |
|
27 |
+ uint32_t code = -1; |
|
28 |
+ int sps = 0, pps = 0, idr = 0, res = 0, sli = 0; |
|
29 | 29 |
int i; |
30 | 30 |
|
31 |
- for(i=0; i<p->buf_size; i++){ |
|
32 |
- code = (code<<8) + p->buf[i]; |
|
31 |
+ for (i = 0; i < p->buf_size; i++) { |
|
32 |
+ code = (code << 8) + p->buf[i]; |
|
33 | 33 |
if ((code & 0xffffff00) == 0x100) { |
34 |
- int ref_idc= (code>>5)&3; |
|
35 |
- int type = code & 0x1F; |
|
36 |
- static const int8_t ref_zero[32]={ |
|
37 |
- 2, 0, 0, 0, 0,-1, 1,-1, |
|
38 |
- -1, 1, 1, 1, 1,-1, 2, 2, |
|
39 |
- 2, 2, 2, 0, 2, 2, 2, 2, |
|
40 |
- 2, 2, 2, 2, 2, 2, 2, 2 |
|
34 |
+ int ref_idc = (code >> 5) & 3; |
|
35 |
+ int type = code & 0x1F; |
|
36 |
+ static const int8_t ref_zero[] = { |
|
37 |
+ 2, 0, 0, 0, 0, -1, 1, -1, |
|
38 |
+ -1, 1, 1, 1, 1, -1, 2, 2, |
|
39 |
+ 2, 2, 2, 0, 2, 2, 2, 2, |
|
40 |
+ 2, 2, 2, 2, 2, 2, 2, 2 |
|
41 | 41 |
}; |
42 | 42 |
|
43 |
- if(code & 0x80) //forbidden bit |
|
43 |
+ if (code & 0x80) // forbidden_bit |
|
44 | 44 |
return 0; |
45 | 45 |
|
46 |
- if(ref_zero[type] == 1 && ref_idc) |
|
46 |
+ if (ref_zero[type] == 1 && ref_idc) |
|
47 | 47 |
return 0; |
48 |
- if(ref_zero[type] ==-1 && !ref_idc) |
|
48 |
+ if (ref_zero[type] == -1 && !ref_idc) |
|
49 | 49 |
return 0; |
50 |
- if(ref_zero[type] == 2) |
|
50 |
+ if (ref_zero[type] == 2) |
|
51 | 51 |
res++; |
52 | 52 |
|
53 |
- switch(type){ |
|
54 |
- case 1: sli++; break; |
|
55 |
- case 5: idr++; break; |
|
56 |
- case 7: |
|
53 |
+ switch (type) { |
|
54 |
+ case 1: |
|
55 |
+ sli++; |
|
56 |
+ break; |
|
57 |
+ case 5: |
|
58 |
+ idr++; |
|
59 |
+ break; |
|
60 |
+ case 7: |
|
57 | 61 |
if (p->buf[i + 2] & 0x03) |
58 | 62 |
return 0; |
59 | 63 |
sps++; |
60 | 64 |
break; |
61 |
- case 8: pps++; break; |
|
65 |
+ case 8: |
|
66 |
+ pps++; |
|
67 |
+ break; |
|
62 | 68 |
} |
63 | 69 |
} |
64 | 70 |
} |
65 |
- if(sps && pps && (idr||sli>3) && res<(sps+pps+idr)) |
|
66 |
- return AVPROBE_SCORE_EXTENSION + 1; // 1 more than .mpg |
|
71 |
+ |
|
72 |
+ if (sps && pps && (idr || sli > 3) && res < (sps + pps + idr)) |
|
73 |
+ return AVPROBE_SCORE_EXTENSION + 1; // 1 more than .mpg |
|
74 |
+ |
|
67 | 75 |
return 0; |
68 | 76 |
} |
69 | 77 |
|
70 |
-FF_DEF_RAWVIDEO_DEMUXER(h264 , "raw H.264 video", h264_probe, "h26l,h264,264", AV_CODEC_ID_H264) |
|
78 |
+FF_DEF_RAWVIDEO_DEMUXER(h264, "raw H.264 video", h264_probe, "h26l,h264,264", AV_CODEC_ID_H264) |