
mythtv at cvs
Jan 17, 2005, 10:05 PM
Post #151 of 415
(8232 views)
Permalink
|
---------------------------------------------------------------------------- Changes committed by cpinkham on Tue Jan 18 01:03:32 2005 Modified Files: in mythtv/libs/libmythtv: NuppelVideoPlayer.cpp commercial_skip.cpp commercial_skip.h in mythtv/programs/mythfrontend: globalsettings.cpp Log Message: * Tweaks to Commercial Detection/Flagging code. - Code should now detect actual Blank frames rather than Black frames as was previously done. The method of detecting blank frames changed to detect the difference between min/max brightness rather than just checking for frames with a max brightness below a certain level. This seems to eliminate a lot of false positives and do better detection on dark shows and shows with black frames interspersed throughout the show. Tested with some problem episodes of shows such as CSI, Law & Order, Alien, and LAX. Works well on all of these except when CBS and/or the local affiliate decide to put their station logo on the blank frames before/after commercials. When logo information is present, this is accounted for and the frames are detected as being blank even with the logo present. This is useful in the new "All" detection method mentioned below. - Tighted up some of the commercial length checks for the blank frame detection method. - Bumped up border size for area that is ignored during commercial detection from a 10 pixel border to 20. - Added new "All" detection method. This detection method uses information from blank-frame, scene change, and logo detection and can easily be modified to take advantage of other detection information. It works in a fundamentally different way than the normal blank-frame and scene change methods. The code groups the frames into blocks separated by blank frames and rates each block based upon several factors such as the rate of scene change, what percentage of frames in the block have a logo present, how long/short the block is, etc.. Indications that a block is part of a commercial (such as very high rates of scene changes) lower the block's score, while indications that a block is part of the show (such as having a logo present on most frames) raise the block's score. In the end the blocks are looked at as a group and various bits of logic applied to make the final determination where commercials start and end. On most of the shows I've tested on, this method seems to be doing a much better job than just blank-frame or blank-frame plus scene-change (which I normally use). - The sample pixel spacing for the various detection methods now varies based upon the total number of pixels in the frame. Rather than being fixed at every-other-pixel, the code will now use a larger spacing for larger frames. This should help speedup flagging for people using higher frame sizes whether by choice or because of precompressed video as in HDTV, etc.. NOTE: The new "ALL" detection method has been running on my live production Myth system for the past week and a half or so, but if you're WAF is currently low, you might not want to switch to it just yet. I'm putting this out there so others can test to see if it is working better for them than the previously available detection methods. ----------------------------------------------------------------------------
|