Closed Bug 1758610 Opened 3 months ago Closed 2 months ago

undefined reference to `mozilla::VideoFramePool::~VideoFramePool() when MOZ_FFVPX is unset

Categories

(Core :: Audio/Video: Playback, defect, P3)

defect

Tracking

()

RESOLVED FIXED
100 Branch
Tracking Status
firefox-esr91 --- unaffected
firefox98 --- unaffected
firefox99 --- wontfix
firefox100 --- fixed

People

(Reporter: glandium, Assigned: stransky)

References

(Regression)

Details

(Keywords: regression)

Attachments

(2 files)

Builds on tier-3 platforms like linux ppc64el, mips64el, s390x are failing with:

/builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg58/Unified_cpp_ffmpeg_ffmpeg580.o: in function `mozilla::DefaultDelete<mozilla::VideoFramePool>::operator()(mozilla::VideoFramePool*) const':
/builds/worker/workspace/obj-build/dist/include/mozilla/UniquePtr.h:463: undefined reference to `mozilla::VideoFramePool::~VideoFramePool()'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg58/Unified_cpp_ffmpeg_ffmpeg580.o: in function `mozilla::FFmpegVideoDecoder<58>::DoDecode(mozilla::MediaRawData*, unsigned char*, int, bool*, nsTArray<RefPtr<mozilla::MediaData> >&)':
/builds/worker/checkouts/gecko/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp:823: undefined reference to `mozilla::VideoFramePool::ReleaseUnusedVAAPIFrames()'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg58/Unified_cpp_ffmpeg_ffmpeg580.o: in function `mozilla::detail::UniqueSelector<mozilla::VideoFramePool>::SingleObject mozilla::MakeUnique<mozilla::VideoFramePool>()':
/builds/worker/workspace/obj-build/dist/include/mozilla/UniquePtr.h:609: undefined reference to `mozilla::VideoFramePool::VideoFramePool()'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg58/Unified_cpp_ffmpeg_ffmpeg580.o: in function `mozilla::DefaultDelete<mozilla::VideoFramePool>::operator()(mozilla::VideoFramePool*) const':
/builds/worker/workspace/obj-build/dist/include/mozilla/UniquePtr.h:463: undefined reference to `mozilla::VideoFramePool::~VideoFramePool()'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/dist/include/mozilla/UniquePtr.h:463: undefined reference to `mozilla::VideoFramePool::~VideoFramePool()'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg58/Unified_cpp_ffmpeg_ffmpeg580.o: in function `mozilla::FFmpegVideoDecoder<58>::CreateImageVAAPI(long, long, long, nsTArray<RefPtr<mozilla::MediaData> >&)':
/builds/worker/checkouts/gecko/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp:1093: undefined reference to `mozilla::VideoFramePool::GetVideoFrameSurface(_VADRMPRIMESurfaceDescriptor&, AVCodecContext*, AVFrame*, mozilla::FFmpegLibWrapper*)'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg58/Unified_cpp_ffmpeg_ffmpeg580.o: in function `mozilla::DefaultDelete<mozilla::VideoFramePool>::operator()(mozilla::VideoFramePool*) const':
/builds/worker/workspace/obj-build/dist/include/mozilla/UniquePtr.h:463: undefined reference to `mozilla::VideoFramePool::~VideoFramePool()'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/fetches/binutils/bin/ld.bfd: DWARF error: could not find variable specification at offset 1576
/builds/worker/fetches/binutils/bin/ld.bfd: DWARF error: could not find variable specification at offset 169e3
/builds/worker/fetches/binutils/bin/ld.bfd: DWARF error: could not find variable specification at offset 3ec92
/builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg59/Unified_cpp_ffmpeg_ffmpeg590.o: in function `mozilla::DefaultDelete<mozilla::VideoFramePool>::operator()(mozilla::VideoFramePool*) const':
/builds/worker/workspace/obj-build/dist/include/mozilla/UniquePtr.h:463: undefined reference to `mozilla::VideoFramePool::~VideoFramePool()'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg59/Unified_cpp_ffmpeg_ffmpeg590.o: in function `mozilla::FFmpegVideoDecoder<59>::DoDecode(mozilla::MediaRawData*, unsigned char*, int, bool*, nsTArray<RefPtr<mozilla::MediaData> >&)':
/builds/worker/checkouts/gecko/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp:823: undefined reference to `mozilla::VideoFramePool::ReleaseUnusedVAAPIFrames()'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg59/Unified_cpp_ffmpeg_ffmpeg590.o: in function `mozilla::detail::UniqueSelector<mozilla::VideoFramePool>::SingleObject mozilla::MakeUnique<mozilla::VideoFramePool>()':
/builds/worker/workspace/obj-build/dist/include/mozilla/UniquePtr.h:609: undefined reference to `mozilla::VideoFramePool::VideoFramePool()'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg59/Unified_cpp_ffmpeg_ffmpeg590.o: in function `mozilla::DefaultDelete<mozilla::VideoFramePool>::operator()(mozilla::VideoFramePool*) const':
/builds/worker/workspace/obj-build/dist/include/mozilla/UniquePtr.h:463: undefined reference to `mozilla::VideoFramePool::~VideoFramePool()'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/dist/include/mozilla/UniquePtr.h:463: undefined reference to `mozilla::VideoFramePool::~VideoFramePool()'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg59/Unified_cpp_ffmpeg_ffmpeg590.o: in function `mozilla::FFmpegVideoDecoder<59>::CreateImageVAAPI(long, long, long, nsTArray<RefPtr<mozilla::MediaData> >&)':
/builds/worker/checkouts/gecko/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp:1093: undefined reference to `mozilla::VideoFramePool::GetVideoFrameSurface(_VADRMPRIMESurfaceDescriptor&, AVCodecContext*, AVFrame*, mozilla::FFmpegLibWrapper*)'
/builds/worker/fetches/binutils/bin/ld.bfd: /builds/worker/workspace/obj-build/toolkit/library/gtest/../../../dom/media/platforms/ffmpeg/ffmpeg59/Unified_cpp_ffmpeg_ffmpeg590.o: in function `mozilla::DefaultDelete<mozilla::VideoFramePool>::operator()(mozilla::VideoFramePool*) const':
/builds/worker/workspace/obj-build/dist/include/mozilla/UniquePtr.h:463: undefined reference to `mozilla::VideoFramePool::~VideoFramePool()'
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
Flags: needinfo?(stransky)

Set release status flags based on info from the regressing bug 1750760

Has Regression Range: --- → yes
Severity: -- → S3
Priority: -- → P3

Adding ffvpx here works for me on s390x.
Not sure, if this is the correct fix, though.

I assume since this is Tier-3, we're happy to let Firefox 99 ship without a fix for this issue?

Will look at it this week, as a simple build fix we can uplift to 99.

Assignee: nobody → stransky
Status: NEW → ASSIGNED
Flags: needinfo?(stransky)
Pushed by stransky@redhat.com:
https://hg.mozilla.org/integration/autoland/rev/1c377fb424c7
[Linux] Remove VideoFrameSurfaceVAAPI and use VideoFrameSurface only r=alwu
https://hg.mozilla.org/integration/autoland/rev/00c6171a1e2a
[Linux] Implement VideoFramePool as template r=alwu
Pushed by stransky@redhat.com:
https://hg.mozilla.org/integration/autoland/rev/a107df8ae87c
[Linux] Remove VideoFrameSurfaceVAAPI and use VideoFrameSurface only r=alwu
https://hg.mozilla.org/integration/autoland/rev/c7ca5d4c890a
[Linux] Implement VideoFramePool as template r=alwu
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 100 Branch
See Also: → 1759137

This fix seems to have fixed the related issue 1759137 on FF100.

Is there any plan to backport it to FF99? As that has the same issue still?

(In reply to Stephen from comment #13)

This fix seems to have fixed the related issue 1759137 on FF100.

Is there any plan to backport it to FF99? As that has the same issue still?

99 is coming out next week - it's too late for uplift. Distros may ship local patches for it.

For some reason I still have an issue where acceleration isn't working in Firefox Nightly. I've added some additional detail in a couple comments here: https://bugzilla.mozilla.org/show_bug.cgi?id=1751363#c44

You need to log in before you can comment on or make changes to this bug.