On Sun, Oct 09, 2011 at 06:24:22PM -0400, Brad wrote:
> An updated diff killing off the symlink crap.
First of all, I'd really prefer if someone who actually uses this
(and/or multimedia/dvdstyler and multimedia/gstreamer-0.10/plugins-bad)
could take over. I'm not using this stuff, I'm not doing much video
at all, and I still don't have much time.
Next, on top of your diff, here's the addition of devel/sdl-gfx to
LIB_DEPENDS and some WANTLIB changes:
--- Makefile.brad Wed Oct 12 20:30:17 2011
+++ Makefile Wed Oct 12 20:31:04 2011
@@ -26,9 +26,12 @@
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
+WANTLIB+= SDL_gfx atk-1.0 ffi gio-2.0 glib-2.0 gmodule-2.0
gobject-2.0
+WANTLIB+= gthread-2.0 pango-1.0 pangocairo-1.0 pangoft2-1.0
MODULES= devel/gettext
LIB_DEPENDS= sdl-*-!no_x11:devel/sdl \
+ devel/sdl-gfx \
graphics/jpeg \
graphics/png \
multimedia/libdv \
And finally, multimedia/gstreamer-0.10/plugins-bad still needs some
love because it doesn't find interact.hpp:
configure: *** checking feature: mplex ***
configure: *** for plug-ins: mplex ***
checking for MPLEX... yes
checking interact.hpp usability... no
checking interact.hpp presence... no
checking for interact.hpp... no
configure: *** These plugins will not be built: mplex
Ciao,
Kili
> 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 9 Oct 2011 21:33:29 -0000
> @@ -2,21 +2,16 @@
>
> 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 \
> + lavjpeg 5.0 \
> + lavplay 5.0 \
> + mjpegutils 5.0 \
> + mpeg2encpp 6.0 \
> + mplex2 6.0 \
>
> HOMEPAGE= http://mjpeg.sourceforge.net/
>
> @@ -26,49 +21,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_Makefile_in
> ===================================================================
> RCS file: patches/patch-lavtools_Makefile_in
> diff -N patches/patch-lavtools_Makefile_in
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-lavtools_Makefile_in 9 Oct 2011 21:33:21 -0000
> @@ -0,0 +1,12 @@
> +$OpenBSD$
> +--- lavtools/Makefile.in.orig Sun Oct 9 17:31:35 2011
> ++++ lavtools/Makefile.in Sun Oct 9 17:31:52 2011
> +@@ -445,7 +445,7 @@ liblavinclude_HEADERS = \
> + LAV_ALL_LIB_OPTS = \
> + $(LT_STATIC) \
> + -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
> +- -release $(LT_RELEASE) $(EXTRA_LDFLAGS)
> ++ $(EXTRA_LDFLAGS)
> +
> + liblavfile_la_SOURCES = editlist.c lav_io.c avilib.c
> + liblavfile_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBDV_CFLAGS) $(JPEG_CFLAGS)
> 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: patches/patch-mpeg2enc_Makefile_in
> ===================================================================
> RCS file: patches/patch-mpeg2enc_Makefile_in
> diff -N patches/patch-mpeg2enc_Makefile_in
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-mpeg2enc_Makefile_in 9 Oct 2011 21:33:09 -0000
> @@ -0,0 +1,12 @@
> +$OpenBSD$
> +--- mpeg2enc/Makefile.in.orig Sun Oct 9 17:32:51 2011
> ++++ mpeg2enc/Makefile.in Sun Oct 9 17:33:02 2011
> +@@ -356,7 +356,7 @@ libmpeg2encpp_include_HEADERS = elemstrmwriter.hh enco
> + libmpeg2encpp_la_LDFLAGS = \
> + ${LT_STATIC} \
> + -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
> +- -release $(LT_RELEASE) ${EXTRA_LDFLAGS}
> ++ ${EXTRA_LDFLAGS}
> +
> + libmpeg2encpp_la_DEPENDENCIES = $(LIBMJPEGUTILS)
> + libmpeg2encpp_la_LIBADD = $(LIBMJPEGUTILS) @PTHREAD_LIBS@
> Index: patches/patch-mplex_Makefile_in
> ===================================================================
> RCS file: patches/patch-mplex_Makefile_in
> diff -N patches/patch-mplex_Makefile_in
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-mplex_Makefile_in 9 Oct 2011 21:33:09 -0000
> @@ -0,0 +1,12 @@
> +$OpenBSD$
> +--- mplex/Makefile.in.orig Sun Oct 9 17:32:35 2011
> ++++ mplex/Makefile.in Sun Oct 9 17:32:46 2011
> +@@ -335,7 +335,7 @@ libmplex_include_HEADERS = \
> + libmplex2_la_LDFLAGS = \
> + $(LT_STATIC) \
> + -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
> +- -release $(LT_RELEASE) $(EXTRA_LDFLAGS)
> ++ $(EXTRA_LDFLAGS)
> +
> + libmplex2_la_LIBADD = $(top_builddir)/utils/libmjpegutils.la \
> + $(am__append_1)
> Index: patches/patch-utils_Makefile_in
> ===================================================================
> RCS file: patches/patch-utils_Makefile_in
> diff -N patches/patch-utils_Makefile_in
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-utils_Makefile_in 9 Oct 2011 21:33:09 -0000
> @@ -0,0 +1,12 @@
> +$OpenBSD$
> +--- utils/Makefile.in.orig Sun Oct 9 17:31:58 2011
> ++++ utils/Makefile.in Sun Oct 9 17:32:28 2011
> +@@ -304,7 +304,7 @@ libmjpegutils_la_LIBADD = $(mmxsse_lib) $(altivec_lib)
> + libmjpegutils_la_LDFLAGS = \
> + $(LT_STATIC) \
> + -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
> +- -release $(LT_RELEASE) $(EXTRA_LDFLAGS)
> ++ $(EXTRA_LDFLAGS)
> +
> + libmjpegutils_la_SOURCES = \
> + mjpeg_logging.c \
> 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 9 Oct 2011 21:33:43 -0000
> @@ -1,13 +1,7 @@
> @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.so.${LIBlavfile_VERSION}
> -@lib lib/liblavjpeg-1.9.so.${LIBlavjpeg-1.9_VERSION}
> @lib lib/liblavjpeg.so.${LIBlavjpeg_VERSION}
> -@lib lib/liblavplay-1.9.so.${LIBlavplay-1.9_VERSION}
> @lib lib/liblavplay.so.${LIBlavplay_VERSION}
> -@lib lib/libmjpegutils-1.9.so.${LIBmjpegutils-1.9_VERSION}
> @lib lib/libmjpegutils.so.${LIBmjpegutils_VERSION}
> -@lib lib/libmpeg2encpp-1.9.so.${LIBmpeg2encpp-1.9_VERSION}
> @lib lib/libmpeg2encpp.so.${LIBmpeg2encpp_VERSION}
> -@lib lib/libmplex2-1.9.so.${LIBmplex2-1.9_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 9 Oct 2011 21:34:08 -0000
> @@ -1,5 +1,6 @@
> @comment $OpenBSD: PLIST,v 1.7 2009/01/30 00:41:24 sthen Exp $
> @conflict mplex-*
> +%%SHARED%%
> %%quicktime%%
> bin/anytovcd.sh
> @bin bin/glav
> @@ -78,9 +79,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
> @@ -156,4 +156,3 @@ lib/pkgconfig/mjpegtools.pc
> @man man/man1/yuvscaler.1
> @man man/man1/yuvycsnoise.1
> @man man/man5/yuv4mpeg.5
> -%%SHARED%%
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
--
f u cn rd ths, u mst hv bn sng nx