Ticket #4653: skip_loopfilter_settings.diff
File skip_loopfilter_settings.diff, 9.7 KB (added by , 16 years ago) |
---|
-
libs/libmythtv/avformatdecoder.cpp
1446 1446 vdp.SetInput(QSize(width, height)); 1447 1447 QString dec = vdp.GetDecoder(); 1448 1448 uint thread_count = vdp.GetMaxCPUs(); 1449 bool skip_loop_filter = vdp.IsSkipLoopEnabled(); 1449 1450 VERBOSE(VB_PLAYBACK, QString("Using %1 CPUs for decoding") 1450 1451 .arg(ENABLE_THREADS ? thread_count : 1)); 1451 1452 … … 1453 1454 { 1454 1455 avcodec_thread_init(enc, thread_count); 1455 1456 enc->thread_count = thread_count; 1457 if (!skip_loop_filter) 1458 enc->skip_loop_filter = AVDISCARD_ALL; 1459 1456 1460 } 1457 1461 1458 1462 bool handled = false; -
libs/libmythtv/videodisplayprofile.h
83 83 84 84 uint GetMaxCPUs(void) const; 85 85 86 bool IsSkipLoopEnabled(void) const 87 { return GetPreference("pref_skiploop").toInt(); } 88 86 89 QString GetVideoRenderer(void) const 87 90 { return GetPreference("pref_videorenderer"); } 88 91 … … 124 127 uint grpid, uint priority, 125 128 QString cmp0, uint width0, uint height0, 126 129 QString cmp1, uint width1, uint height1, 127 QString decoder, uint max_cpus, QString videorenderer,130 QString decoder, uint max_cpus, bool skiploop, QString videorenderer, 128 131 QString osdrenderer, bool osdfade, 129 132 QString deint0, QString deint1, QString filters); 130 133 -
libs/libmythtv/videodisplayprofile.cpp
170 170 QString cmp1 = Get("pref_cmp1"); 171 171 QString decoder = Get("pref_decoder"); 172 172 uint max_cpus = Get("pref_max_cpus").toUInt(); 173 bool skiploop = Get("pref_skiploop").toInt(); 173 174 QString renderer = Get("pref_videorenderer"); 174 175 QString osd = Get("pref_osdrenderer"); 175 176 QString deint0 = Get("pref_deint0"); … … 177 178 QString filter = Get("pref_filters"); 178 179 bool osdfade = Get("pref_osdfade").toInt(); 179 180 180 QString str = QString("cmp(%1%2) dec(%3) cpus(%4) rend(%5) ")181 QString str = QString("cmp(%1%2) dec(%3) cpus(%4) skiploop(%5) rend(%6) ") 181 182 .arg(cmp0).arg(QString(cmp1.isEmpty() ? "" : ",") + cmp1) 182 .arg(decoder).arg(max_cpus).arg( renderer);183 .arg(decoder).arg(max_cpus).arg((skiploop) ? "enabled" : "disabled").arg(renderer); 183 184 str += QString("osd(%1) osdfade(%2) deint(%3,%4) filt(%5)") 184 185 .arg(osd).arg((osdfade) ? "enabled" : "disabled") 185 186 .arg(deint0).arg(deint1).arg(filter); … … 773 774 uint groupid, uint priority, 774 775 QString cmp0, uint width0, uint height0, 775 776 QString cmp1, uint width1, uint height1, 776 QString decoder, uint max_cpus, QString videorenderer,777 QString decoder, uint max_cpus, bool skiploop, QString videorenderer, 777 778 QString osdrenderer, bool osdfade, 778 779 QString deint0, QString deint1, QString filters) 779 780 { … … 819 820 queryValue += "pref_max_cpus"; 820 821 queryData += QString::number(max_cpus); 821 822 823 queryValue += "pref_skiploop"; 824 queryData += (skiploop) ? "1" : "0"; 825 822 826 queryValue += "pref_videorenderer"; 823 827 queryData += videorenderer; 824 828 … … 900 904 901 905 uint groupid = CreateProfileGroup("CPU++", hostname); 902 906 CreateProfile(groupid, 1, ">", 0, 0, "", 0, 0, 903 "ffmpeg", 1, "xv-blit", "softblend", true,907 "ffmpeg", 1, true, "xv-blit", "softblend", true, 904 908 "bobdeint", "linearblend", ""); 905 909 CreateProfile(groupid, 2, ">", 0, 0, "", 0, 0, 906 "ffmpeg", 1, "quartz-blit", "softblend", true,910 "ffmpeg", 1, true, "quartz-blit", "softblend", true, 907 911 "linearblend", "linearblend", ""); 908 912 909 913 groupid = CreateProfileGroup("CPU+", hostname); 910 914 CreateProfile(groupid, 1, "<=", 720, 576, ">", 0, 0, 911 "ffmpeg", 1, "xv-blit", "softblend", true,915 "ffmpeg", 1, true, "xv-blit", "softblend", true, 912 916 "bobdeint", "linearblend", ""); 913 917 CreateProfile(groupid, 2, "<=", 1280, 720, ">", 720, 576, 914 "xvmc", 1, "xvmc-blit", "opengl", true,918 "xvmc", 1, true, "xvmc-blit", "opengl", true, 915 919 "bobdeint", "onefield", ""); 916 920 CreateProfile(groupid, 3, "<=", 1280, 720, ">", 720, 576, 917 "libmpeg2", 1, "xv-blit", "softblend", true,921 "libmpeg2", 1, true, "xv-blit", "softblend", true, 918 922 "bobdeint", "onefield", ""); 919 923 CreateProfile(groupid, 4, ">", 0, 0, "", 0, 0, 920 "xvmc", 1, "xvmc-blit", "ia44blend", false,924 "xvmc", 1, true, "xvmc-blit", "ia44blend", false, 921 925 "bobdeint", "onefield", ""); 922 926 CreateProfile(groupid, 5, ">", 0, 0, "", 0, 0, 923 "libmpeg2", 1, "xv-blit", "chromakey", false,927 "libmpeg2", 1, true, "xv-blit", "chromakey", false, 924 928 "bobdeint", "onefield", ""); 925 929 926 930 groupid = CreateProfileGroup("CPU--", hostname); 927 931 CreateProfile(groupid, 1, "<=", 720, 576, ">", 0, 0, 928 "ivtv", 1, "ivtv", "ivtv", true,932 "ivtv", 1, true, "ivtv", "ivtv", true, 929 933 "none", "none", ""); 930 934 CreateProfile(groupid, 2, "<=", 720, 576, ">", 0, 0, 931 "xvmc", 1, "xvmc-blit", "ia44blend", false,935 "xvmc", 1, true, "xvmc-blit", "ia44blend", false, 932 936 "bobdeint", "onefield", ""); 933 937 CreateProfile(groupid, 3, "<=", 1280, 720, ">", 720, 576, 934 "xvmc", 1, "xvmc-blit", "ia44blend", false,938 "xvmc", 1, true, "xvmc-blit", "ia44blend", false, 935 939 "bobdeint", "onefield", ""); 936 940 CreateProfile(groupid, 4, ">", 0, 0, "", 0, 0, 937 "xvmc", 1, "xvmc-blit", "ia44blend", false,941 "xvmc", 1, true, "xvmc-blit", "ia44blend", false, 938 942 "bobdeint", "onefield", ""); 939 943 CreateProfile(groupid, 5, ">", 0, 0, "", 0, 0, 940 "libmpeg2", 1, "xv-blit", "chromakey", false,944 "libmpeg2", 1, true, "xv-blit", "chromakey", false, 941 945 "none", "none", ""); 942 946 } 943 947 -
programs/mythfrontend/globalsettings.cpp
848 848 height[1] = new TransSpinBoxSetting(0, 1088, 64, true); 849 849 decoder = new TransComboBoxSetting(); 850 850 max_cpus = new TransSpinBoxSetting(1, ENABLE_THREADS ? 4 : 1, 1, true); 851 skiploop = new TransCheckBoxSetting(); 851 852 vidrend = new TransComboBoxSetting(); 852 853 osdrend = new TransComboBoxSetting(); 853 854 osdfade = new TransCheckBoxSetting(); … … 881 882 882 883 decoder->setLabel(tr("Decoder")); 883 884 max_cpus->setLabel(tr("Max CPUs")); 885 skiploop->setLabel(tr("Loopfilter")); 884 886 vidrend->setLabel(tr("Video Renderer")); 885 887 osdrend->setLabel(tr("OSD Renderer")); 886 888 osdfade->setLabel(tr("OSD Fade")); … … 896 898 filters->setHelpText( 897 899 QObject::tr("Example Custom filter list: 'ivtc,denoise3d'")); 898 900 901 skiploop->setHelpText( 902 tr("When unchecked the deblocking loopfilter will be disabled " 903 "for h264 decoding.") + "\n" + 904 tr("Disabling will significantly reduce the load on the CPU " 905 "when watching HD h264.")); 906 899 907 osdfade->setHelpText( 900 908 tr("When unchecked the OSD will not fade away but instead " 901 909 "will disappear abruptly.") + "\n" + … … 904 912 905 913 vid_row->addChild(decoder); 906 914 vid_row->addChild(max_cpus); 915 vid_row->addChild(skiploop); 907 916 vid_row->addChild(vidrend); 908 917 909 918 osd_row->addChild(osdrend); … … 955 964 956 965 QString pdecoder = item.Get("pref_decoder"); 957 966 QString pmax_cpus = item.Get("pref_max_cpus"); 967 QString pskiploop = item.Get("pref_skiploop"); 958 968 QString prenderer = item.Get("pref_videorenderer"); 959 969 QString posd = item.Get("pref_osdrenderer"); 960 970 QString posdfade = item.Get("pref_osdfade"); … … 982 992 983 993 if (!pmax_cpus.isEmpty()) 984 994 max_cpus->setValue(pmax_cpus.toUInt()); 995 996 skiploop->setValue((!pskiploop.isEmpty()) ? (bool) pskiploop.toInt() : true); 997 985 998 if (!prenderer.isEmpty()) 986 999 vidrend->setValue(prenderer); 987 1000 if (!posd.isEmpty()) … … 1015 1028 1016 1029 item.Set("pref_decoder", decoder->getValue()); 1017 1030 item.Set("pref_max_cpus", max_cpus->getValue()); 1031 item.Set("pref_skiploop", (skiploop->boolValue()) ? "1" : "0"); 1018 1032 item.Set("pref_videorenderer", vidrend->getValue()); 1019 1033 item.Set("pref_osdrenderer", osdrend->getValue()); 1020 1034 item.Set("pref_osdfade", (osdfade->boolValue()) ? "1" : "0"); -
programs/mythfrontend/globalsettings.h
87 87 TransSpinBoxSetting *height[2]; 88 88 TransComboBoxSetting *decoder; 89 89 TransSpinBoxSetting *max_cpus; 90 TransCheckBoxSetting *skiploop; 90 91 TransComboBoxSetting *vidrend; 91 92 TransComboBoxSetting *osdrend; 92 93 TransCheckBoxSetting *osdfade;