svn commit: r425326 - in head/databases/grass: . files

Jan Beich jbeich at FreeBSD.org
Fri Nov 4 14:30:45 UTC 2016


Author: jbeich
Date: Fri Nov  4 14:30:43 2016
New Revision: 425326
URL: https://svnweb.freebsd.org/changeset/ports/425326

Log:
  databases/grass: unbreak build with ffmpeg 3.x
  
  lib/ogsf/gsd_img_mpeg.c:41:24: error: 'PIX_FMT_YUV420P' undeclared (first use in this function)
   #define STREAM_PIX_FMT PIX_FMT_YUV420P /* default pix_fmt */
                          ^
  lib/ogsf/gsd_img_mpeg.c:97:18: note: in expansion of macro 'STREAM_PIX_FMT'
       c->pix_fmt = STREAM_PIX_FMT;
                    ^
  lib/ogsf/gsd_img_mpeg.c:41:24: note: each undeclared identifier is reported only once for each function it appears in
   #define STREAM_PIX_FMT PIX_FMT_YUV420P /* default pix_fmt */
                          ^
  lib/ogsf/gsd_img_mpeg.c:97:18: note: in expansion of macro 'STREAM_PIX_FMT'
       c->pix_fmt = STREAM_PIX_FMT;
                    ^
  lib/ogsf/gsd_img_mpeg.c:98:24: error: 'CODEC_ID_MPEG2VIDEO' undeclared (first use in this function)
       if (c->codec_id == CODEC_ID_MPEG2VIDEO) {
                          ^
  
  PR:		207547

Added:
  head/databases/grass/files/patch-lib_ogsf_gsd__img__mpeg.c   (contents, props changed)
Modified:
  head/databases/grass/Makefile   (contents, props changed)

Modified: head/databases/grass/Makefile
==============================================================================
--- head/databases/grass/Makefile	Fri Nov  4 14:29:14 2016	(r425325)
+++ head/databases/grass/Makefile	Fri Nov  4 14:30:43 2016	(r425326)
@@ -3,6 +3,7 @@
 
 PORTNAME=	grass
 PORTVERSION=	6.4.6
+PORTREVISION=	1
 PORTEPOCH=	2
 CATEGORIES=	databases geography
 MASTER_SITES=	http://grass.osgeo.org/%SUBDIR%/ \

Added: head/databases/grass/files/patch-lib_ogsf_gsd__img__mpeg.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/databases/grass/files/patch-lib_ogsf_gsd__img__mpeg.c	Fri Nov  4 14:30:43 2016	(r425326)
@@ -0,0 +1,102 @@
+--- lib/ogsf/gsd_img_mpeg.c.orig	2013-07-09 19:05:44 UTC
++++ lib/ogsf/gsd_img_mpeg.c
+@@ -38,7 +38,7 @@
+ #define STREAM_DURATION   5.0
+ #define STREAM_FRAME_RATE 25	/* 25 images/s */
+ #define STREAM_NB_FRAMES  ((int)(STREAM_DURATION * STREAM_FRAME_RATE))
+-#define STREAM_PIX_FMT PIX_FMT_YUV420P	/* default pix_fmt */
++#define STREAM_PIX_FMT AV_PIX_FMT_YUV420P	/* default pix_fmt */
+ 
+ AVFrame *picture, *tmp_picture;
+ uint8_t *video_outbuf;
+@@ -95,11 +95,11 @@ static AVStream *add_video_stream(AVForm
+     c->time_base.num = 1;
+     c->gop_size = 12;		/* emit one intra frame every twelve frames at most */
+     c->pix_fmt = STREAM_PIX_FMT;
+-    if (c->codec_id == CODEC_ID_MPEG2VIDEO) {
++    if (c->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
+ 	/* just for testing, we also add B frames */
+ 	c->max_b_frames = 2;
+     }
+-    if (c->codec_id == CODEC_ID_MPEG1VIDEO) {
++    if (c->codec_id == AV_CODEC_ID_MPEG1VIDEO) {
+ 	/* Needed to avoid using macroblocks in which some coeffs overflow.
+ 	   This does not happen with normal video, it just happens here as
+ 	   the motion of the chroma plane does not match the luma plane. */
+@@ -138,7 +138,7 @@ static AVFrame *alloc_picture(int pix_fm
+     uint8_t *picture_buf;
+     int size;
+ 
+-    picture = avcodec_alloc_frame();
++    picture = av_frame_alloc();
+ 
+     if (!picture)
+ 	return NULL;
+@@ -210,8 +210,8 @@ static void open_video(AVFormatContext *
+        picture is needed too. It is then converted to the required
+        output format */
+     tmp_picture = NULL;
+-    if (c->pix_fmt != PIX_FMT_YUV420P) {
+-	tmp_picture = alloc_picture(PIX_FMT_YUV420P, c->width, c->height);
++    if (c->pix_fmt != AV_PIX_FMT_YUV420P) {
++	tmp_picture = alloc_picture(AV_PIX_FMT_YUV420P, c->width, c->height);
+ 	if (!tmp_picture) {
+ 	    G_warning(_("Unable to allocate temporary picture"));
+ 	    return;
+@@ -227,7 +227,7 @@ static void open_video(AVFormatContext *
+  */
+ static void write_video_frame(AVFormatContext * oc, AVStream * st)
+ {
+-    int out_size, ret;
++    int ret;
+     AVCodecContext *c;
+ 
+     c = st->codec;
+@@ -250,15 +250,17 @@ static void write_video_frame(AVFormatCo
+ 	ret = av_write_frame(oc, &pkt);
+     }
+     else {
+-	/* encode the image */
+-	out_size =
+-	    avcodec_encode_video(c, video_outbuf, video_outbuf_size, picture);
+-	/* if zero size, it means the image was buffered */
+-	if (out_size > 0) {
+-	    AVPacket pkt;
++	AVPacket pkt;
++	int got_packet = 0;
+ 
+-	    av_init_packet(&pkt);
++	av_init_packet(&pkt);
++	pkt.data = video_outbuf;
++	pkt.size = video_outbuf_size;
+ 
++	/* encode the image */
++	ret = avcodec_encode_video2(c, &pkt, picture, &got_packet);
++	/* if zero size, it means the image was buffered */
++	if (ret == 0 && got_packet && pkt.size > 0) {
+ 	    pkt.pts =
+ 		av_rescale_q(c->coded_frame->pts, c->time_base,
+ 			     st->time_base);
+@@ -269,8 +271,6 @@ static void write_video_frame(AVFormatCo
+ 		pkt.flags |= AV_PKT_FLAG_KEY;
+ #endif
+ 	    pkt.stream_index = st->index;
+-	    pkt.data = video_outbuf;
+-	    pkt.size = out_size;
+ 
+ 	    /* write the compressed frame in the media file */
+ 	    ret = av_write_frame(oc, &pkt);
+@@ -362,11 +362,11 @@ int gsd_init_mpeg(const char *filename)
+     /* if you want to hardcode the codec (eg #ifdef USE_XVID)
+        this may be the place to do it (?????) */
+ #ifdef USE_XVID
+-    fmt->video_codec = CODEC_ID_XVID;
++    fmt->video_codec = AV_CODEC_ID_XVID;
+ #endif
+ 
+     video_st = NULL;
+-    if (fmt->video_codec != CODEC_ID_NONE) {
++    if (fmt->video_codec != AV_CODEC_ID_NONE) {
+ 	video_st =
+ 	    add_video_stream(oc, fmt->video_codec, (r - l + 1), (t - b + 1));
+     }


More information about the svn-ports-all mailing list