Closed Bug 1304965 Opened 4 years ago Closed 3 years ago

/home/worker/workspace/gecko/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc:408:29: error: aggregate 'webrtc::videocapturemodule::DeviceInfoLinux::FillCapabilities(int)::v4l2_frmsizeenum frmsize' has incomplete type and cannot

Categories

(Firefox OS Graveyard :: GonkIntegration, defect)

ARM
Gonk (Firefox OS)
defect
Not set

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: gerard-majax, Assigned: gerard-majax)

References

Details

Attachments

(1 file)

/home/worker/workspace/gecko/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc:408:29: error: aggregate 'webrtc::videocapturemodule::DeviceInfoLinux::FillCapabilities(int)::v4l2_frmsizeenum frmsize' has incomplete type and cannot be defined
/home/worker/workspace/gecko/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc:409:29: error: aggregate 'webrtc::videocapturemodule::DeviceInfoLinux::FillCapabilities(int)::v4l2_frmivalenum frmival' has incomplete type and cannot be defined
/home/worker/workspace/gecko/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc:416:26: error: 'VIDIOC_ENUM_FRAMESIZES' was not declared in this scope
/home/worker/workspace/gecko/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc:417:33: error: 'V4L2_FRMSIZE_TYPE_DISCRETE' was not declared in this scope
/home/worker/workspace/gecko/media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc:422:31: error: 'VIDIOC_ENUM_FRAMEINTERVALS' was not declared in this scope
So this happens because even though the device's kernel has <linux/videodev2.h> where this is defined, currently, inclusion is being performed from NDK r11b's android-19 platform, where this is not exposed. Grepping around shows this starts being exposed on platform 21 ...
Ok, looks like --with-linux-headers= helps :)
(In reply to Alexandre LISSY :gerard-majax from comment #3)
> Ok, looks like --with-linux-headers= helps :)

Actually it does not, clashes with the use of Android NDK :(
(In reply to Alexandre LISSY :gerard-majax from comment #5)
> https://treeherder.mozilla.org/#/jobs?repo=try&revision=d09e121e23f0

we do see the failure from bug 1304906 (as expected).
try including the fix for this one: https://treeherder.mozilla.org/#/jobs?repo=try&revision=bc9984ea99f1&filter-tier=1&filter-tier=2&filter-tier=3
Comment on attachment 8794192 [details]
Bug 1304965 - Force use of bionic libc for Gonk on Kitkat

https://reviewboard.mozilla.org/r/80744/#review79902

::: old-configure.in:129
(Diff revision 1)
>          AC_DEFINE(MOZ_OMX_ENCODER)
>          MOZ_SECUREELEMENT=1
>          ;;
>      19)
>          CPPFLAGS="-I$gonkdir/frameworks/native/include -I$gonkdir/frameworks/av/include -I$gonkdir/frameworks/av/include/media -I$gonkdir/frameworks/av/include/camera -I$gonkdir/frameworks/native/include/media/openmax -I$gonkdir/frameworks/av/media/libstagefright/include $CPPFLAGS"
> +        GONK_KERNEL_INCLUDES="-I$gonkdir/bionic/libc/kernel/common -I$gonkdir/bionic/libc/kernel/arch-${CPU_ARCH}"

Why not just put that in CPPFLAGS, avoiding to change third-party gyp files?
Attachment #8794192 - Flags: review?(mh+mozilla)
Because this would require hacking around in android.m4 to make sure those flags are after the platform NDK ones, and I felt it was nastier to do so, considering it would impact the whole build: android.m4 is loaded before the gonk section in old-configure.in, so we cannot just define a variable in old-configure.in and pick it from there.

I am open to any suggestion, though, because I am not a big fan either of changing gyp files :)
Flags: needinfo?(mh+mozilla)
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → WONTFIX
Flags: needinfo?(mh+mozilla)
You need to log in before you can comment on or make changes to this bug.