Here is an update to mjpegtools 2.0.0.
Index: Makefile
===================================================================
RCS file: /home/cvs/ports/multimedia/mjpegtools/Makefile,v
retrieving revision 1.29
diff -u -p -r1.29 Makefile
--- Makefile 16 Sep 2011 10:31:23 -0000 1.29
+++ Makefile 5 Oct 2011 06:49:46 -0000
@@ -2,21 +2,22 @@
COMMENT= tools to edit/modify/encode video streams
-DISTNAME= mjpegtools-1.9.0rc3
-REVISION= 7
+DISTNAME= mjpegtools-2.0.0
CATEGORIES= multimedia
-SHARED_LIBS= lavfile 4.0 \
- lavfile-1.9 4.0 \
- lavjpeg 4.0 \
- lavjpeg-1.9 4.0 \
- lavplay 4.0 \
- lavplay-1.9 4.0 \
- mjpegutils 4.0 \
- mjpegutils-1.9 4.0 \
- mpeg2encpp 5.0 \
- mpeg2encpp-1.9 5.0 \
- mplex2 5.0 \
- mplex2-1.9 5.0
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=mjpeg/}
+
+SHARED_LIBS= lavfile 5.0 \
+ lavfile-2.0 5.0 \
+ lavjpeg 5.0 \
+ lavjpeg-2.0 5.0 \
+ lavplay 5.0 \
+ lavplay-2.0 5.0 \
+ mjpegutils 5.0 \
+ mjpegutils-2.0 5.0 \
+ mpeg2encpp 6.0 \
+ mpeg2encpp-2.0 6.0 \
+ mplex2 6.0 \
+ mplex2-2.0 6.0
HOMEPAGE= http://mjpeg.sourceforge.net/
@@ -26,49 +27,39 @@ PERMIT_PACKAGE_FTP= Yes
PERMIT_DISTFILES_CDROM= Yes
PERMIT_DISTFILES_FTP= Yes
-MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=mjpeg/}
-
-WANTLIB= X11 Xau Xcomposite Xcursor Xdamage Xdmcp Xext \
- Xfixes Xi Xinerama Xrandr Xrender atk-1.0 c cairo \
- expat fontconfig freetype gio-2.0 glib-2.0 \
- gmodule-2.0 gobject-2.0 m pango-1.0 pangocairo-1.0 \
- pangoft2-1.0 pcre pthread pthread-stubs pixman-1 \
- sndio stdc++ usbhid xcb z gthread-2.0 xcb-render \
- xcb-render-util SDL dv jpeg png gdk-x11-2.0 \
- gdk_pixbuf-2.0 gtk-x11-2.0
+WANTLIB+= GL SDL X11 Xau Xcomposite Xcursor Xdamage Xdmcp Xext
+WANTLIB+= Xfixes Xi Xinerama Xrandr Xrender Xxf86vm c cairo drm
+WANTLIB+= dv expat fontconfig freetype gdk-x11-2.0 gdk_pixbuf-2.0
+WANTLIB+= gtk-x11-2.0 jpeg m pcre pixman-1 png pthread
pthread-stubs
+WANTLIB+= sndio stdc++ usbhid xcb xcb-render xcb-shm z
-MODULES+= devel/gettext
+MODULES= devel/gettext
LIB_DEPENDS= sdl-*-!no_x11:devel/sdl \
- multimedia/libdv \
graphics/jpeg \
graphics/png \
+ multimedia/libdv \
x11/gtk+2 \
USE_LIBTOOL= Yes
-USE_GROFF = Yes
-CONFIGURE_STYLE= gnu
+USE_GROFF= Yes
+CONFIGURE_STYLE= autoconf
+AUTOCONF_VERSION= 2.68
CONFIGURE_ARGS+= ${CONFIGURE_SHARED} \
--with-x \
- --with-libpng \
- --with-libdv
-
-CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include
-I${LOCALBASE}/include/libpng" \
- LDFLAGS="-L${LOCALBASE}/lib" \
- PKG_CONFIG="/usr/bin/pkg-config"
+ --without-v4l
+CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \
+ LDFLAGS="-L${LOCALBASE}/lib"
FLAVORS= quicktime optimized
FLAVOR?=
-.if ${FLAVOR:L:Moptimized}
-CONFIGURE_ARGS+= --enable-simd-accel
-.else
+.if !${FLAVOR:L:Moptimized}
CONFIGURE_ARGS+= --disable-simd-accel
.endif
.if ${FLAVOR:L:Mquicktime}
LIB_DEPENDS += multimedia/libquicktime
-WANTLIB += quicktime>=2 GL
-CONFIGURE_ARGS += --with-libquicktime
+WANTLIB+= quicktime>=2
.else
CONFIGURE_ARGS += --without-libquicktime
.endif
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/multimedia/mjpegtools/distinfo,v
retrieving revision 1.5
diff -u -p -r1.5 distinfo
--- distinfo 26 Jan 2008 02:10:26 -0000 1.5
+++ distinfo 5 Oct 2011 04:20:02 -0000
@@ -1,5 +1,5 @@
-MD5 (mjpegtools-1.9.0rc3.tar.gz) = 042tRDM+MjbMwNwe/bJ5EA==
-RMD160 (mjpegtools-1.9.0rc3.tar.gz) = 9HxxzXYoH7bgL9o9CLChQuE85ec=
-SHA1 (mjpegtools-1.9.0rc3.tar.gz) = QXgW5UjZ+7bDNt9kuI8xsC1v87E=
-SHA256 (mjpegtools-1.9.0rc3.tar.gz) =
ix4+hSicudWKe5jQMs8lh+qVf4ZkFqM1kYZnsdrHb/c=
-SIZE (mjpegtools-1.9.0rc3.tar.gz) = 2537088
+MD5 (mjpegtools-2.0.0.tar.gz) = kD4eO5Z+68xf5WJtdRfcRg==
+RMD160 (mjpegtools-2.0.0.tar.gz) = RU4jvtsr1ZKRKlRtBiG1w2YsO7I=
+SHA1 (mjpegtools-2.0.0.tar.gz) = 9BHoVz1EZxHb6EVaauklfhr+HnA=
+SHA256 (mjpegtools-2.0.0.tar.gz) = vzVBWT5xYC97RAwufYG0M/U9BRHnRkLzW+qbP+3tepc=
+SIZE (mjpegtools-2.0.0.tar.gz) = 1749671
Index: patches/patch-configure
===================================================================
RCS file: patches/patch-configure
diff -N patches/patch-configure
--- patches/patch-configure 26 Jan 2008 02:10:26 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@
-$OpenBSD: patch-configure,v 1.5 2008/01/26 02:10:26 jakemsr Exp $
---- configure.orig Sat Jan 19 22:18:42 2008
-+++ configure Sat Jan 19 22:20:38 2008
-@@ -26853,7 +26853,7 @@ echo "${ECHO_T}no" >&6
- fi
- fi
-
--
-+if test x"opts" = x"yes"; then
- if test x$have_x86cpu = xtrue -o x$have_ppccpu = xtrue; then
- if test x$host_alias != x; then
- echo "$as_me:$LINENO: checking sub-architecture settings" >&5
-@@ -26879,6 +26879,7 @@ echo $ECHO_N "checking sub-architecture settings... $E
- fi
- echo "$as_me:$LINENO: result: $ARCHFLAGS" >&5
- echo "${ECHO_T}$ARCHFLAGS" >&6
-+fi
- fi
-
- if test "x$enable_force_static" = "xyes" ; then
Index: patches/patch-configure_ac
===================================================================
RCS file: patches/patch-configure_ac
diff -N patches/patch-configure_ac
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-configure_ac 5 Oct 2011 04:36:09 -0000
@@ -0,0 +1,39 @@
+$OpenBSD$
+--- configure.ac.orig Wed Oct 5 00:34:39 2011
++++ configure.ac Wed Oct 5 00:35:53 2011
+@@ -445,35 +445,6 @@ EOF
+ fi
+ fi
+
+-dnl *********************************************************************
+-dnl For x86 and ppc machines check which code model we should use. This is
+-dnl done with the helper script cpuinfo.sh because the logic to do the job
+-dnl correctly is complex and lengthy (about as long as the entire configure.ac
+-dnl file).
+-
+-if test x$have_x86cpu = xtrue -o x$have_ppccpu = xtrue; then
+- if test x$host_alias != x; then
+- dnl This is to allow cross compiling
+- AC_MSG_CHECKING(sub-architecture settings)
+- if test x$have_x86cpu = xtrue; then
+- host_mod_cpu=`echo $host_cpu | tr _ -`
+- ARCHFLAGS="-march=$host_mod_cpu -mcpu=$host_mod_cpu"
+- fi
+- else
+- if test ! -r $srcdir/cpuinfo.sh; then
+- AC_MSG_ERROR([cpuinfo.sh script not found - do a cvs update])
+- fi
+- AC_MSG_CHECKING(sub-architecture settings)
+- chmod +x $srcdir/cpuinfo.sh
+- if test x$have_x86cpu = xtrue; then
+- ARCHFLAGS=`$srcdir/cpuinfo.sh x86`
+- elif test x$have_ppccpu = xtrue; then
+- ARCHFLAGS=`$srcdir/cpuinfo.sh ppc`
+- fi
+- fi
+- AC_MSG_RESULT($ARCHFLAGS)
+-fi
+-
+ dnl **********************************************************************
+ dnl Handle forcing static linkage in key places
+ if test "x$enable_static_build" = "xyes" ; then
Index: patches/patch-lavtools_png2yuv_c
===================================================================
RCS file: patches/patch-lavtools_png2yuv_c
diff -N patches/patch-lavtools_png2yuv_c
--- patches/patch-lavtools_png2yuv_c 8 Jul 2011 20:36:09 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,525 +0,0 @@
-$OpenBSD: patch-lavtools_png2yuv_c,v 1.1 2011/07/08 20:36:09 naddy Exp $
-
-Fix build with png-1.5.
-
---- lavtools/png2yuv.c.orig Thu Nov 8 10:31:50 2007
-+++ lavtools/png2yuv.c Mon Jul 4 17:49:05 2011
-@@ -49,12 +49,9 @@ png2yuv
-
- #include "subsample.h"
- #include "colorspace.h"
--//#include "mplexconsts.hh"
-
- #define DEFAULT_CHROMA_MODE Y4M_CHROMA_420JPEG
-
--#define MAXPIXELS (2800*1152) /**< Maximum size of final image */
--
- typedef struct _parameters
- {
- char *pngformatstr;
-@@ -70,14 +67,10 @@ typedef struct _parameters
- int ss_mode; /**< subsampling mode (based on ssm_id from subsample.h) */
-
- int new_width; /// new MPEG2 width, in case the original one is uneven
-+ int new_height; /// new MPEG2 width, in case the original one is uneven
- } parameters_t;
-
-
--struct _parameters *sh_param;
--png_structp png_ptr;
--png_infop info_ptr, end_info;
--uint8_t *raw0, *raw1, *raw2; /* buffer for RGB first, and then Y/Cb/Cr
planes of decoded PNG */
--
- /*
- * The User Interface parts
- */
-@@ -152,8 +145,6 @@ static void parse_commandline(int argc, char ** argv,
- param->interleave = -1;
- param->verbose = 1;
- param->ss_mode = DEFAULT_CHROMA_MODE;
-- //param->mza_filename = NULL;
-- //param->make_z_alpha = 0;
-
- /* parse options */
- for (;;) {
-@@ -240,94 +231,44 @@ static void parse_commandline(int argc, char ** argv,
- }
- }
-
--void png_separation(png_structp png_ptr, png_row_infop row_info, png_bytep
data)
--{
-- int row_nr = png_ptr->row_number; // internal variable ?
-- int i, width = row_info->width;
-- int new_width = sh_param->new_width;
-
-- /* contents of row_info:
-- * png_uint_32 width width of row
-- * png_uint_32 rowbytes number of bytes in row
-- * png_byte color_type color type of pixels
-- * png_byte bit_depth bit depth of samples
-- * png_byte channels number of channels (1-4)
-- * png_byte pixel_depth bits per pixel (depth*channels)
-- */
--
-- //mjpeg_debug("PNG YUV transformation callback; color_type is %d row_number
%d\n",
-- // row_info->color_type, row_nr);
--
-- if(row_info->color_type == PNG_COLOR_TYPE_GRAY) // only Z available
-- {
-- //mjpeg_debug("Grayscale to YUV, row %d", row_nr);
-- for (i = 0; i < width; i++)
-- {
-- raw0[i + row_nr * new_width] = data[i];
-- raw1[i + row_nr * new_width] = data[i];
-- raw2[i + row_nr * new_width] = data[i];
-- }
-- return;
-- }
--
-- if(row_info->color_type == PNG_COLOR_TYPE_RGB) // Z and Alpha available
-- {
-- //mjpeg_info("RGB to YUV, row %d", row_nr);
-- for (i = 0; i < width; i++)
-- {
-- raw0[i + row_nr * new_width] = data[i*3];
-- raw1[i + row_nr * new_width] = data[i*3 + 1];
-- raw2[i + row_nr * new_width] = data[i*3 + 2];
-- }
-- return;
-- }
--
-- mjpeg_error_exit1("mpegz: UNKNOWN COLOR FORMAT %d in PNG transformation
!\n", row_info->color_type);
--}
--
--
- /*
- * The file handling parts
- */
- /**
- Reads one PNG file.
--@param process Process the image data (0 for initial parameter determination)
-+@param process Process the image data (NULL for initial parameter
determination)
- @returns -1 on failure, 1 on sucess
-+@on success returns RGB data in the second, yuv, parameter
- */
--int decode_png(const char *pngname, int process, parameters_t *param)
-+int decode_png(const char *pngname, uint8_t *yuv[], parameters_t *param)
- {
-- int num_pass = 1;
-- int bit_depth, color_type;
-+ png_structp png_ptr;
-+ png_infop info_ptr;
- FILE *pngfile;
-- //png_byte hdptr[8];
-
-- /* Now open this PNG file, and examine its header to retrieve the
-- YUV4MPEG info that shall be written */
-- pngfile = fopen(pngname, "rb");
-- if (!pngfile)
-- {
-- perror("PNG file open failed:");
-- return -1;
-- }
-+ /* libpng needs two structs - a png_struct and a png_info, there is no
-+ * need to make the third, another png_info, because that is only used
-+ * to store data (such as textual information) that can come after the
-+ * PNG image. This code only cares about the image.
-+ */
-+ info_ptr = NULL;
-+ pngfile = NULL;
-+ png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
-+ if (!png_ptr)
-+ mjpeg_error_exit1("%s: Could not allocate PNG read struct !", pngname);
-
-- //fread(hdptr, 1, 8, pngfile);
--
--#if 0
-- bool is_png = !png_sig_cmp(hdptr, 0, 8);
-- if (!is_png)
-+ /* This needs to be done immediately after creation of the png_struct
-+ * because storage allocation failures will longjmp back to here:
-+ */
-+ if (setjmp(png_jmpbuf(png_ptr)))
- {
-- mjpeg_error("%s is _no_ PNG file !\n");
-+ png_destroy_read_struct(&png_ptr, &info_ptr, 0);
-+ if (pngfile) (void)fclose(pngfile);
-+ mjpeg_error("%s: Corrupted PNG file !", pngname);
- return -1;
- }
--#endif
-
-- png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
-- if (!png_ptr)
-- mjpeg_error_exit1("%s: Could not allocate PNG read struct !", pngname);
--
-- png_init_io(png_ptr, pngfile);
-- //png_set_sig_bytes(png_ptr, 8);
--
- info_ptr = png_create_info_struct(png_ptr);
- if (!info_ptr)
- {
-@@ -336,79 +277,101 @@ int decode_png(const char *pngname, int process, param
- mjpeg_error_exit1("%s: Could not allocate PNG info struct !", pngname);
- }
-
-- end_info = png_create_info_struct(png_ptr);
-- if (!end_info)
-+ /* Now open this PNG file, and examine its header to retrieve the
-+ YUV4MPEG info that shall be written */
-+ pngfile = fopen(pngname, "rb");
-+ if (!pngfile)
- {
-- png_destroy_read_struct(&png_ptr, &info_ptr,
-- (png_infopp)NULL);
-- mjpeg_error_exit1("%s: Could not allocate PNG end info struct !",
pngname);
-+ perror(pngname);
-+ png_error(png_ptr, "PNG file open failed");
- }
--
-- if (setjmp(png_jmpbuf(png_ptr)))
-+
-+ png_init_io(png_ptr, pngfile);
-+
-+ if (yuv)
- {
-- png_destroy_read_struct(&png_ptr, &info_ptr,
-- &end_info);
-- mjpeg_error("%s: Corrupted PNG file !", pngname);
-- return -1;
-+ png_uint_32 nr, input_height, input_width, output_height, output_width;
-+ uint8_t *r, *g, *b;
-+ png_bytepp rows;
-+
-+ /* The code uses png_read_png to obtain a complete buffered copy of the
-+ * PNG file reduced (or expanded) to 8 bit RGB. This is a little
wasteful
-+ * in the case of a non-interlaced image - the code could work row by
-+ * row without buffering the whole image - but the interlaced case is
-+ * almost impossible to handle this way so it is better to be simple and
-+ * correct.
-+ */
-+# if PNG_LIBPNG_VER >= 10500 && PNG_LIBPNG_VER < 10502
-+ /* There is a bug in 1.5 before 1.5.2 which causes png_read_png to
-+ * whine most terribly on interlaced images, this stops it:
-+ */
-+ (void)png_set_interlace_handling(png_ptr);
-+# endif
-+ png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_STRIP_16 |
-+ PNG_TRANSFORM_STRIP_ALPHA | PNG_TRANSFORM_EXPAND |
-+ PNG_TRANSFORM_GRAY_TO_RGB /* requires libpng 1.4 or later */, 0);
-+
-+ /* And return the separated data to the parameters. */
-+ rows = png_get_rows(png_ptr, info_ptr);
-+
-+ /* Since the PNG files for the frames are separate the actual PNG file
-+ * that was read could be unrelated - a random width and height.
Because
-+ * the output may be interleaved the output height may be twice the
input
-+ * PNG height. Because the MPEG code requires an even width the output
-+ * width may be one more than the original frame width.
-+ *
-+ * For the interleaving the PNG data is smashed into the lower half of
-+ * the yuv rows. For the other cases the input data is cropped or
-+ * top-lefted as appropriate.
-+ */
-+ output_height = param->new_height;
-+
-+ input_height = png_get_image_height(png_ptr, info_ptr);
-+ if (input_height > output_height)
-+ input_height = output_height;
-+
-+ output_width = param->new_width;
-+
-+ input_width = png_get_image_width(png_ptr, info_ptr);
-+ if (input_width > output_width)
-+ input_width = output_width;
-+
-+ /* Breaking up the RGB data is not hard to do, the separated channels
are
-+ * simply packed into the three raw yuv arrays with new_width values per
-+ * row.
-+ */
-+ r = yuv[0];
-+ g = yuv[1];
-+ b = yuv[2];
-+ for (nr=0; nr<input_height; ++nr)
-+ {
-+ png_uint_32 nc;
-+ png_bytep row = *rows++;
-+
-+ for (nc=0; nc<input_width; ++nc)
-+ {
-+ *r++ = *row++;
-+ *g++ = *row++;
-+ *b++ = *row++;
-+ }
-+
-+ /* Pad the output: */
-+ for (; nc<output_width; ++nc)
-+ *r++ = *g++ = *b++ = 0;
-+ }
- }
--
-- if (process)
-- png_set_read_user_transform_fn(png_ptr, png_separation);
-- png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_STRIP_16 |
PNG_TRANSFORM_STRIP_ALPHA, NULL);
--
-- if (png_get_IHDR(png_ptr, info_ptr, ¶m->width, ¶m->height,
&bit_depth,
-- // &color_type, &interlace_type, &compression_type,
&filter_type))
-- &color_type, NULL, NULL, NULL))
-- num_pass = png_set_interlace_handling(png_ptr);
- else
-- mjpeg_error_exit1("PNG header reading failed !!\n");
--#if 0
-- mjpeg_info("Reading info struct...\n");
-- png_read_info(png_ptr, info_ptr);
-- mjpeg_info("Done...\n");
--
-- if (png_get_IHDR(png_ptr, info_ptr, ¶m->width, ¶m->height,
&bit_depth,
-- // &color_type, &interlace_type, &compression_type,
&filter_type))
-- &color_type, NULL, NULL, NULL))
-- num_pass = png_set_interlace_handling(png_ptr);
-- else
-- mjpeg_error_exit1("PNG header reading failed !!\n");
--
-- if (process)
- {
-- printf("%d passes needed\n\n", num_pass);
--
-- if (bit_depth != 8 && bit_depth != 16)
-- {
-- mjpeg_error_exit1("Invalid bit_depth %d, only 8 and 16 bit allowed
!!\n", bit_depth);
-- }
--
-- png_set_strip_16(png_ptr); // always has to strip the 16bit input, MPEG
can't handle it
-- png_set_strip_alpha(png_ptr); // Alpha can't be processed until Z/Alpha
is integrated
--
-- printf("\nAllocating row buffer...");
-- png_set_read_user_transform_fn(png_ptr, png_separation);
-- png_bytep row_buf = (png_bytep)png_malloc(png_ptr,
-- png_get_rowbytes(png_ptr,
info_ptr));
--
-- for (int n=0; n < num_pass; n++)
-- for (int y=0; y < sh_param->height; y++)
-- {
-- printf("Writing row data for pass %d\n", n);
-- png_read_rows(png_ptr, (png_bytepp)&row_buf, NULL, 1);
-- }
--
-- png_free(png_ptr, row_buf);
-+ /* Just return the image width and height in *param */
-+ png_read_info(png_ptr, info_ptr);
-+
-+ param->width = png_get_image_width(png_ptr, info_ptr);
-+ param->height = png_get_image_height(png_ptr, info_ptr);
- }
-- png_read_end(png_ptr, info_ptr);
--#endif
-- if (setjmp(png_ptr->jmpbuf)) {
-- png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
-- return 2;
-- }
-
-+ /* Successful exit: */
-+ png_destroy_read_struct(&png_ptr, &info_ptr, 0);
- fclose(pngfile);
--
- return 1;
- }
-
-@@ -419,13 +382,17 @@ int decode_png(const char *pngname, int process, param
- */
- static int init_parse_files(parameters_t *param)
- {
-- char pngname[255];
-+ char pngname[PATH_MAX+1]; /* See POSIX 1003.1 section 2.9.5 */
-
- snprintf(pngname, sizeof(pngname),
- param->pngformatstr, param->begin);
- mjpeg_debug("Analyzing %s to get the right pic params", pngname);
-
-- if (decode_png(pngname, 0, param) == -1)
-+ /* The first frame (the param->begin frame) determines the height and
-+ * width of the output. Passing NULL instead of yuv (see below) causes
-+ * decode_png to fill in param with the image dimensions.
-+ */
-+ if (decode_png(pngname, NULL, param) == -1)
- mjpeg_error_exit1("Reading of %s failed.\n", pngname);
-
- mjpeg_info("Image dimensions are %ux%u",
-@@ -455,6 +422,7 @@ static int init_parse_files(parameters_t *param)
-
- if (!(param->interleave) && (param->interlace != Y4M_ILACE_NONE))
- {
-+ /* So the height in 'param' might be twice the PNG input height:*/
- param->height *= 2;
- mjpeg_info("Non-interleaved fields (image height doubled)");
- }
-@@ -466,33 +434,29 @@ static int init_parse_files(parameters_t *param)
- static int generate_YUV4MPEG(parameters_t *param)
- {
- uint32_t frame;
-- //size_t pngsize;
-- char pngname[FILENAME_MAX];
-- uint8_t *yuv[3]; /* buffer for Y/U/V planes of decoded PNG */
-+ uint8_t *yuv[3]; /* Buffers, initially for R,G,B then Y,Cb,Cr */
- y4m_stream_info_t streaminfo;
- y4m_frame_info_t frameinfo;
-
-- if ((param->width % 2) == 0)
-- param->new_width = param->width;
-- else
-- {
-- param->new_width = ((param->width >> 1) + 1) << 1;
-- printf("Setting new, even image width %d", param->new_width);
-- }
-+ /* Make the output even, so the output may be one larger than the
-+ * original PNG image width.
-+ */
-+ param->new_width = param->width + (param->width & 1);
-+ param->new_height = param->height + (param->height & 1);
-
- mjpeg_info("Now generating YUV4MPEG stream.");
- y4m_init_stream_info(&streaminfo);
- y4m_init_frame_info(&frameinfo);
-
- y4m_si_set_width(&streaminfo, param->new_width);
-- y4m_si_set_height(&streaminfo, param->height);
-+ y4m_si_set_height(&streaminfo, param->new_height);
- y4m_si_set_interlace(&streaminfo, param->interlace);
- y4m_si_set_framerate(&streaminfo, param->framerate);
- y4m_si_set_chroma(&streaminfo, param->ss_mode);
-
-- yuv[0] = (uint8_t *)malloc(param->new_width * param->height *
sizeof(yuv[0][0]));
-- yuv[1] = (uint8_t *)malloc(param->new_width * param->height *
sizeof(yuv[1][0]));
-- yuv[2] = (uint8_t *)malloc(param->new_width * param->height *
sizeof(yuv[2][0]));
-+ yuv[0] = (uint8_t *)malloc(param->new_width * param->new_height *
sizeof(yuv[0][0]));
-+ yuv[1] = (uint8_t *)malloc(param->new_width * param->new_height *
sizeof(yuv[1][0]));
-+ yuv[2] = (uint8_t *)malloc(param->new_width * param->new_height *
sizeof(yuv[2][0]));
-
- y4m_write_stream_header(STDOUT_FILENO, &streaminfo);
-
-@@ -500,15 +464,13 @@ static int generate_YUV4MPEG(parameters_t *param)
- (frame < param->numframes + param->begin) || (param->numframes == -1);
- frame++)
- {
-- // if (frame < 25)
-- // else
-- //snprintf(pngname, sizeof(pngname), param->pngformatstr, frame - 25);
-+ char pngname[PATH_MAX+1];
- snprintf(pngname, sizeof(pngname), param->pngformatstr, frame);
-
-- raw0 = yuv[0];
-- raw1 = yuv[1];
-- raw2 = yuv[2];
-- if (decode_png(pngname, 1, param) == -1)
-+ /* decode_png reads the PNG into the yuv buffers as r,g,b [0..255]
-+ * values.
-+ */
-+ if (decode_png(pngname, yuv, param) == -1)
- {
- mjpeg_info("Read from '%s' failed: %s", pngname, strerror(errno));
- if (param->numframes == -1)
-@@ -523,79 +485,18 @@ static int generate_YUV4MPEG(parameters_t *param)
- }
- else
- {
--#if 0
-- mjpeg_debug("Preparing frame");
--
-- /* Now open this PNG file, and examine its header to retrieve the
-- YUV4MPEG info that shall be written */
--
-- if ((param->interlace == Y4M_ILACE_NONE) || (param->interleave == 1))
-- {
-- mjpeg_info("Processing non-interlaced/interleaved %s.",
-- pngname, pngsize);
--
-- decode_png(imagedata, 0, 420, yuv[0], yuv[1], yuv[2],
-- param->width, param->height, param->new_width);
--
--#if 0
-- if (param->make_z_alpha)
-- {
-- mjpeg_info("Writing Z/Alpha data.\n");
-- za_write(real_z_imagemap, param->width,
param->height,z_alpha_fp,frame);
-- }
--#endif
-- }
-- else
-- {
-- mjpeg_error_exit1("Can't handle interlaced PNG information (yet)
since there is no standard for it.\n"
-- "Use interleaved mode (-L option) to create
interlaced material.");
--
-- switch (param->interlace)
-- {
-- case Y4M_ILACE_TOP_FIRST:
-- mjpeg_info("Processing interlaced, top-first %s", pngname);
--#if 0
-- decode_jpeg_raw(jpegdata, jpegsize,
-- Y4M_ILACE_TOP_FIRST,
-- 420, param->width, param->height,
-- yuv[0], yuv[1], yuv[2]);
--#endif
-- break;
-- case Y4M_ILACE_BOTTOM_FIRST:
-- mjpeg_info("Processing interlaced, bottom-first %s", pngname);
--#if 0
-- decode_jpeg_raw(jpegdata, jpegsize,
-- Y4M_ILACE_BOTTOM_FIRST,
-- 420, param->width, param->height,
-- yuv[0], yuv[1], yuv[2]);
--#endif
-- break;
-- default:
-- mjpeg_error_exit1("FATAL logic error?!?");
-- break;
-- }
-- }
--#endif
- mjpeg_debug("Converting frame to YUV format.");
- /* Transform colorspace, then subsample (in place) */
-- convert_RGB_to_YCbCr(yuv, param->height * param->new_width);
-- chroma_subsample(param->ss_mode, yuv, param->new_width,
param->height);
-+ convert_RGB_to_YCbCr(yuv, param->new_height * param->new_width);
-+ chroma_subsample(param->ss_mode, yuv, param->new_width,
param->new_height);
-
- mjpeg_debug("Frame decoded, now writing to output stream.");
- }
--
-+
- mjpeg_debug("Frame decoded, now writing to output stream.");
- y4m_write_frame(STDOUT_FILENO, &streaminfo, &frameinfo, yuv);
- }
-
--#if 0
-- if (param->make_z_alpha)
-- {
-- za_write_end(z_alpha_fp);
-- fclose(z_alpha_fp);
-- }
--#endif
--
- y4m_fini_stream_info(&streaminfo);
- y4m_fini_frame_info(&frameinfo);
- free(yuv[0]);
-@@ -614,7 +515,6 @@ static int generate_YUV4MPEG(parameters_t *param)
- int main(int argc, char ** argv)
- {
- parameters_t param;
-- sh_param = ¶m;
-
- y4m_accept_extensions(1);
-
-@@ -632,13 +532,3 @@ int main(int argc, char ** argv)
-
- return 0;
- }
--
--
--
--
--
--
--
--
--
--
Index: pkg/DESCR
===================================================================
RCS file: /home/cvs/ports/multimedia/mjpegtools/pkg/DESCR,v
retrieving revision 1.3
diff -u -p -r1.3 DESCR
--- pkg/DESCR 4 Mar 2009 20:21:57 -0000 1.3
+++ pkg/DESCR 5 Oct 2011 04:41:54 -0000
@@ -1,11 +1,11 @@
The MJPEG-tools are a basic set of utilities for editing, playing back,
filtering and encoding video under UNIX-like operating systems.
-There are two FLAVORS for this port:
+Flavors:
- quicktime - builds the package with support for reading and writing
- quicktime ".mov" files
+ quicktime - Builds the package with support for reading and writing
+ QuickTime ".MOV" files.
- optimized - builds the package with SSE instructions. Packages built
+ optimized - Builds the package with SSE instructions. Packages built
with this FLAVOR might not run on systems that are not SSE
capable.
Index: pkg/PFRAG.shared
===================================================================
RCS file: /home/cvs/ports/multimedia/mjpegtools/pkg/PFRAG.shared,v
retrieving revision 1.5
diff -u -p -r1.5 PFRAG.shared
--- pkg/PFRAG.shared 26 Jan 2008 02:10:26 -0000 1.5
+++ pkg/PFRAG.shared 5 Oct 2011 05:05:42 -0000
@@ -1,13 +1,13 @@
@comment $OpenBSD: PFRAG.shared,v 1.5 2008/01/26 02:10:26 jakemsr Exp $
-@lib lib/liblavfile-1.9.so.${LIBlavfile-1.9_VERSION}
+@lib lib/liblavfile-2.0.so.${LIBlavfile-2.0_VERSION}
@lib lib/liblavfile.so.${LIBlavfile_VERSION}
-@lib lib/liblavjpeg-1.9.so.${LIBlavjpeg-1.9_VERSION}
+@lib lib/liblavjpeg-2.0.so.${LIBlavjpeg-2.0_VERSION}
@lib lib/liblavjpeg.so.${LIBlavjpeg_VERSION}
-@lib lib/liblavplay-1.9.so.${LIBlavplay-1.9_VERSION}
+@lib lib/liblavplay-2.0.so.${LIBlavplay-2.0_VERSION}
@lib lib/liblavplay.so.${LIBlavplay_VERSION}
-@lib lib/libmjpegutils-1.9.so.${LIBmjpegutils-1.9_VERSION}
+@lib lib/libmjpegutils-2.0.so.${LIBmjpegutils-2.0_VERSION}
@lib lib/libmjpegutils.so.${LIBmjpegutils_VERSION}
-@lib lib/libmpeg2encpp-1.9.so.${LIBmpeg2encpp-1.9_VERSION}
+@lib lib/libmpeg2encpp-2.0.so.${LIBmpeg2encpp-2.0_VERSION}
@lib lib/libmpeg2encpp.so.${LIBmpeg2encpp_VERSION}
-@lib lib/libmplex2-1.9.so.${LIBmplex2-1.9_VERSION}
+@lib lib/libmplex2-2.0.so.${LIBmplex2-2.0_VERSION}
@lib lib/libmplex2.so.${LIBmplex2_VERSION}
Index: pkg/PLIST
===================================================================
RCS file: /home/cvs/ports/multimedia/mjpegtools/pkg/PLIST,v
retrieving revision 1.7
diff -u -p -r1.7 PLIST
--- pkg/PLIST 30 Jan 2009 00:41:24 -0000 1.7
+++ pkg/PLIST 5 Oct 2011 05:40:08 -0000
@@ -78,9 +78,8 @@ include/mjpegtools/mpeg2enc/mpeg2encoder
include/mjpegtools/mpeg2enc/mpeg2encoptions.hh
include/mjpegtools/mpeg2enc/mpeg2encparams.h
include/mjpegtools/mpeg2enc/mpeg2syntaxcodes.h
-include/mjpegtools/mpeg2enc/ontheflyratectl.hh
-include/mjpegtools/mpeg2enc/pass1ratectl.hh
-include/mjpegtools/mpeg2enc/pass2ratectl.hh
+include/mjpegtools/mpeg2enc/ontheflyratectlpass1.hh
+include/mjpegtools/mpeg2enc/ontheflyratectlpass2.hh
include/mjpegtools/mpeg2enc/picture.hh
include/mjpegtools/mpeg2enc/picturereader.hh
include/mjpegtools/mpeg2enc/predict_ref.h
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.