Version 3.0.5 is released

New releases, news, and anything else important.

Moderators: MtnViewJohn, chris, mtnviewmark

Locked
User avatar
MtnViewJohn
Site Admin
Posts: 875
Joined: Fri May 06, 2005 2:26 pm
Location: Mountain View, California
Contact:

Version 3.0.5 is released

Post by MtnViewJohn »

This version includes all of the fixes in the aborted 3.0.4 release plus the following:
  • fixed: crash when parsing version 2 paths
  • fixed: negative brightness, saturation, and alpha adjustments work correctly in adjustment variables and parameters.
  • fixed: crash when closing a window that had temporary files associated with it on OS X.
  • fixed: FILL primitive shape is no longer duplicated by CF::Symmetry operations
  • fixed: Makefile references libm
  • fixed: crash when multiplying output vertically (Posix and Windows CLI)
  • Two-value color targets and stateful color targets can be used together in the same version 2 cfdg file

User avatar
pakin
Posts: 40
Joined: Sat Apr 21, 2007 8:59 pm
Location: United States
Contact:

Re: Version 3.0.5 is released

Post by pakin »

I'm having trouble linking 3.0.5:

$ cc objs/cfdg.o objs/Rand64.o objs/makeCFfilename.o objs/cfdgimpl.o objs/renderimpl.o objs/builder.o objs/shape.o objs/variation.o objs/countable.o objs/tempfile.o objs/aggCanvas.o objs/HSBColor.o objs/SVGCanvas.o objs/primShape.o objs/bounds.o objs/shapeSTL.o objs/tiledCanvas.o objs/astexpression.o objs/astreplacement.o objs/pathIterator.o objs/stacktype.o objs/CmdInfo.o objs/abstractPngCanvas.o objs/ast.o objs/ffCanvas.o objs/pngCanvas.o objs/posixSystem.o objs/main.o objs/posixTimer.o objs/posixVersion.o objs/lex.yy.o objs/cfdg.tab.o objs/agg_trans_affine.o objs/agg_curves.o objs/agg_vcgen_contour.o objs/agg_vcgen_stroke.o objs/agg_bezier_arc.o objs/agg_color_rgba.o -Lsrc-ffmpeg/lib -L/usr/local/lib -lstdc++ -lpng -lz -lm -lavformat -lavcodec -lavutil -fexceptions -o cfdg
objs/ffCanvas.o: In function `ffCanvas::Impl::Impl(char const*, aggCanvas::PixelFormat, int, int, int, char*, int)':
ffCanvas.cpp:(.text+0x81): undefined reference to `avformat_alloc_output_context2'
objs/ffCanvas.o: In function `ffCanvas::Impl::~Impl()':
ffCanvas.cpp:(.text+0x37e): undefined reference to `avcodec_encode_video2'
objs/ffCanvas.o: In function `ffCanvas::end()':
ffCanvas.cpp:(.text+0x4da): undefined reference to `avcodec_encode_video2'
objs/ffCanvas.o: In function `ffCanvas::Impl::addFrame()':
ffCanvas.cpp:(.text+0x63a): undefined reference to `avcodec_encode_video2'
collect2: error: ld returned 1 exit status

This is on a 64-bit Ubuntu 12.10 (Quantal Quetzal) system.

User avatar
MtnViewJohn
Site Admin
Posts: 875
Joined: Fri May 06, 2005 2:26 pm
Location: Mountain View, California
Contact:

Re: Version 3.0.5 is released

Post by MtnViewJohn »

The Makefile wants to link in FFmpeg. This is the default configuration. At the bottom of README.ffmpeg is describes how to change the Makefile to disable FFmpeg support. I should make "disabled" be the default and have instructions for enabling FFmpeg support.

User avatar
pakin
Posts: 40
Joined: Sat Apr 21, 2007 8:59 pm
Location: United States
Contact:

Re: Version 3.0.5 is released

Post by pakin »

Yes, but I in fact want FFmpeg support. Note that the error isn't that I'm missing a library but rather that the linker can't find avcodec_encode_video2 within the libraries specified.

Is it possible that avcodec_encode_video2 has been deprecated, renamed, or replaced in the latest version of one of the libav*.a libraries?

User avatar
MtnViewJohn
Site Admin
Posts: 875
Joined: Fri May 06, 2005 2:26 pm
Location: Mountain View, California
Contact:

Re: Version 3.0.5 is released

Post by MtnViewJohn »

It links on my 64-bit Ubuntu 12.04 system with both FFmpeg 1.0 and FFmpeg 1.1. The undefined symbols are not deprecated in the latest versions.

Code: Select all

[$]› nm src-ffmpeg/lib/libavcodec.a | grep avcodec_encode_video2
0000000000002a10 T avcodec_encode_video2

[$]› nm src-ffmpeg/lib/libavformat.a | grep avformat_alloc_output_context2
0000000000000a70 T avformat_alloc_output_context2
Did you configure, build and install the FFmpeg libraries using the script at src-ffmpeg/make_ffmpeg_linux?

User avatar
pakin
Posts: 40
Joined: Sat Apr 21, 2007 8:59 pm
Location: United States
Contact:

Re: Version 3.0.5 is released

Post by pakin »

MtnViewJohn wrote:Did you configure, build and install the FFmpeg libraries using the script at src-ffmpeg/make_ffmpeg_linux?
I did not. I had assumed that README.ffmpeg applied only to systems that didn't already have FFmpeg installed.

Fortunately, cfdg 3.0.5 builds fine when I download FFmpeg 1.1.1 and use the script at src-ffmpeg/make_ffmpeg_linux. (Actually, I set the prefix to src-ffmpeg to skip the explicit copying step.) Given the frequency of Ubuntu software updates, it's surprising that Ubuntu 12.10 doesn't include yet a cfdg-compatible version of FFmpeg.

Thanks,
— Scott

P.S. I can't seem to turn on BBCode in the Announcements forum, but it's worked in all the other forums to which I've posted.

User avatar
MtnViewJohn
Site Admin
Posts: 875
Joined: Fri May 06, 2005 2:26 pm
Location: Mountain View, California
Contact:

Re: Version 3.0.5 is released

Post by MtnViewJohn »

Installing FFmpeg probably installed shared libraries, not static libraries. I will see what it takes to make cfdg compile against a standard install of FFmpeg.

I edited your post to uncheck 'Disable BBCode'. I have no idea why this was checked. It doesn't happen when I post. Your profile is set to allow BBCode and this forum allows BBCode. It's a mystery.

User avatar
MtnViewJohn
Site Admin
Posts: 875
Joined: Fri May 06, 2005 2:26 pm
Location: Mountain View, California
Contact:

Re: Version 3.0.5 is released

Post by MtnViewJohn »

The problem is that the Ubuntu FFmpeg package is still on version 0.8, which cfdg depends on the new API in FFmpeg version 1.0. This is why the avformat_alloc_output_context2 and avcodec_encode_video2 could not be found in the library, they don't exist in version 0.8.

User avatar
Monkstone
Posts: 13
Joined: Fri Jul 03, 2009 10:40 pm
Location: Pembrokeshire, UK
Contact:

Re: Version 3.0.5 is released

Post by Monkstone »

Some time ago ffmpeg split into two forks under the name of ffmpeg and libav.
Debian (hence Ubuntu) is following the libav fork in it's distribution and ffmpeg is deprecated, and is only provided for compatibility....
So it would be unwise to rely on installed libraries to provide ffmpeg on any Debian based distro.

User avatar
MtnViewJohn
Site Admin
Posts: 875
Joined: Fri May 06, 2005 2:26 pm
Location: Mountain View, California
Contact:

Re: Version 3.0.5 is released

Post by MtnViewJohn »

I didn't know about the fork. Maybe I will have ffcanvas use the 0.8 API.

Edit: No, I won't. I submitted a patch to FFmpeg to support grayscale quicktime movies. cfdg assumes that FFmpeg has this capability. Libav forked before this patch was approved and they do not pick up FFmpeg patches. I would rather depend on FFmpeg 1.0 than drop features to support Libav.

Locked