diff dec_video.c @ 1429:8986d06b2816

contrast/brightness/etc patch (temporary)
author arpi
date Wed, 01 Aug 2001 01:02:33 +0000
parents d02e0dcaf077
children 1728d249c783
line wrap: on
line diff
--- a/dec_video.c	Tue Jul 31 23:18:16 2001 +0000
+++ b/dec_video.c	Wed Aug 01 01:02:33 2001 +0000
@@ -84,6 +84,58 @@
 }
 #endif
 
+int get_video_quality_max(sh_video_t *sh_video){
+ switch(sh_video->codec->driver){
+#ifdef USE_DIRECTSHOW
+  case VFM_DSHOW:
+      return 4;
+#endif
+#ifdef MPEG12_POSTPROC
+  case VFM_MPEG:
+#endif
+  case VFM_DIVX4:
+  case VFM_ODIVX:
+      return 6;
+ }
+ return 0;
+}
+
+void set_video_quality(sh_video_t *sh_video,int quality){
+ switch(sh_video->codec->driver){
+#ifdef ARCH_X86
+#ifdef USE_DIRECTSHOW
+  case VFM_DSHOW: {
+   if(quality<0 || quality>4) quality=4;
+   DS_SetValue_DivX("Quality",quality);
+  }
+  break;
+#endif
+#endif
+#ifdef MPEG12_POSTPROC
+  case VFM_MPEG: {
+   if(quality<0 || quality>6) quality=6;
+   picture->pp_options=(1<<quality)-1;
+  }
+  break;
+#endif
+  case VFM_DIVX4:
+  case VFM_ODIVX: {
+   DEC_SET dec_set;
+   if(quality<0 || quality>6) quality=6;
+   dec_set.postproc_level=(1<<quality)-1;
+   decore(0x123,DEC_OPT_SETPP,&dec_set,NULL);
+  }
+  break;
+ }
+}
+
+int set_video_colors(sh_video_t *sh_video,char *item,int value){
+    if(!strcmp(sh_video->codec->name,"divxds")){
+	DS_SetValue_DivX(item,value);
+	return 1;
+    }
+    return 0;
+}
 
 int init_video(sh_video_t *sh_video){
 unsigned int out_fmt=sh_video->codec->outfmt[sh_video->outfmtidx];