I have found that you need to pass --enable-local-file-access to the wkhtmltoimage in order to avoid this problem, so I have created a batch file with the following content and passed the name to the easyjasub: wkhtmltoimage.exe --enable-local-file-access %*
Yep! It works.
Found a case where the latest menu workaround still does not work - multiple chapter lists. Currently the plugin detects chapters by looking for \r\nMenu\r\n but it becomes /\r\nMenu #\d+\r\n/ when there are multiple chapter lists. Locally, I have fixed that by changing to \r\nMenu and that works for me but in theory it could break unless the whole line is parsed.
My fix for the missing chapters was to pull the data twice. First time pull it with no template and extract chapter information from the returned value and second time pull it with a template. Turns out that the MediaInfo's settings persist across invocations. The option method is an object method and not a class one so I did not realize that when you create a new object it will inherit template setting from the previously created object. Since the templated output lacks chapter information the second...
My fix for the missing chapters was to pull the data twice. First time pull it with no template and extract chapter information from the returned value and second time pull it with a template. Turns out that the MediaInfo settings persist across invocations. The option method is an object method and not a class one so I did not realize that when you create a new object it will inherit template setting from the previously created object. Since the templated output lacks chapter information the second...
&+][+{}&]+){}]+{ Turns out the MediaInfo configuration is a global singleton so the template settings need to be explicitly set to blank at the beginning to reset the settings from the previous call. Like this: if (get_mi_template(template_file)) { mi.Option(L"Inform", L""); // <-- the fix _info_text = mi.Inform(); size_t pos = _info_text.find(L"\r\nMenu\r\n"); if (pos != std::string::npos) menu = _info_text.substr(pos); mi.Option(L"Inform", template_file.c_str()); }
&+][+{}&]+){}]+{ Turns out the MediaInfo configuration is a global singleton so the template settings need to be explicitly set to blank at the beginning to reset the settings from previous call. Like this: if (get_mi_template(template_file)) { mi.Option(L"Inform", L""); // <-- the fix _info_text = mi.Inform(); size_t pos = _info_text.find(L"\r\nMenu\r\n"); if (pos != std::string::npos) menu = _info_text.substr(pos); mi.Option(L"Inform", template_file.c_str()); }
For the first item: Oringinal: In this case the hours are treated as key and the rest of the line as value ────────────────────────────────────────────────── Menu ────────────────────────────────────────────────── 00 : 00:00.000 : en:Chapter 1 00 : 18:09.000 : en:Chapter 2 00 : 33:27.000 : en:Chapter 3 00 : 41:58.000 : en:Chapter 4 00 : 52:01.000 : en:Chapter 5 ─────────────────────────────────────────────────── XMP ────────────────────────────────────────────────── New: The timestamp is kept together...