changeset 4774:fc2f76964606

Patch: Improved raw encoding support in mencoder by Fredrik Kuivinen
author atmos4
date Wed, 20 Feb 2002 22:45:00 +0000
parents 976bf6a9ded5
children 080cf3df3e4e
files etc/codecs.conf libmpdemux/video.c
diffstat 2 files changed, 17 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/etc/codecs.conf	Wed Feb 20 22:43:34 2002 +0000
+++ b/etc/codecs.conf	Wed Feb 20 22:45:00 2002 +0000
@@ -861,6 +861,7 @@
   driver raw
   format 0x0
   format 0x20776172
+  format 0x42475218
   out BGR24 flip
 
 videocodec rawbgr15
@@ -869,6 +870,7 @@
   driver raw
   format 0x0
   format 0x20776172
+  format 0x4247520F
   out BGR15 flip
 
 videocodec null
--- a/libmpdemux/video.c	Wed Feb 20 22:43:34 2002 +0000
+++ b/libmpdemux/video.c	Wed Feb 20 22:45:00 2002 +0000
@@ -19,6 +19,9 @@
 #include "parse_es.h"
 #include "mpeg_hdr.h"
 
+/* biCompression constant */
+#define BI_RGB        0L
+
 static mp_mpeg_header_t picture;
 
 int video_read_properties(sh_video_t *sh_video){
@@ -28,8 +31,18 @@
 switch(d_video->demuxer->file_format){
  case DEMUXER_TYPE_AVI:
  case DEMUXER_TYPE_ASF: {
-  // display info:
-    sh_video->format=sh_video->bih->biCompression;
+  // display info: 
+  
+    if(sh_video->bih->biCompression == BI_RGB &&
+       (sh_video->video.fccHandler == mmioFOURCC('D', 'I', 'B', ' ') ||
+        sh_video->video.fccHandler == mmioFOURCC('R', 'G', 'B', ' ') ||
+        sh_video->video.fccHandler == mmioFOURCC('R', 'A', 'W', ' ') ||
+        sh_video->video.fccHandler == 0)) {
+                sh_video->format = mmioFOURCC(0, 'R', 'G', 'B') | sh_video->bih->biBitCount;
+    }
+    else 					    
+        sh_video->format=sh_video->bih->biCompression;
+
     sh_video->disp_w=sh_video->bih->biWidth;
     sh_video->disp_h=abs(sh_video->bih->biHeight);