Re: UPDATE: graphics/ffmpeg
Hi, I just started testing this update. More results later, but for now I just wanted to mention that lib-depends-check wants WANTLIB += ogg for the bin/ffserver binary. Thanks for the update. Moritz
Re: UPDATE: graphics/ffmpeg
Nikns Siankin wrote: http://secure.lv/~nikns/stuff/ports/ffmpeg-20070110.diff Tested on i386 (with an added ogg-WANTLIB), with VLC and my ports that I have in my submit queue. Everything works fine, except that VLC is now complaining a bit: vlc:/usr/local/lib/vlc/codec/libquicktime_plugin.so: undefined symbol 'NewHandleClear' vlc:/usr/local/lib/vlc/codec/libffmpeg_plugin.so: undefined symbol 'img_resample_init' vlc:/usr/local/lib/vlc/codec/libffmpeg_plugin.so: undefined symbol 'img_convert' vlc:/usr/local/lib/vlc/codec/libffmpeg_plugin.so: undefined symbol 'img_resample_close' vlc:/usr/local/lib/vlc/codec/libffmpeg_plugin.so: undefined symbol 'img_resample' vlc:/usr/local/lib/vlc/codec/libffmpeg_plugin.so: undefined symbol 'img_resample_full_init' It doesn't impair its ability to play videos without problems, though. Moritz
Re: UPDATE: graphics/ffmpeg
On Mon, Dec 11, 2006 at 03:53:23PM +0200, Nikns Siankin wrote: Added regression tests. Added back external decoders. relevant portion of the official ChangeLog: - DV50 AKA DVCPRO50 encoder, decoder, muxer and demuxer - TechSmith Camtasia (TSCC) video decoder - IBM Ultimotion (ULTI) video decoder - Sierra Online audio file demuxer and decoder - Apple QuickDraw (qdrw) video decoder - Creative ADPCM audio decoder (16 bits as well as 8 bits schemes) - Electronic Arts Multimedia (WVE/UV2/etc.) file demuxer - Miro VideoXL (VIXL) video decoder - H.261 video encoder - QPEG video decoder - Nullsoft Video (NSV) file demuxer - Shorten audio decoder - LOCO video decoder - Apple Lossless Audio Codec (ALAC) decoder - Winnov WNV1 video decoder - Autodesk Animator Studio Codec (AASC) decoder - Indeo 2 video decoder http://secure.lv/~nikns/stuff/ports/ffmpeg-20061211.diff Hi Nikns, Add the following diff to the port update and send it back out. This will unbreak support for the WMA audio format, which is also used in WMV video. With the port as is WMV files and WMA files cannot be played on a i386 system with SSE support, the result being 100% reproducible crash every time. Bug fix for crashes when SSE is used on unaligned arrays. No measureable change in speed. This gave random crashes on Win32 and BeOS. The cause for this bug is that gcc doesn't align the stackframe. Linux and glibc always ensure this to be true thus this never affected Linux. $OpenBSD$ --- libavcodec/wmadec.c.origTue Dec 26 17:11:00 2006 +++ libavcodec/wmadec.c Tue Dec 26 17:13:58 2006 @@ -115,6 +115,8 @@ typedef struct WMADecodeContext { float max_exponent[MAX_CHANNELS]; int16_t coefs1[MAX_CHANNELS][BLOCK_MAX_SIZE]; DECLARE_ALIGNED_16(float, coefs[MAX_CHANNELS][BLOCK_MAX_SIZE]); +DECLARE_ALIGNED_16(FFTSample, output[BLOCK_MAX_SIZE * 2]); +DECLARE_ALIGNED_16(float, window[BLOCK_MAX_SIZE * 2]); MDCTContext mdct_ctx[BLOCK_NB_SIZES]; float *windows[BLOCK_NB_SIZES]; DECLARE_ALIGNED_16(FFTSample, mdct_tmp[BLOCK_MAX_SIZE]); /* temporary storage for imdct */ @@ -717,7 +719,6 @@ static int wma_decode_block(WMADecodeCon { int n, v, a, ch, code, bsize; int coef_nb_bits, total_gain, parse_exponents; -DECLARE_ALIGNED_16(float, window[BLOCK_MAX_SIZE * 2]); int nb_coefs[MAX_CHANNELS]; float mdct_norm; @@ -1072,7 +1073,7 @@ static int wma_decode_block(WMADecodeCon next_block_len = 1 s-next_block_len_bits; /* right part */ -wptr = window + block_len; +wptr = s-window + block_len; if (block_len = next_block_len) { for(i=0;iblock_len;i++) *wptr++ = s-windows[bsize][i]; @@ -1088,7 +1089,7 @@ static int wma_decode_block(WMADecodeCon } /* left part */ -wptr = window + block_len; +wptr = s-window + block_len; if (block_len = prev_block_len) { for(i=0;iblock_len;i++) *--wptr = s-windows[bsize][i]; @@ -1107,14 +1108,13 @@ static int wma_decode_block(WMADecodeCon for(ch = 0; ch s-nb_channels; ch++) { if (s-channel_coded[ch]) { -DECLARE_ALIGNED_16(FFTSample, output[BLOCK_MAX_SIZE * 2]); float *ptr; int n4, index, n; n = s-block_len; n4 = s-block_len / 2; s-mdct_ctx[bsize].fft.imdct_calc(s-mdct_ctx[bsize], - output, s-coefs[ch], s-mdct_tmp); + s-output, s-coefs[ch], s-mdct_tmp); /* XXX: optimize all that by build the window and multipying/adding at the same time */ @@ -1122,13 +1122,13 @@ static int wma_decode_block(WMADecodeCon /* multiply by the window and add in the frame */ index = (s-frame_len / 2) + s-block_pos - n4; ptr = s-frame_out[ch][index]; -s-dsp.vector_fmul_add_add(ptr,window,output,ptr,0,2*n,1); +s-dsp.vector_fmul_add_add(ptr,s-window,s-output,ptr,0,2*n,1); /* specific fast case for ms-stereo : add to second channel if it is not coded */ if (s-ms_stereo !s-channel_coded[1]) { ptr = s-frame_out[1][index]; -s-dsp.vector_fmul_add_add(ptr,window,output,ptr,0,2*n,1); + s-dsp.vector_fmul_add_add(ptr,s-window,s-output,ptr,0,2*n,1); } } }
Re: update: graphics/ffmpeg: 20060312p0 - 20060312p1
From the give-him-enough-time-and-he'll-figure-it-out department: I just realized that the dependency on xvidcore is not needed: xvidcore generates mpeg4 compliant streams (fourcc XviD), ffmpeg can also generate mpeg4 compliant streams (fourcc DivX), and my iPod will play either of them. I don't notice any difference in video quality on the iPod, thus I removed the xvidcore dependency in favour of ffmpeg's own mpeg4 codec. While I was testing this, I got really annoyed by the malloc.h warnings, so I made those go away too. The sample command line for transcoding to your video ipod is now: ffmpeg -vcodec mpeg4 -b 350 -qmax 10 -bufsize 4096 -g 300 -acodec aac -ab 96 -ac 2 -i input.mpg -s 320x240 output.mp4 The resulting file can be loaded on to video ipods with audio/gtkpod. -- GDB has a 'break' feature; why doesn't it have 'fix' too? ffmpeg.diff Description: Binary data
Re: update: graphics/ffmpeg
On Sat, Mar 18, 2006 at 04:31:04PM -0800, Jacob Meuser wrote: here's an update for FFmpeg to CVS as of 3/12/06. there are a whole lot of changes between the FFmpeg in ports and this version. relevant portion of the official ChangeLog: - Fraps FPS1 video decoder - Snow video encoder/decoder - Sonic audio encoder/decoder - Vorbis audio decoder - Macromedia ADPCM decoder - Duck TrueMotion 2 video decoder - support for decoding FLX and DTA extensions in FLIC files - H.264 custom quantization matrices support - ffserver fixed, it should now be usable again - QDM2 audio decoder - Real Cooker audio decoder - TrueSpeech audio decoder - WMA2 audio decoder fixed, now all files should play correctly - RealAudio 14.4 and 28.8 decoders fixed - JPEG-LS encoder and decoder - CamStudio video decoder - build system improvements - tabs and trailing whitespace removed from the codebase - AIFF/AIFF-C audio format, encoding and decoding - ADTS AAC file reading and writing - Creative VOC file reading and writing - American Laser Games multimedia (*.mm) playback system - Zip Blocks Motion Video decoder - Improved Theora/VP3 decoder - True Audio (TTA) decoder - AVS demuxer and video decoder also, bktr(4) support has been integrated upstream, and most of the source patches in the port are no longer necessary. I have been testing FFmpeg snapshots pretty heavily on amd64 and just a little on i386. I've also included patches for the ports that depend on FFmpeg, (multimedia/libquicktime, multimedia/transcode, x11/vlc), because libavcodec depends on a new set of libraries. please review/test/comment, and give me OKs :) -- [EMAIL PROTECTED] Index: graphics/ffmpeg/Makefile === RCS file: /cvs/ports/graphics/ffmpeg/Makefile,v retrieving revision 1.18 diff -u -r1.18 Makefile --- graphics/ffmpeg/Makefile 31 Dec 2005 08:45:56 - 1.18 +++ graphics/ffmpeg/Makefile 18 Mar 2006 23:58:57 - @@ -1,105 +1,71 @@ -# $OpenBSD: Makefile,v 1.18 2005/12/31 08:45:56 steven Exp $ +# $OpenBSD$ COMMENT= audio/video converter and streamer with bktr(4) support -DISTNAME=FFMpeg-20050413 -PKGNAME= ${DISTNAME:L} -SHARED_LIBS= avcodec 6.0 \ - avformat6.0 \ - postproc6.0 -CATEGORIES= graphics x11 -MASTER_SITES=http://www.jakemsr.com/ -#http://mplayerhq.hu/MPlayer/cvs/ +DISTNAME=ffmpeg-cvs-20060312 +PKGNAME= ${DISTNAME:S/-cvs//} +SHARED_LIBS= avutil 49.0 \ + avcodec 51.7 \ + avformat50.3 \ + postproc51.1 +CATEGORIES= graphics multimedia When we fully control the versioning I don't see the point of such a large increae in major revisions. Why not just bump avcodec, avformat and postproc to 7.0 and start avutil at 1.0? Otherwise I am Ok with the rest. -EXTRACT_SUFX=.tar.bz2 +HOMEPAGE=http://www.ffmpeg.org/ -HOMEPAGE=http://www.ffmpeg.org/ - -MAINTAINER= Jacob Meuser [EMAIL PROTECTED] +MAINTAINER= Jacob Meuser [EMAIL PROTECTED] # GPL -PERMIT_DISTFILES_CDROM= patents -PERMIT_DISTFILES_FTP=Yes -PERMIT_PACKAGE_CDROM=Yes +PERMIT_PACKAGE_CDROM=patents PERMIT_PACKAGE_FTP= Yes -WANTLIB= X11 Xext c m ogg ossaudio pthread usbhid z +PERMIT_DISTFILES_CDROM= Yes +PERMIT_DISTFILES_FTP=Yes + +# only available through CVS +MASTER_SITES=http://www.jakemsr.com/ + +BUILD_DEPENDS= ::textproc/texi2html +LIB_DEPENDS= SDL.4::devel/sdl +WANTLIB= X11 Xext c freetype m pthread ossaudio usbhid z -BUILD_DEPENDS= ::textproc/texi2html -LIB_DEPENDS= SDL.2.0::devel/sdl \ - a52.0.0::audio/liba52 \ - mp3lame.0.1::audio/lame \ - vorbis.4.0,vorbisenc.2.0::audio/libvorbis - -NO_REGRESS= Yes # Possible to adapt with some work -USE_GMAKE= Yes -USE_X11= Yes +USE_X11= Yes +USE_GMAKE= Yes # It's either this or disable mmx so postprocess_template.c will build. .if ${MACHINE_ARCH} == i386 CFLAGS+=-fomit-frame-pointer .endif -CONFIGURE_STYLE=simple -CONFIGURE_ENV+= CPPFLAGS=-I${LOCALBASE}/include -CONFIGURE_ARGS+=${CONFIGURE_SHARED} \ - --cc=${CC} \ - --make=${MAKE_PROGRAM} \ - --extra-cflags=-I${LOCALBASE}/include \ - --extra-ldflags=-L${LOCALBASE}/lib -L${X11BASE}/lib \ - --disable-opts \ - --enable-a52 \ - --enable-pp \ - --enable-mp3lame \ - --enable-libogg \ - --enable-vorbis \ - --enable-gpl \ - --enable-pthreads \ - --disable-debug - -MAKE_ENV+= LDFLAGS=-L${X11BASE}/lib