Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@

**<span style="color:#56adda">0.1.19</span>**
- adds the -reinit_filter:0 option for all decode modes of vaapi and qsv when h/w encode is used.
- Needed since vaapi & qsv use hwupload to get the frame into GPU memory and will generate an error if reinit_filter is not set to 0

**<span style="color:#56adda">0.1.18</span>**
- adds similar logic for qsv and vaapi as was done for nvenc in 0.1.17
- adds new qsv_safe_decode and vaapi_safe_decode options to the respective encoders
Expand Down
2 changes: 1 addition & 1 deletion info.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@
"on_worker_process": 1
},
"tags": "video,ffmpeg",
"version": "0.1.18"
"version": "0.1.19"
}
5 changes: 2 additions & 3 deletions lib/encoders/qsv.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,11 @@ def generate_default_args(self):
"""
# Encode only (no decoding)
# REF: https://trac.ffmpeg.org/wiki/Hardware/QuickSync#Transcode
# set reinit_filter here for both h/w & s/w decode paths as both use hwupload
generic_kwargs = {
"-init_hw_device": "qsv=qsv0",
"-filter_hw_device": "qsv0",
"-reinit_filter": "0",
}
advanced_kwargs = {}
# Check if we are using a HW accelerated decoder> Modify args as required
Expand All @@ -178,9 +180,6 @@ def generate_default_args(self):
"-hwaccel_output_format": "qsv",
})

if self.settings.get_setting('qsv_safe_decode'):
generic_kwargs["-reinit_filter"] = "0"

return generic_kwargs, advanced_kwargs

def generate_filtergraphs(self, current_filter_args, smart_filters, encoder_name):
Expand Down
5 changes: 2 additions & 3 deletions lib/encoders/vaapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,12 +127,14 @@ def generate_default_args(self):
dev_id = 'vaapi0'
# Configure args such that when the input may or may not be able to be decoded with hardware we can do:
# REF: https://trac.ffmpeg.org/wiki/Hardware/VAAPI#Encoding
# set reinit_filter here for both h/w & s/w decode paths as both use hwupload
generic_kwargs = {
"-init_hw_device": "vaapi={}:{}".format(dev_id, hardware_device.get('hwaccel_device_path')),
"-hwaccel": "vaapi",
"-hwaccel_output_format": "vaapi",
"-hwaccel_device": dev_id,
"-filter_hw_device": dev_id,
"-reinit_filter": "0",
}
advanced_kwargs = {}
else:
Expand All @@ -143,9 +145,6 @@ def generate_default_args(self):
}
advanced_kwargs = {}

if self.settings.get_setting('vaapi_safe_decode'):
generic_kwargs["-reinit_filter"] = "0"

return generic_kwargs, advanced_kwargs

def generate_filtergraphs(self, current_filter_args, smart_filters, encoder_name):
Expand Down