+ /* We have block group let's check if the picture is a keyframe */
+ else if( *pb_key_picture )
+ {
+ switch(tracks[i_tk]->fmt.i_codec)
+ {
+ case VLC_CODEC_THEORA:
+ {
+ DataBuffer *p_data = &pp_block->GetBuffer(0);
+ size_t sz = p_data->Size();
+ const uint8_t * p_buff = p_data->Buffer();
+ /* if the second bit of a Theora frame is 1
+ it's not a keyframe */
+ if( sz && p_buff )
+ {
+ if( p_buff[0] & 0x40 )
+ *pb_key_picture = false;
+ }
+ else
+ *pb_key_picture = false;
+ break;
+ }
+ }
+ }