diff options
author | Sean Greenslade | 2017-10-06 21:47:40 -0700 |
---|---|---|
committer | Sean Greenslade | 2017-10-06 21:47:40 -0700 |
commit | d56c65b00079d17eb64cb57b86148c1454315f54 (patch) | |
tree | c2b03f527fc8e1c97360e244de9cc0a22f883965 | |
parent | d23902c7800a35e46ad51631f3318f9a17e5dc78 (diff) | |
download | aur-ros-kinetic-usb-cam.tar.gz |
New pkg, needed patch to work with recent libav.
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 11 | ||||
-rw-r--r-- | libav_defines.patch | 43 |
3 files changed, 55 insertions, 3 deletions
@@ -1,5 +1,5 @@ # Generated by mksrcinfo v8 -# Mon Jul 17 21:31:39 UTC 2017 +# Sat Oct 7 04:47:24 UTC 2017 pkgbase = ros-kinetic-usb-cam pkgdesc = ROS - A ROS Driver for V4L USB Cameras. pkgver = 0.3.5 @@ -26,7 +26,9 @@ pkgbase = ros-kinetic-usb-cam depends = v4l-utils depends = ffmpeg source = ros-kinetic-usb-cam-0.3.5-0.tar.gz::https://github.com/ros-gbp/usb_cam-release/archive/release/kinetic/usb_cam/0.3.5-0.tar.gz + source = libav_defines.patch sha256sums = 43d0e60d5ed77191015411fbf3d0485f34dc2e2f6d3c60fc574f25c587c7c06b + sha256sums = 908f11fc5b1020a39fac9d4d4924be49023ee66ad701333979cbb612c035000e pkgname = ros-kinetic-usb-cam @@ -39,8 +39,15 @@ depends=(${ros_depends[@]} # Tarball version (faster download) _dir="usb_cam-release-release-kinetic-usb_cam-${pkgver}-${_pkgver_patch}" -source=("${pkgname}-${pkgver}-${_pkgver_patch}.tar.gz"::"https://github.com/ros-gbp/usb_cam-release/archive/release/kinetic/usb_cam/${pkgver}-${_pkgver_patch}.tar.gz") -sha256sums=('43d0e60d5ed77191015411fbf3d0485f34dc2e2f6d3c60fc574f25c587c7c06b') +source=("${pkgname}-${pkgver}-${_pkgver_patch}.tar.gz"::"https://github.com/ros-gbp/usb_cam-release/archive/release/kinetic/usb_cam/${pkgver}-${_pkgver_patch}.tar.gz" + "libav_defines.patch") +sha256sums=('43d0e60d5ed77191015411fbf3d0485f34dc2e2f6d3c60fc574f25c587c7c06b' + '908f11fc5b1020a39fac9d4d4924be49023ee66ad701333979cbb612c035000e') + +prepare() { + cd ${srcdir} + patch -p1 -i "libav_defines.patch" +} build() { # Use ROS environment variables diff --git a/libav_defines.patch b/libav_defines.patch new file mode 100644 index 000000000000..8d692fb3083a --- /dev/null +++ b/libav_defines.patch @@ -0,0 +1,43 @@ +diff -aur a/usb_cam-release-release-kinetic-usb_cam-0.3.5-0/src/usb_cam.cpp src/usb_cam-release-release-kinetic-usb_cam-0.3.5-0/src/usb_cam.cpp +--- a/usb_cam-release-release-kinetic-usb_cam-0.3.5-0/src/usb_cam.cpp 2017-10-06 21:42:03.201743369 -0700 ++++ src/usb_cam-release-release-kinetic-usb_cam-0.3.5-0/src/usb_cam.cpp 2017-10-06 21:43:40.843637859 -0700 +@@ -383,19 +383,19 @@ + avframe_rgb_ = av_frame_alloc(); + #endif + +- avpicture_alloc((AVPicture *)avframe_rgb_, PIX_FMT_RGB24, image_width, image_height); ++ avpicture_alloc((AVPicture *)avframe_rgb_, AV_PIX_FMT_RGB24, image_width, image_height); + + avcodec_context_->codec_id = AV_CODEC_ID_MJPEG; + avcodec_context_->width = image_width; + avcodec_context_->height = image_height; + + #if LIBAVCODEC_VERSION_MAJOR > 52 +- avcodec_context_->pix_fmt = PIX_FMT_YUV422P; ++ avcodec_context_->pix_fmt = AV_PIX_FMT_YUV422P; + avcodec_context_->codec_type = AVMEDIA_TYPE_VIDEO; + #endif + +- avframe_camera_size_ = avpicture_get_size(PIX_FMT_YUV422P, image_width, image_height); +- avframe_rgb_size_ = avpicture_get_size(PIX_FMT_RGB24, image_width, image_height); ++ avframe_camera_size_ = avpicture_get_size(AV_PIX_FMT_YUV422P, image_width, image_height); ++ avframe_rgb_size_ = avpicture_get_size(AV_PIX_FMT_RGB24, image_width, image_height); + + /* open it */ + if (avcodec_open2(avcodec_context_, avcodec_, &avoptions_) < 0) +@@ -445,13 +445,13 @@ + return; + } + +- video_sws_ = sws_getContext(xsize, ysize, avcodec_context_->pix_fmt, xsize, ysize, PIX_FMT_RGB24, SWS_BILINEAR, NULL, ++ video_sws_ = sws_getContext(xsize, ysize, avcodec_context_->pix_fmt, xsize, ysize, AV_PIX_FMT_RGB24, SWS_BILINEAR, NULL, + NULL, NULL); + sws_scale(video_sws_, avframe_camera_->data, avframe_camera_->linesize, 0, ysize, avframe_rgb_->data, + avframe_rgb_->linesize); + sws_freeContext(video_sws_); + +- int size = avpicture_layout((AVPicture *)avframe_rgb_, PIX_FMT_RGB24, xsize, ysize, (uint8_t *)RGB, avframe_rgb_size_); ++ int size = avpicture_layout((AVPicture *)avframe_rgb_, AV_PIX_FMT_RGB24, xsize, ysize, (uint8_t *)RGB, avframe_rgb_size_); + if (size != avframe_rgb_size_) + { + ROS_ERROR("webcam: avpicture_layout error: %d", size); |