Hi,
Am 30.06.2010 16:47, schrieb Senufo:
I read the ISO / IEC 13818-2: 1995 for trying to better understand how is the detection of I-frames. In Chapter 6.2 the header image will begin by picture_start_code in remux.c
if (scan == 0x00000100) (/ / Picture Start Code
If I understand the detection of the i-frame is in the picture_coding_type according to Table 6-12
picture_coding_type / coding method 000 / forbidden 001 / intra-coded (I) 010 / predictive-coded (P) 011 / bidirectionally-predictive-coded (B) 100 / Shall Not Be Used (dc intra-coded (D) in ISO/IEC11172- 2) 101 / reserved 110 / reserved 111 / reserved
I do not understand this line of code:
independentFrame = ((Data [i +2]>> 3) & 0x07) == 1 / / I-Frame
thank you for your answers
Chapter 6.2.3 explains the picture header:
picture_header() No. of bits Mnemonic
picture_start_code 32 bslbf temporal_reference 10 uimsbf picture_coding_type 3 uimsbf vbv_delay 16 uimsbf
Data[i + 2] contains 2 LSB of temporal_reference (t), picture_coding_type (P) and 3 MSB of vbv_delay (v).
So the bits of byte Data[i + 2] look like that:
ttPPPvvv
And the above code does:
3 000ttPPP
& 0x07 00000PPP == 1 00000001
If you put 001 for an I frame from the above table for PPP you see the equation matches.
Bye.