Commit Graph

2111 Commits

Author SHA1 Message Date
Anton Khirnov
0393af4f0b vf_settb: simplify start_frame().
Avoid pointless filter ref/unref. Just use the reference passed to
start_frame().
2012-07-20 21:08:50 +02:00
Anton Khirnov
9203fa0b32 vf_fieldorder: don't give up its own reference to the output buffer. 2012-07-20 21:08:26 +02:00
Anton Khirnov
f493c644cd vf_pad: don't give up its own reference to the output buffer. 2012-07-20 21:08:13 +02:00
Anton Khirnov
ad8b6326aa vf_overlay: don't access a buffer reference that's been given away. 2012-07-20 21:07:51 +02:00
Anton Khirnov
7155763b78 vf_drawtext: don't give up its own reference to the input buffer.
Directly forwarding the input buffer to the next filter means that
drawtext no longer owns any references to it and thus shouldn't refer to
it in any way.
2012-07-20 21:07:32 +02:00
Anton Khirnov
d19499c796 vf_gradfun: don't store two pointers to one AVFilterBufferRef. 2012-07-20 21:07:11 +02:00
Anton Khirnov
0fe010a36f vf_delogo: don't store two pointers to one AVFilterBufferRef. 2012-07-20 21:06:49 +02:00
Anton Khirnov
51a8049be8 vf_aspect: clear AVFilterLink.cur_buf in start_frame().
The buffer is passed on to the next filter, so we shouldn't keep any
pointers to it.
2012-07-20 21:06:40 +02:00
Robert Nagy
b70d89a033 lavfi: add avfilter_unref_bufferp()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-07-20 21:06:18 +02:00
Nicolas George
cb6a20fa56 lavfi: add FF_*LINK_IDX convenience macros. 2012-07-20 13:16:24 +02:00
Nicolas George
97f86680eb lavfi: make copy_buffer_ref common. 2012-07-20 13:16:23 +02:00
Michael Niedermayer
e03cd1049e Fix misspellings of FFmpeg
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-19 18:44:46 +02:00
Michael Niedermayer
ef1c0b5295 avfiltergraph: add some debug info about selected pixel formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-18 17:22:17 +02:00
Stefano Sabatini
712d82130e lavfi/avfiltergraph: apply misc fixes to fix avfilter_graph_request_oldest() @return doxy 2012-07-18 17:13:00 +02:00
Nicolas George
d483867525 avfiltergraph: document a catch in request_oldest().
This one is tricky. Consider a graph with two sink links, A and B.
request_oldest() requests on A, and A returns EOF. This EOF causes
a filter to flush pending frames to B; they are unrequested.
Then request_oldest() moves on to B, and B returns EOF.
2012-07-17 23:47:33 +02:00
Nicolas George
f98d814bb6 avfiltergraph: add a debug message on EOF. 2012-07-17 23:46:26 +02:00
Nicolas George
d06bfda07e lavfi: rescale link->current_pts.
The doxy says, and the heap implementations assumes,
it is in AV_TIME_BASE units.
2012-07-17 23:46:26 +02:00
Stefano Sabatini
fda968aa8f lavfi: decrease logging level of message showing initial parameters
Reduce log clutter, consistent with 1a49a169eb.
2012-07-15 15:07:03 +02:00
Steven Robertson
c88d98fe4a lavfi/movie: reindent after the previous patch
Signed-off-by: Steven Robertson <steven@strobe.cc>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-07-10 01:37:54 +02:00
Steven Robertson
ac726a4f0c lavfi/movie: flush decoder frames on EOF
movie currently forwards EOF (or begins looping) immediately upon
reaching the last packet in the input stream, which can leave frames in
the decoder. This change first tries to read any remaining packets from
the decoder before forwarding EOF.

Signed-off-by: Steven Robertson <steven@strobe.cc>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-07-10 01:37:18 +02:00
Stefano Sabatini
a5382b50f2 lavfi/buffersink: restore possibility to pass opaque data
Use the init_opaque callback for the purpose.

Fix regression introduced in a5e8c41c28. In particular, fix lavfi
device in case a conversion to the supported (packed) formats is needed.
2012-07-10 01:29:47 +02:00
Stefano Sabatini
21d5609826 lavfi: add init_opaque callback
This will be used by filters which require an opaque field to be passed
in input. Should be required only for filters which imply a programmatic
use.

This is possibly a temporary solution, to be removed when we'll have a
clearer and better agreememnt of how/if to pass binary data for
initializing a filter.

See thread:
Subject: [FFmpeg-devel][PATCH] lavfi: add init2 callback
Date: Fri,  6 Jul 2012 01:22:17 +0200
2012-07-10 01:29:17 +02:00
Michael Niedermayer
f8911b987d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mss3: use standard zigzag table
  mss3: split DSP functions that are used in MTS2(MSS4) into separate file
  motion-test: do not use getopt()
  tcp: add initial timeout limit for incoming connections
  configure: Change the rdtsc check to a linker check
  avconv: propagate fatal errors from lavfi.
  lavfi: add error handling to filter_samples().
  fate-run: make avconv() properly deal with multiple inputs.
  asplit: don't leak the input buffer.
  af_resample: fix request_frame() behavior.
  af_asyncts: fix request_frame() behavior.
  libx264: support aspect ratio switching
  matroskadec: honor error_recognition when encountering unknown elements.
  lavr: resampling: add support for s32p, fltp, and dblp internal sample formats
  lavr: resampling: add filter type and Kaiser window beta to AVOptions
  lavr: Use AV_SAMPLE_FMT_NONE to auto-select the internal sample format
  lavr: mix: validate internal sample format in ff_audio_mix_init()

Conflicts:
	ffmpeg.c
	ffplay.c
	libavcodec/libx264.c
	libavfilter/audio.c
	libavfilter/split.c
	libavformat/tcp.c
	tests/fate-run.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-09 22:40:12 +02:00
Anton Khirnov
cd99146253 lavfi: add error handling to filter_samples(). 2012-07-09 08:25:19 +02:00
Anton Khirnov
083d0f6be8 asplit: don't leak the input buffer. 2012-07-09 08:22:11 +02:00
Anton Khirnov
1ffb645662 af_resample: fix request_frame() behavior.
Make sure that an output frame has really been produced before returning
0.
2012-07-09 08:21:37 +02:00
Anton Khirnov
6f834293d3 af_asyncts: fix request_frame() behavior.
Make sure that an output frame has really been produced before returning
0.
2012-07-09 08:21:15 +02:00
Justin Ruggles
8ca08066fc lavr: Use AV_SAMPLE_FMT_NONE to auto-select the internal sample format
Also make this the default value.
2012-07-08 15:22:11 -04:00
Nicolas George
299387ebf4 vf_settb: rename the file as f_settb. 2012-07-08 19:54:08 +02:00
Nicolas George
65e65e3ce2 settb: cosmetic: reindent vf_settb structure. 2012-07-08 19:54:08 +02:00
Nicolas George
ba856c0be5 lavfi: implement asettb filter. 2012-07-08 19:54:08 +02:00
Michael Niedermayer
e145afb4b0 vf_tinterlace: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-08 03:47:38 +02:00
Stefano Sabatini
abb0a9982f lavfi: do not pass opaque field to init functions
Fix signature mismatch warnings.
2012-07-08 01:18:15 +02:00
Michael Niedermayer
9fb08427d7 vf_pp: dont pass NULL into pp, it would fail
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 19:14:51 +02:00
Michael Niedermayer
46a47077ee Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: add functions for testing code fragments
  af_amix: avoid spurious EAGAIN.
  af_amix: return AVERROR(EAGAIN) when request_frame didn't produce output.
  af_amix: only consider negative return codes as errors.
  avconv: use only meaningful timestamps in start time check.
  avconv: fix the check for -ss as an output option.
  mss3: add forgotten 'static' qualifier for private table
  lavc: options: add planar names for request_sample_fmt
  flacdec: add planar output support
  flvdec: Treat all nellymoser versions as the same codec

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 02:17:30 +02:00
Anton Khirnov
b7558ac293 af_amix: avoid spurious EAGAIN.
Input on/off state can change in request_samples(), which can result in
a state where only the first input is active. get_available_samples()
will then return 0, and request_frame() will fail with EAGAIN even
though there is data on the single active input.

Take this into account and check the number of active inputs again after
calling request_samples().
2012-07-06 13:51:58 +02:00
Anton Khirnov
54bf88e65f af_amix: return AVERROR(EAGAIN) when request_frame didn't produce output.
0 should only be returned when there was at least one output frame.
2012-07-06 13:51:58 +02:00
Anton Khirnov
428b369804 af_amix: only consider negative return codes as errors. 2012-07-06 13:51:58 +02:00
Stefano Sabatini
3e3e414fe4 lavfi/buffersink: fix doxy, remove "video" reference
The file contains the code for the audio buffersink as well.
2012-07-06 01:11:45 +02:00
Michael Niedermayer
039e9fe01c Merge remote-tracking branch 'qatar/master'
* qatar/master: (29 commits)
  lavfi: reclassify showfiltfmts as a TESTPROG
  graph2dot: fix printf format specifier
  swscale: yuv2planeX 8bit >=sse2 functions need aligned stack on x86-32.
  vp8: loopfilter >=sse2 functions need aligned stack on x86-32.
  amr: remove shift out of the AMR_BIT() macro.
  dsputilenc: group yasm and inline asm function pointer assignment.
  mov: use forward declaration of a function instead of a table.
  Clarify Doxygen comment for FF_API_* #defines.
  configure: simplify get_version()
  Create version.h headers for libraries that lack them
  gitignore: Use full path instead of relative path to specify patterns
  mpegvideo: remove VLAs
  Add XTEA encryption support in libavutil
  Add Blowfish encryption support in libavutil
  eval: Add the isinf() function and tests for it
  flacdec: move lpc filter to flacdsp
  flacdec: split off channel decorrelation as flacdsp
  avplay: Add an option for not limiting the input buffer size
  FATE: add a test for WMA cover art.
  FATE: add a test for apetag cover art
  ...

Conflicts:
	.gitignore
	configure
	ffplay.c
	libavcodec/Makefile
	libavcodec/error_resilience.c
	libavcodec/mpegvideo.c
	libavcodec/ratecontrol.c
	libavdevice/avdevice.h
	libavfilter/Makefile
	libavfilter/filtfmts.c
	libavfilter/version.h
	libavformat/mov.c
	libavformat/version.h
	libavutil/Makefile
	libavutil/avutil.h
	libavutil/version.h
	libswscale/swscale.h
	libswscale/x86/swscale_mmx.c
	tests/fate/libavutil.mak
	tests/lavfi-regression.sh
	tools/graph2dot.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 21:03:28 +02:00
Mans Rullgard
7c29377b70 lavfi: reclassify showfiltfmts as a TESTPROG
This tool uses lavfi internal symbols not accessible in shared
libraries.  TESTPROGS are linked statically to allow them use of
library internals not normally exported.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-04 17:48:25 +01:00
Diego Biurrun
2047e40e6e Clarify Doxygen comment for FF_API_* #defines. 2012-07-04 15:10:10 +02:00
Michael Niedermayer
86e107a7d4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  cosmetics: Consistently use C-style comments with multiple inclusion guards
  anm: fix a few Doxygen comments
  misc typo and wording fixes
  attributes: add av_noreturn
  attributes: drop pointless define guards
  configure: do not disable av_always_inline with --enable-small
  flvdec: initial stream switch support
  avplay: fix write on freed memory for rawvideo
  snow: remove a VLA used for edge emulation
  x86: lavfi: fix gradfun/yadif build with mmx/sse disabled
  snow: remove the runs[] VLA.
  snow: Check mallocs at init
  flacdec: remove redundant setting of avctx->sample_fmt

Conflicts:
	ffplay.c
	libavcodec/h264.c
	libavcodec/snow.c
	libavcodec/snow.h
	libavcodec/snowdec.c
	libavcodec/snowenc.c
	libavformat/flvdec.c
	libavutil/attributes.h
	tools/patcheck

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 00:32:31 +02:00
Carl Eugen Hoyos
71e5a14028 Suggest aresample filter if it was not compiled but requested. 2012-07-03 21:35:20 +02:00
Diego Biurrun
1a068bfefd cosmetics: Consistently use C-style comments with multiple inclusion guards 2012-07-03 17:35:12 +02:00
Diego Biurrun
09f211987c misc typo and wording fixes 2012-07-03 17:35:11 +02:00
Mans Rullgard
fb93e61e2b x86: lavfi: fix gradfun/yadif build with mmx/sse disabled
These functions are defined conditionally so any uses need to have
preprocessor guards.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-03 14:14:13 +01:00
Michael Niedermayer
c9de83fefd yadif/x86: add prototypes for functions, make code valid C again.
Broken by: libav (a87b17f328)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 12:47:11 +02:00
Stefano Sabatini
bb6effe059 lavfi: remove vsrc_buffer.h API
The vsrc_buffer.h is not installed since commit 0b3b958135, so there is
no point into keeping it around.

The buffersrc.h API, which is more powerful, should be used instead.
2012-07-03 01:32:16 +02:00
Michael Niedermayer
b6851d34c0 x86/gradfun: fix compilation failure on open solaris
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:51:03 +02:00
Michael Niedermayer
b286383bd2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  asfdec: read attached pictures.
  apetag: reindent
  apetag: export attached covers as video streams.
  apetag: fix the amount of data read from binary tags.
  apetag: make sure avio_get_str() doesn't read more than it should.
  mov: read itunes cover art.
  snow: remove VLA in mc_block()
  intfloat: Don't use designated initializers in the public headers
  snow: remove a VLA.
  doc: Remind devs to check return values, especially for malloc() et al
  MS ATC Screen (aka MSS3) decoder
  vf_yadif: move x86 init code to x86/yadif.c
  vf_gradfun: move x86 init code to x86/gradfun.c
  roqvideo: Remove a totally unused dspcontext
  smacker: remove some unused code
  dsicin: remove dead assignment
  aacdec: remove dead assignment
  rl2: remove dead assignment
  proresenc: make a variable local to the loop where it is used
  alsdec: remove dead assignments

Conflicts:
	Changelog
	doc/developer.texi
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/version.h
	libavfilter/gradfun.h
	libavfilter/x86/gradfun.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 21:19:41 +02:00
Mans Rullgard
a87b17f328 vf_yadif: move x86 init code to x86/yadif.c
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-02 01:16:37 +01:00
Mans Rullgard
2f0accf103 vf_gradfun: move x86 init code to x86/gradfun.c
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-02 01:16:37 +01:00
Nicolas George
1f5c1333a7 sink_buffer: implement fixed frame size. 2012-06-30 14:03:54 +02:00
Nicolas George
0689d5e17a lavfi: implement samples framing on links.
Links can be set up to group samples into buffers of
specified minimum and maximum size.
2012-06-30 14:03:54 +02:00
Michael Niedermayer
be4ffb28b3 vf_ass: fix table name to refer to correct lib.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 11:28:34 +02:00
Michael Niedermayer
c83ed18d45 formats.h: fix project reference in comment
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 11:26:18 +02:00
Stefano Sabatini
b0fdd3489a lavfi: deprecate av_buffersrc_buffer() function
Favor av_buffersrc_add_ref() instead, which is more powerful.
2012-06-28 22:27:05 +02:00
Nicolas George
fcf8706ed9 sink_buffer: warn when there are too many buffers. 2012-06-28 21:10:03 +02:00
Nicolas George
05d6cc116e buffersrc: warn when there are too many buffers. 2012-06-28 21:10:03 +02:00
Paul B Mahol
3f59bbf5b6 lavfi/amerge: silence warnings
The warning silenced was: libavfilter/af_amerge.c:144:29: warning: conversion specifies type 'long long' but the argument has type 'int' [-Wformat]

The warning was introduced after FF_API_SAMPLERATE64 removal.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-28 17:18:37 +00:00
Michael Niedermayer
b536e2facf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: add an assert to silence an uninitialized variable warning.
  avconv: shut up an uninitialized variable warning.
  avfiltergraph: shut up uninitialized variable warning.
  af_join: initialize a variable to shut up gcc warning.
  amix: fix format specifier for AVFilterLink.sample_rate.
  lavfi: make filters less verbose.
  mpc8: read APE tags.
  lavr: x86: fix ff_conv_fltp_to_flt_6ch function prototypes
  libm: provide fallback definition for cbrtf() using powf()
  network: Don't redefine error codes if they already exist in errno.h
  configure: Check for sys/time.h
  network: Include unistd.h from network.h
  avconv: don't include vsrc_buffer.h, which doesn't exist anymore
  lavfi: reorder AVFilterLink fields.
  lavfi: reorder AVFilterContext fields.
  lavfi: reorder AVFilter fields.
  lavfi: reorder AVFilterBufferRef fields.
  lavfi: reorder AVFilterBuffer fields.

Conflicts:
	configure
	libavcodec/v210dec.h
	libavfilter/asrc_anullsrc.c
	libavfilter/avfilter.h
	libavfilter/buffersrc.c
	libavfilter/src_movie.c
	libavfilter/vf_aspect.c
	libavfilter/vf_crop.c
	libavfilter/vf_drawbox.c
	libavfilter/vf_fade.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/vsrc_color.c
	libavformat/network.h
	libavutil/libm.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-27 01:58:09 +02:00
Michael Niedermayer
5916bc4658 Merge commit '1961e46c15c23a041f8d8614a25388a3ee9eff63'
* commit '1961e46c15c23a041f8d8614a25388a3ee9eff63':
  lavfi: remove disabled FF_API_FILTERS_PUBLIC cruft
  lavfi: remove disabled FF_API_DEFAULT_CONFIG_OUTPUT_LINK cruft
  lavfi: use proper FF_API guards for different deprecated functions
  lavfi: remove disabled FF_API_VSRC_BUFFER_ADD_FRAME cruft
  lavfi: remove disabled FF_API_SAMPLERATE64 cruft
  lavfi: remove disabled FF_API_GRAPH_AVCLASS cruft

Conflicts:
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/buffersrc.c
	libavfilter/formats.c
	libavfilter/graphparser.c
	libavfilter/version.h
	libavfilter/video.c
	libavfilter/vsrc_buffer.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-27 00:34:36 +02:00
Michael Niedermayer
052f4f859c Merge commit 'a5e8c41c28f907d98d2a739db08f7aef4cbfcf3a'
* commit 'a5e8c41c28f907d98d2a739db08f7aef4cbfcf3a':
  lavfi: remove 'opaque' parameter from AVFilter.init()
  mov: do not try to read total disc/track number if data atom is too short.
  avconv: fix -force_key_frames
  dxva2_h264: fix signaling of mbaff frames
  x86: fft: elf64: fix PIC build

Conflicts:
	ffmpeg.c
	libavcodec/v210dec.h
	libavfilter/asrc_anullsrc.c
	libavfilter/buffersrc.c
	libavfilter/src_movie.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_overlay.c
	libavfilter/vsrc_color.c
	libavfilter/vsrc_testsrc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-26 23:57:07 +02:00
Anton Khirnov
61d158c321 avfiltergraph: shut up uninitialized variable warning.
The warning silenced was:
libavfilter/avfiltergraph.c: In function ‘avfilter_graph_config’:
libavfilter/avfiltergraph.c:500:13: warning: ‘best_idx’ may be used uninitialized in this function [-Wuninitialized]
2012-06-26 19:10:17 +02:00
Anton Khirnov
fd2784c3b5 af_join: initialize a variable to shut up gcc warning.
The warning silenced was:
libavfilter/af_join.c: In function ‘join_request_frame’:
libavfilter/af_join.c:451:9: warning: ‘nb_samples’ may be used uninitialized in this function [-Wuninitialized]
2012-06-26 19:09:15 +02:00
Anton Khirnov
422008ac63 amix: fix format specifier for AVFilterLink.sample_rate.
It is a plain int now.
2012-06-26 19:08:26 +02:00
Anton Khirnov
1a49a169eb lavfi: make filters less verbose. 2012-06-26 19:08:13 +02:00
Anton Khirnov
83ba22392d lavfi: reorder AVFilterLink fields.
Move private fields to the private section, remove holes.
2012-06-26 13:25:13 +02:00
Anton Khirnov
f892013ac4 lavfi: reorder AVFilterContext fields.
Place related fields together, remove holes.
2012-06-26 13:24:36 +02:00
Anton Khirnov
9618080512 lavfi: reorder AVFilter fields.
Place related fields together, remove holes, move private fields to the
end and mark them as private.
2012-06-26 13:23:51 +02:00
Anton Khirnov
f14e685609 lavfi: reorder AVFilterBufferRef fields.
Place related fields together, remove holes.
2012-06-26 13:23:50 +02:00
Anton Khirnov
cb81e29138 lavfi: reorder AVFilterBuffer fields.
Place related fields together, remove holes.
2012-06-26 13:23:50 +02:00
Anton Khirnov
1961e46c15 lavfi: remove disabled FF_API_FILTERS_PUBLIC cruft 2012-06-26 13:20:19 +02:00
Anton Khirnov
5e88b96f37 lavfi: remove disabled FF_API_DEFAULT_CONFIG_OUTPUT_LINK cruft 2012-06-26 13:18:44 +02:00
Anton Khirnov
205e90249a lavfi: use proper FF_API guards for different deprecated functions 2012-06-26 13:17:31 +02:00
Nicolas George
784675ca91 sink_buffer: make opaque argument optional. 2012-06-26 13:17:30 +02:00
Nicolas George
a2bd8a9384 buffersink: group libav API functions. 2012-06-26 13:17:29 +02:00
Anton Khirnov
0b3b958135 lavfi: remove disabled FF_API_VSRC_BUFFER_ADD_FRAME cruft 2012-06-26 13:15:26 +02:00
Anton Khirnov
6c1e065bd4 lavfi: remove disabled FF_API_SAMPLERATE64 cruft 2012-06-26 13:15:14 +02:00
Anton Khirnov
8d900aa4d0 lavfi: remove disabled FF_API_GRAPH_AVCLASS cruft 2012-06-26 13:14:59 +02:00
Anton Khirnov
a5e8c41c28 lavfi: remove 'opaque' parameter from AVFilter.init()
It is not used in any filters currently and is inherently evil. If
passing binary data to filters is required in the future, it should be
done with some AVOptions-based system.
2012-06-26 13:13:48 +02:00
Stefano Sabatini
720ec62012 lavfi: drop deprecated and disabled packing API
It was deprecated and removed after the recent 2->3 major bump.
2012-06-26 11:40:21 +02:00
Stefano Sabatini
8dd0e87d7b lavfi: remove old video sink API
It was deprecated since a long time and removed after the 2->3 major
bump.
2012-06-26 11:40:08 +02:00
Stefano Sabatini
9b41ec4b9e lavfi/drawtext: use av_opt_free() to free private context
Simplify code.
2012-06-25 22:49:16 +02:00
Stefano Sabatini
6be8cfa034 lavfi/abuffer: increase logging level of the log showing initial parameters
Also show them in a more parsable/consistent fashion.
2012-06-25 22:49:16 +02:00
Stefano Sabatini
8a3544149f lavfi/avfilter.h: reorganize headers disposition
Group lavfi headers together, slightly improve readability.
2012-06-25 22:49:09 +02:00
Stefano Sabatini
43583fb85c lavfi/avcodec: deprecate avfilter_fill_frame_from_*_buffer_ref API
Deprecate functions:
avfilter_fill_frame_from_buffer_ref
avfilter_fill_frame_from_audio_buffer_ref
avfilter_fill_frame_from_video_buffer_ref

and schedule to drop them at the next API major bump.

The function avfilter_copy_buf_props() should be used instead.
2012-06-25 13:42:47 +02:00
Stefano Sabatini
972cad77fa lavfi: remove unnecessary inclusion of libavcodec/avcodec.h in avfilter.h
libavfilter API was designed in order to be clarly distinguished from the
libavcodec API, including avcodec.h in avfilter.h is not going to help to
stick to this principle.

The inclusion of libavutil/audioconvert.h in many files was required
because avcodec.h includes audioconvert.h.

libavfilter/avcodec.h is where the lavc/lavfi interface should be
entirely placed.
2012-06-25 13:42:37 +02:00
Stefano Sabatini
a31ab50712 lavfi: move some FF_API_ definitions from avfilter.h to version.h
version.h seems the right place for FF_API_ definitions.
2012-06-25 13:42:29 +02:00
Michael Niedermayer
62975afa68 af_aresample: fix sample_rate type.
should fix fate failures on 32bit x86 linux

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 15:13:39 +02:00
Michael Niedermayer
3013722c13 sink_buffer: assert that functions and sinks arent mixed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 14:17:14 +02:00
Michael Niedermayer
1c60088885 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: Only use optimizations with cmov if the CPU supports the instruction
  x86: Add CPU flag for the i686 cmov instruction
  x86: remove unused inline asm macros from dsputil_mmx.h
  x86: move some inline asm macros to the only places they are used
  lavfi: Add the af_channelmap audio channel mapping filter.
  lavfi: add join audio filter.
  lavfi: allow audio filters to request a given number of samples.
  lavfi: support automatically inserting the fifo filter when needed.
  lavfi/audio: eliminate ff_default_filter_samples().

Conflicts:
	Changelog
	libavcodec/x86/h264dsp_mmx.c
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/avfilter.h
	libavfilter/avfiltergraph.c
	libavfilter/version.h
	libavutil/x86/cpu.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 02:09:53 +02:00
Nicolas George
6fd0b55ab2 showwaves: fix PTS computation. 2012-06-23 15:08:23 +02:00
Nicolas George
6d627eae3c showwaves: fix first sample of frame test.
Avoids a huge memleak when n != 1.
2012-06-23 15:08:22 +02:00
Nicolas George
bd9939f495 lavfi: display pad type with mismatch error message. 2012-06-23 11:34:46 +02:00
Stefano Sabatini
c0ca840837 lavfi/buffer: remove unused function av_vsrc_buffer_add_frame_alt() 2012-06-23 00:42:51 +02:00
Stefano Sabatini
1dce2368bb lavfi/buffer: apply misc consistency nits 2012-06-23 00:42:51 +02:00
Stefano Sabatini
c17808cebd lavfi: define macro AVFILTER_DEFINE_CLASS
The macro can be used to define consistently the internal class of a
filter, save some typing and factorize.
2012-06-22 23:11:43 +02:00
Stefano Sabatini
012aa12a6b lavfi/drawtext: remove unnecessary parentheses in init() 2012-06-22 23:11:43 +02:00
Alex Converse
41e637e449 lavfi: Add the af_channelmap audio channel mapping filter.
Inspired by MPlayer's af_channels filter and SoX's remix effect.
2012-06-22 13:55:58 -07:00
Anton Khirnov
dc07fb6f7b lavfi: add join audio filter.
It joins multiple input streams into one multi-channel output.
2012-06-22 21:26:18 +02:00
Anton Khirnov
f75be9856a lavfi: allow audio filters to request a given number of samples.
This makes synchronization simpler for filters with multiple inputs.
2012-06-22 21:23:42 +02:00
Anton Khirnov
58b049f2fa lavfi: support automatically inserting the fifo filter when needed.
This breaks libavfilter ABI.
2012-06-22 21:06:01 +02:00
Anton Khirnov
fa06623930 lavfi/audio: eliminate ff_default_filter_samples().
It currently does the following:
1) get a zeroed audio buffer
2) copy some properties (but not the data) of the input buffer to it
3) pass this buffer to the output filter
This looks useless and is indeed not used by any filters, therefore
delete it.

Make ff_null_filter_samples() (just pass the buffer to the next filter)
the new default.
2012-06-22 20:58:19 +02:00
Michael Niedermayer
87dced8074 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fix hardcoded tables compililation caused by missing math constants
  lavf: Make codec_tag arrays constant
  twinvq: give massive struct a name.
  lavf, lavu: version bumps and APIchanges for av_gettime() move
  lavfi/audio: don't set cur_buf in ff_filter_samples().
  lavfi/fifo: add audio version of the fifo filter.
  fifo: fix parenthesis placement.
  lavfi: rename vf_fifo.c -> fifo.c
  lavc: remove stats_in from AVCodecContext options table.

Conflicts:
	doc/APIchanges
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/audio.c
	libavfilter/fifo.c
	libavformat/version.h
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-21 22:37:43 +02:00
Stefano Sabatini
1bb30d0295 lavfi/deshake: fix crash in uninit()
Add NULL check on avctx before calling avcodec_close() on it.

Fix trac ticket #1472.
2012-06-21 17:01:44 +02:00
Stefano Sabatini
cb08b6efc9 lavfi/scale: remove unused variable out_link
Fix warning:
libavfilter/vf_scale.c: In function ‘start_frame’:
libavfilter/vf_scale.c:284:23: warning: unused variable ‘out_link’ [-Wunused-variable]
2012-06-21 12:47:48 +02:00
Stefano Sabatini
c0b3c0ffb7 lavfi/audio: remove unused variable in ff_filter_samples()
Fix warning:
libavfilter/audio.c: In function ‘ff_filter_samples’:
libavfilter/audio.c:193:13: warning: unused variable ‘size’ [-Wunused-variable]
2012-06-21 12:47:48 +02:00
Stefano Sabatini
98701be356 lavfi/ass: update use of deprecated functions, fix warnings 2012-06-21 11:11:56 +02:00
Stefano Sabatini
eda4500866 lavfi/blackdetect: add logic for handling stream termination
Add request_frame() which checks the black duration when the end of the
stream is signalled. Allow to detect black video segments at the end of
the stream.

Note that the reported last black video segment duration is not very
accurate, since we still miss the duration information in the video
buffer.

Address trac ticket #1470.
2012-06-21 11:11:50 +02:00
Stefano Sabatini
5bc87f1cd6 lavfi/blackdetect: fix pts time debug printing 2012-06-21 11:00:20 +02:00
Anton Khirnov
e026c9b390 lavfi/audio: don't set cur_buf in ff_filter_samples().
It's redundant, since the input buffer is passed as a parameter to the
filter_samples() callback, and can lead to stale pointers remaining on
the link.
2012-06-21 09:27:05 +02:00
Anton Khirnov
4a97ff2fa7 lavfi/fifo: add audio version of the fifo filter. 2012-06-21 07:38:35 +02:00
Anton Khirnov
27570e211a fifo: fix parenthesis placement. 2012-06-21 07:38:28 +02:00
Anton Khirnov
394a2a0452 lavfi: rename vf_fifo.c -> fifo.c
It will be used for audio too.
2012-06-21 07:38:14 +02:00
Michael Niedermayer
5a90e55ece libavfilter/transform: fix mirroring.
mirror() borrowed from dwt.c, this could be moved to libavutil and made
public API, Ill submit a patch for this

Fixes Ticket1278

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 23:55:17 +02:00
Paul B Mahol
de05877390 lavfi: remove redundant checks after av_parse_video_rate()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-20 20:36:12 +00:00
Michael Niedermayer
e632a430fe vf_vflip: fix handling of the last line.
Fixes Ticket1271

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 20:14:01 +02:00
Michael Niedermayer
a46f8915be vf_lut: fix handling of odd dimensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 20:13:43 +02:00
Stefano Sabatini
3ea3e32e03 lavfi: add showwaves filter 2012-06-20 12:37:57 +02:00
Stefano Sabatini
93bbe53c44 lavfi/asplit: fix memleak
The input samples buffer must be unreferenced after it is propagated to
the output links.
2012-06-20 12:37:50 +02:00
Paul B Mahol
10952e0602 lavfi/color: fix typo
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-19 20:04:17 +00:00
Paul B Mahol
9e7543361c lavfi/color: use AVOptions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-19 19:27:41 +00:00
Michael Niedermayer
cabbd271a5 Merge remote-tracking branch 'qatar/master'
* qatar/master: (24 commits)
  flvdec: remove incomplete, disabled seeking code
  mem: add support for _aligned_malloc() as found on Windows
  lavc: Extend the documentation for avcodec_init_packet
  flvdec: remove incomplete, disabled seeking code
  http: replace atoll() with strtoll()
  mpegts: remove unused/incomplete/broken seeking code
  af_amix: allow float planar sample format as input
  af_amix: use AVFloatDSPContext.vector_fmac_scalar()
  float_dsp: add x86-optimized functions for vector_fmac_scalar()
  float_dsp: Move vector_fmac_scalar() from libavcodec to libavutil
  lavr: Add x86-optimized function for flt to s32 conversion
  lavr: Add x86-optimized function for flt to s16 conversion
  lavr: Add x86-optimized functions for s32 to flt conversion
  lavr: Add x86-optimized functions for s32 to s16 conversion
  lavr: Add x86-optimized functions for s16 to flt conversion
  lavr: Add x86-optimized function for s16 to s32 conversion
  rtpenc: Support packetizing iLBC
  rtpdec: Add a depacketizer for iLBC
  Implement the iLBC storage file format
  mov: Support muxing/demuxing iLBC
  ...

Conflicts:
	Changelog
	configure
	libavcodec/avcodec.h
	libavcodec/dsputil.c
	libavcodec/version.h
	libavformat/movenc.c
	libavformat/mpegts.c
	libavformat/version.h
	libavutil/mem.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 20:53:27 +02:00
Pavel Koshevoy
5fa8226420 libavfilter: improve atempo audio quality
Reduce audio fragment alignment jitter by penalizing alignment
correction offsets that deviate too much from the target offset.
This is accomplished by multiplying the cross correlation search
window with a quadratic function.

Signed-off-by: Pavel Koshevoy <pavel@homestead.aragog.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 17:29:27 +02:00
Michael Niedermayer
0412e5187e lavfi/avfilter: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 17:13:45 +02:00
Stefano Sabatini
db142a8395 lavfi/avcodec: make avfilter_fill_frame_from*() functions use avfilter_copy_buf_props()
The code in avfilter_copy_buf_props() is more generic, allow code
factorization.
2012-06-19 16:44:36 +02:00
Stefano Sabatini
8f8d8b9538 lavfi/avcodec: always use av_frame* accessors in avfilter_copy_buf_props()
Use av_frame_* accessors for the newly added fields in AVFrame (for which
we are supposed to use such accessors), and group the istructions
accordingly.
2012-06-19 16:44:35 +02:00
Stefano Sabatini
d5761fe47d lavfi/avcodec: copy pos field from AVFilterBuffer to AVFrame pkt_pos 2012-06-19 16:44:35 +02:00
Justin Ruggles
ae46fbee1d af_amix: allow float planar sample format as input 2012-06-18 18:01:14 -04:00
Justin Ruggles
f0ece49e74 af_amix: use AVFloatDSPContext.vector_fmac_scalar() 2012-06-18 18:01:14 -04:00
Paul B Mahol
54101214d8 lavfi: use designated initializers for AVClass
While here:
    - add missing .version and .category,
    - make .class_name consistent across filters,
    - align declarations.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-17 11:10:10 +00:00
Pavel Koshevoy
a1aac8d004 lavfi: add atempo filter
Add atempo audio filter for adjusting audio tempo without affecting
pitch. This filter implements WSOLA algorithm with fast cross
correlation calculation in frequency domain.

Signed-off-by: Pavel Koshevoy <pavel@homestead.aragog.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-06-17 12:50:35 +02:00
Paul B Mahol
c9e183b490 lavfi: update some deprecated functions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-16 15:15:16 +00:00
Paul B Mahol
fd8def9248 lavfi/super2xsai: fix fate test on bigendian
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-16 09:35:05 +00:00
Michael Niedermayer
46c50b1726 vf_pad: check that we have write permission before writing in the buffer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-16 01:54:50 +02:00
Stefano Sabatini
2b1fc5621d lavfi: add asetnsamples audio filter
This filter changes the number of samples on single output operation.

Based on a patch by Andrey Utkin <andrey.krieger.utkin@gmail.com>.
2012-06-16 00:54:20 +02:00
Stefano Sabatini
e20530add7 lavfi/split: give a more accurate description to split
The filter now supports a configurable number of outputs.
2012-06-16 00:46:58 +02:00
Stefano Sabatini
b2bcbcd999 lavfi/super2xsai: simplify code updating the color matrix at each y iteration
Remove duplicated out-of-loop init code, and do color matrix
initialization at the beginning of each y iteration.

Allow factorization and avoid an useless matrix update in the last
iteration.
2012-06-16 00:30:48 +02:00
Stefano Sabatini
4ebb46eb14 lavfi/super2xsai: fix table used to update color matrix at the end of each y loop
The previous table appears to be wrong (it was copied from the original
MPlayer super2xsai filter in order to keep binary compatibility).

The new table is consistent with the init code and apparently fixes a
combing artifact on the left edge of the generated image.
2012-06-16 00:30:42 +02:00
Stefano Sabatini
635a25954e lavfi/video: set output frame w/h properties in default_start_frame()
Use the same values of the video output link.

Avoid the need to override the default_start_frame() with an ad-hoc
start_frame() callback.

In particular, fix the super2xsai filter which was setting the
input w/h values in the output.
2012-06-16 00:30:27 +02:00
Stefano Sabatini
f0394f28c3 lavfi/avcodec: add consistency checks in avfilter_copy_buf_props()
The function will abort through an assert if the source is not defined,
or if the internal state of the source is inconsistent (e.g. type = AUDIO
&& !src->audio).
2012-06-16 00:30:13 +02:00
Michael Niedermayer
90d8506fbf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  af_resample: fix format modifier in debug string for FF_API_SAMPLERATE64
  segment: remove unnecessary <strings.h> include
  fate: add snow hpel tests

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 20:56:06 +02:00
Janne Grunau
fbc5740566 af_resample: fix format modifier in debug string for FF_API_SAMPLERATE64 2012-06-15 19:10:58 +02:00
William Yu
f77a695d2e lavfi: af_amerge options array was not ended with NULL
Add a NULL to prevent undefined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 11:22:05 +02:00
Michael Niedermayer
c7b9eab2be Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: Add a new option 'rtmp_buffer', for setting the client buffer time
  rtmp: Set the client buffer time to 3s instead of 0.26s
  rtmp: Handle server bandwidth packets
  rtmp: Display a verbose message when an unknown packet type is received
  lavfi/audio: use av_samples_copy() instead of custom code.
  configure: add all filters hardcoded into avconv to avconv_deps
  avfiltergraph: remove a redundant call to avfilter_get_by_name().
  lavfi: allow building without swscale.
  build: Do not delete tests/vsynth2 directory, which is no longer created.
  lavfi: replace AVFilterContext.input/output_count with nb_inputs/outputs
  lavfi: make AVFilterPad opaque after two major bumps.
  lavfi: add avfilter_pad_get_type() and avfilter_pad_get_name().
  lavfi: make avfilter_get_video_buffer() private on next bump.
  jack: update to new latency range API as the old one has been deprecated
  rtmp: Tokenize the AMF connection parameters manually instead of using strtok_r
  ppc: Rename H.264 optimization template file for consistency.
  lavfi: add channelsplit audio filter.
  golomb: check remaining bits during unary decoding in get_ur_golomb_jpegls()
  sws: fix planar RGB input conversions for 9/10/16 bpp.

Conflicts:
	Changelog
	configure
	doc/APIchanges
	ffmpeg.c
	libavcodec/golomb.h
	libavcodec/v210dec.h
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/asrc_anullsrc.c
	libavfilter/audio.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/avfiltergraph.c
	libavfilter/buffersrc.c
	libavfilter/formats.c
	libavfilter/version.h
	libavfilter/vf_frei0r.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/video.h
	libavfilter/vsrc_color.c
	libavformat/rtmpproto.c
	libswscale/input.c
	tests/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-13 22:43:57 +02:00
Anton Khirnov
9cdf74f904 lavfi/audio: use av_samples_copy() instead of custom code.
Fixes a possible invalid write, found by Nicolas George.
2012-06-13 13:58:58 +02:00
Anton Khirnov
24b2f4ed21 avfiltergraph: remove a redundant call to avfilter_get_by_name(). 2012-06-13 13:58:03 +02:00
Anton Khirnov
2f296e39a1 lavfi: allow building without swscale. 2012-06-13 13:57:47 +02:00