Dartium build on windows with ffmpeg

216 Views Asked by At

I am trying to build Dartium with proprietary codecs. I am running into a problem with "_ff_w64_guid_data". I did a google search, and the most it comes up with is that it is a bug with old versions of chromium, and it was fixed in later releases, unfortunately it doesn't go into how to actually fix it, as I am stuck with this version of chromium for Dartium.

I ran "set GYP_DEGINES=""proprietary_codecs=1 ffmpeg_branding=Chrome" before the standard instructions on https://github.com/dart-lang/sdk/wiki/Building-Dartium

Here is a copy of the build info.

C:\dart\dartium\src>.\dart\tools\dartium\build.py --mode=Release
Running:  ninja -j4 -C out\Release content_shell chrome blink_tests
ninja: Entering directory `out\Release'
[16/1415] LINK_EMBED delegate_execute.exe
uuid.lib(objidl_i.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
Generating code
Finished generating code
[32/1415] LINK_EMBED(DLL) chrome_child.dll
FAILED: chrome_child.dll chrome_child.dll.lib chrome_child.dll.pdb
C:\src\depot_tools\python276_bin\python.exe gyp-win-tool link-with-manifests environment.x86 True chrome_child.dll "C:\src\depot_tools\python276_bin\python.exe gyp-win-tool link-wrapper environment.x86 False link.exe /nologo /IMPLIB:chrome_child.dll.lib /DLL /OUT:chrome_child.dll @chrome_child.dll.rsp" 2 mt.exe rc.exe "obj\chrome\chrome_child_dll.chrome_child.dll.intermediate.manifest" obj\chrome\chrome_child_dll.chrome_child.dll.generated.manifest
uuid.lib(cguid_i.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
ffmpeg.lib(ffmpeg.wavdec.obj) : error LNK2001: unresolved external symbol _ff_w64_guid_data
chrome_child.dll : fatal error LNK1120: 1 unresolved externals
Traceback (most recent call last):
  File "gyp-win-tool", line 313, in <module>
    sys.exit(main(sys.argv[1:]))
  File "gyp-win-tool", line 29, in main
    exit_code = executor.Dispatch(args)
  File "gyp-win-tool", line 71, in Dispatch
    return getattr(self, method)(*args[1:])
  File "gyp-win-tool", line 169, in ExecLinkWithManifests
    subprocess.check_call(ldcmd + add_to_ld)
  File "C:\src\depot_tools\python276_bin\lib\subprocess.py", line 540, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'C:\src\depot_tools\python276_bin\python.exe gyp-win-tool link-wrapper environment.x86 False link.exe /nologo /IMPLIB:chrome_child.dll.lib /DLL /OUT:chrome_child.dll @chrome_child.dll.rsp chrome_child.dll.manifest.res' returned non-zero exit status 1120
[34/1415] LINK_EMBED blink_heap_unittests.exe
uuid.lib(cguid_i.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
Generating code
Finished generating code
[35/1415] LINK_EMBED webkit_unit_tests.exe
uuid.lib(cguid_i.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
Generating code
Finished generating code
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "C:\dart\dartium\src\dart\tools\dartium\build.py", line 56, in <module>
    main()
  File "C:\dart\dartium\src\dart\tools\dartium\build.py", line 53, in main
    + targets)
  File "C:\dart\dartium\src\dart\tools\dartium\utils.py", line 112, in runCommand
    raise Exception('Failed to run command. return code=%s' % p.returncode)
Exception: Failed to run command. return code=1
1

There are 1 best solutions below

0
David Morgan On

This does not seem to be supported -- see answer from Dart team.

https://github.com/dart-lang/sdk/issues/28280#issuecomment-287661242

"There are limitations with codec licensing, etc that limit us to only building on the completely open-source Chromium project."

The good news is that Dartium will at some point not be needed.

"We're working hard on a fast JS dev model that doesn't require Dartium at all: dev_compiler (also called DDC)."