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. -- Dipl.-Inform. (FH) Reinhard Nissl mailto:rnissl@xxxxxx _______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr