+int hb_dvd_angle_count( hb_dvd_t * d );
+void hb_dvd_set_angle( hb_dvd_t * d, int angle );
+int hb_dvd_main_feature( hb_dvd_t * d, hb_list_t * list_title );
+
+hb_bd_t * hb_bd_init( char * path );
+int hb_bd_title_count( hb_bd_t * d );
+hb_title_t * hb_bd_title_scan( hb_bd_t * d, int t, uint64_t min_duration );
+int hb_bd_start( hb_bd_t * d, hb_title_t *title );
+void hb_bd_stop( hb_bd_t * d );
+int hb_bd_seek( hb_bd_t * d, float f );
+int hb_bd_seek_pts( hb_bd_t * d, uint64_t pts );
+int hb_bd_seek_chapter( hb_bd_t * d, int chapter );
+int hb_bd_read( hb_bd_t * d, hb_buffer_t * b );
+int hb_bd_chapter( hb_bd_t * d );
+void hb_bd_close( hb_bd_t ** _d );
+void hb_bd_set_angle( hb_bd_t * d, int angle );
+int hb_bd_main_feature( hb_bd_t * d, hb_list_t * list_title );
+
+hb_stream_t * hb_bd_stream_open( hb_title_t *title );
+hb_stream_t * hb_stream_open( char * path, hb_title_t *title );
+void hb_stream_close( hb_stream_t ** );
+hb_title_t * hb_stream_title_scan( hb_stream_t *);
+int hb_stream_read( hb_stream_t *, hb_buffer_t *);
+int hb_stream_seek( hb_stream_t *, float );
+int hb_stream_seek_ts( hb_stream_t * stream, int64_t ts );
+int hb_stream_seek_chapter( hb_stream_t *, int );
+int hb_stream_chapter( hb_stream_t * );
+
+int hb_ts_decode_pkt( hb_stream_t *stream, const uint8_t * pkt, hb_buffer_t *obuf );
+
+
+void * hb_ffmpeg_context( int codec_param );
+void * hb_ffmpeg_avstream( int codec_param );
+
+#define STR4_TO_UINT32(p) \
+ ((((const uint8_t*)(p))[0] << 24) | \
+ (((const uint8_t*)(p))[1] << 16) | \
+ (((const uint8_t*)(p))[2] << 8) | \
+ ((const uint8_t*)(p))[3])