Opened 17 years ago
Closed 15 years ago
#4653 closed enhancement (fixed)
Allow Enable/Disable of deblocking loopfilter for h.264 ffmpeg (BBC HD support)
Reported by: | reidjr_at_lineone_net | Owned by: | JYA |
---|---|---|---|
Priority: | minor | Milestone: | 0.24 |
Component: | MythTV - Video Playback | Version: | head |
Severity: | medium | Keywords: | h.264 skip loop filter BBC HD |
Cc: | stuartm | Ticket locked: | yes |
Description
Adds a selct box in the videoprofile settings that will enable/disable the de-blocking loopfilter for h.264 ffmpeg. Disabling the deblocking loop filter makes a significant diffrence to cpu load for h.264 decoding. When used with both CPU's of a core2duo e4300, disabling the loopfilter will allow playing back BBC HD at 60-70% of both cores. With th eloopfilter active (current default) then frames are dropped. As the setting is part of the videoprofile, it can selectively be used for HD.
Attachments (8)
Change History (23)
Changed 17 years ago by
Attachment: | skip_loopfilter_settings.diff added |
---|
comment:1 Changed 17 years ago by
Milestone: | unknown → 0.22 |
---|---|
Owner: | changed from Isaac Richards to Janne Grunau |
Status: | new → assigned |
I'll work on a general way of setting avcodec options
Changed 17 years ago by
Attachment: | skiplooppatch_16446.diff.txt added |
---|
Patch updated to work with 16446 for anyone interested
comment:2 Changed 17 years ago by
Cc: | stuartm added |
---|
comment:3 Changed 17 years ago by
Owner: | changed from Janne Grunau to stuartm |
---|---|
Version: | unknown → head |
comment:4 Changed 16 years ago by
Owner: | changed from stuartm to Janne Grunau |
---|---|
Status: | assigned → started |
Changed 16 years ago by
Attachment: | 25_skiploop_option.dpatch added |
---|
Updated the patch to work if you only have one playback thread. Thanks to janneg for pointing this out
comment:5 Changed 15 years ago by
Milestone: | 0.22 → 0.23 |
---|---|
Status: | started → accepted |
deprecated started state
Changed 15 years ago by
Attachment: | 26_updated_skiploop_options.dpatch added |
---|
Changed 15 years ago by
Attachment: | 27_minimal_skiploop.dpatch added |
---|
comment:6 follow-up: 7 Changed 15 years ago by
I've updated the patch for trunk, as it looks like it will miss another release. I have also added a really minimalist patch. which just hard codes the loopfilter off.
There is a strange thing I am seing though. Without the patch, multithreading h264 doesnt work, whatever you set max CPUs to. With the patch Setting the loopfilter option to off, doesnt save any overall cpu load, but does allow multithreading to work. Looks like either ffmpeg or underlying code has changed.
I would suggest only applying this patch if you have multi-core cpu.
comment:7 Changed 15 years ago by
Replying to reidjr_at_lineone_net:
There is a strange thing I am seing though. Without the patch, multithreading h264 doesnt work, whatever you set max CPUs to. With the patch Setting the loopfilter option to off, doesnt save any overall cpu load, but does allow multithreading to work. Looks like either ffmpeg or underlying code has changed.
The deblocking loop filter can prevent the slice paralell decoding. It's a known limitation of ffmpeg's slice level multithreaded decoding.
comment:8 Changed 15 years ago by
Ok, as multi cpu / thread decoding doesnt work with loop filter enabled, a really trivial patch for those in the UK that need it. Sett max CPUs to more than 1 and the loop filter is disabled, and multiple threading is enabled for BBC-HD, and although ITV-HD stays single threaded, the cpu load is reduced.
comment:9 Changed 15 years ago by
Component: | mythtv → MythTV - Video Playback |
---|
comment:11 Changed 15 years ago by
This is a welcome tradeoff for me. I would rather see my HD-content in slightly reduced quality than jittering at ~46fps (or 0.9x which also works for me :)
The patch is pretty small, how come it has not been included yet? 2 (two) years down the line.
comment:12 Changed 15 years ago by
Ticket locked: | set |
---|
comment:14 Changed 15 years ago by
Owner: | changed from Janne Grunau to JYA |
---|---|
Status: | accepted → assigned |
comment:15 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed in r23981
Add ability to disable the deblocking skiploop filter for h264 decoding. This will speedup h264 decoding, but may drastically reduce quality. Original patch from reidjr_at_lineone_net with various other contributors. Thank you all
Reduce CPU load h.264 ffmpeg decoding.