summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Greenslade2017-10-06 21:47:40 -0700
committerSean Greenslade2017-10-06 21:47:40 -0700
commitd56c65b00079d17eb64cb57b86148c1454315f54 (patch)
treec2b03f527fc8e1c97360e244de9cc0a22f883965
parentd23902c7800a35e46ad51631f3318f9a17e5dc78 (diff)
downloadaur-ros-kinetic-usb-cam.tar.gz
New pkg, needed patch to work with recent libav.
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD11
-rw-r--r--libav_defines.patch43
3 files changed, 55 insertions, 3 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 4f283ef34ce0..f3f6f0d216bd 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 91b600da1c5f..b7a14335a59f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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);