$OpenBSD: patch-libmpdemux_demuxer_c,v 1.3 2006/01/17 07:41:58 jakemsr Exp $
--- libmpdemux/demuxer.c.orig	Sun Apr  3 07:08:26 2005
+++ libmpdemux/demuxer.c	Sun Dec 25 19:45:16 2005
@@ -168,7 +168,7 @@ extern int tv_param_on;
 
 extern int demux_tv_fill_buffer(demuxer_t *demux, demux_stream_t *ds);
 extern int demux_open_tv(demuxer_t *demuxer);
-#if defined(USE_TV) && (defined(HAVE_TV_V4L) || defined(HAVE_TV_V4L2))
+#if defined(USE_TV) && (defined(HAVE_TV_V4L) || defined(HAVE_TV_V4L2) || defined(HAVE_TV_BSDBT848))
 extern void demux_close_tv(demuxer_t *demuxer);
 #endif
 #endif
@@ -199,7 +199,7 @@ void free_demuxer(demuxer_t *demuxer){
       demux_close_nuv(demuxer); break;
     case DEMUXER_TYPE_MPEG_TY:
       demux_close_ty(demuxer); break;
-#if defined(USE_TV) && (defined(HAVE_TV_V4L) || defined(HAVE_TV_V4L2))
+#if defined(USE_TV) && (defined(HAVE_TV_V4L) || defined(HAVE_TV_V4L2) || defined(HAVE_TV_BSDBT848))
     case DEMUXER_TYPE_TV:
 	demux_close_tv(demuxer); break;
 #endif
@@ -1350,7 +1350,12 @@ switch(file_format){
 
  case DEMUXER_TYPE_MPEG_TY: 
  case DEMUXER_TYPE_MPEG_PS: {
-  sh_video=d_video->sh;sh_video->ds=d_video;
+  if (d_video)
+    sh_video=d_video->sh;
+  else
+    sh_video = NULL;
+  if (sh_video)
+    sh_video->ds=d_video;
 //  if(demuxer->stream->type!=STREAMTYPE_VCD) demuxer->movi_start=0; // for VCD
 
   if(audio_id!=-2) {
@@ -1404,8 +1409,8 @@ pts_from_bps=0; // !!!
 if ((sh_video=demuxer->video->sh) && sh_video->bih)
   mp_msg(MSGT_DEMUX,MSGL_INFO,"VIDEO:  [%.4s]  %ldx%ld  %dbpp  %5.3f fps  %5.1f kbps (%4.1f kbyte/s)\n",
     (char *)&sh_video->bih->biCompression,
-    sh_video->bih->biWidth,
-    sh_video->bih->biHeight,
+    (long) sh_video->bih->biWidth,
+    (long) sh_video->bih->biHeight,
     sh_video->bih->biBitCount,
     sh_video->fps,
     sh_video->i_bps*0.008f,
