Commit Graph

1248 Commits

Author SHA1 Message Date
Stefano Sabatini
c535494268 avfiltergraph: make the AVFilterInOut alloc/free API public
This is required for letting applications to create and destroy
AVFilterInOut structs in a convenient way.
2011-06-12 22:46:02 +02:00
Stefano Sabatini
6119b23a36 avfiltergraph: change the syntax of avfilter_graph_parse()
Make it returns the list of open inputs and outputs, so it can be
reused by applications.

Breaks API/ABI.
2011-06-12 22:46:02 +02:00
Etienne Buira
39dbe9b6b8 Fix -t option for formats which holds dts and no pts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-11 02:26:26 +02:00
Michael Niedermayer
f9ecb849ef Merge remote-tracking branch 'qatar/master'
* qatar/master:
  crypto: Use av_freep instead of av_free
  lavf: don't try to free private options if priv_data is NULL.
  swscale: fix types of assembly arguments.
  swscale: move two macros that are only used once into caller.
  swscale: remove unused function.
  options: Add missing braces around struct initializer.
  mov: Remove leftover crufty debug statement with references to a local file.
  dvbsubdec: Fix compilation of debug code.
  Remove all uses of now deprecated metadata functions.
  Move metadata API from lavf to lavu.

Conflicts:
	doc/APIchanges
	libavformat/aiffdec.c
	libavformat/asfdec.c
	libavformat/avformat.h
	libavformat/avidec.c
	libavformat/cafdec.c
	libavformat/matroskaenc.c
	libavformat/mov.c
	libavformat/mp3enc.c
	libavformat/wtv.c
	libavutil/avutil.h
	libavutil/internal.h
	libswscale/swscale.c
	libswscale/x86/swscale_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-09 04:47:19 +02:00
Anton Khirnov
d2d67e424f Remove all uses of now deprecated metadata functions. 2011-06-08 07:43:45 +02:00
Michael Niedermayer
580817df04 Move code for "ffmpeg: fix massive leak occurring when seeking" / e4841a404b elsewhere
The picture struct is written to in the loop, so this cannot work.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-06 04:20:43 +02:00
Stefano Sabatini
27bcf55f45 vsrc_buffer: add flags param to av_vsrc_buffer_add_video_buffer_ref
The new flags parameter allows to specify if the video ref to add
should overwrite the cache, if the flag is not set vsrc_buffer will
complain and abort; otherwise it will clean the already cached video
ref before to overwrite it, thus avoiding a leak.
2011-06-06 01:35:27 +02:00
Stefano Sabatini
e4841a404b ffmpeg: fix massive leak occurring when seeking
Avoid to add frames to the vsrc_buffer in the case ist->pts <
start_time, as these frames are unused (and never released). In
particular this condition is verified with commands of the kind:
ffmpeg -i INPUT -ss TIME OUTPUT

Also allow a minor simplification.
2011-06-05 13:32:33 +02:00
Stefano Sabatini
96f931adf7 cmdutils: change the signature of the function argument in parse_options()
This is required for a pending simplification.
2011-06-05 13:21:02 +02:00
Michael Niedermayer
87f40364d1 Merge remote-tracking branch 'qatar/master'
* qatar/master: (21 commits)
  build: simplify commands for clean target
  swscale: split swscale.c in unscaled and generic conversion routines.
  swscale: cosmetics.
  swscale: integrate (literally) swscale_template.c in swscale.c.
  swscale: split out x86/swscale_template.c from swscale.c.
  swscale: enable hScale_altivec_real.
  swscale: split out ppc _template.c files from main swscale.c.
  swscale: remove indirections in ppc/swscale_template.c.
  swscale: split out unscaled altivec YUV converters in their own file.
  mpegvideoenc: fix multislice fate tests with threading disabled.
  mpegts: Wrap #ifdef DEBUG and av_hex_dump_log() combination in a macro.
  build: Simplify texi2html invocation through the --output option.
  Mark some variables with av_unused
  Replace avcodec_get_pix_fmt_name() by av_get_pix_fmt_name().
  svq3: Check negative mb_type to fix potential crash.
  svq3: Move svq3-specific fields to their own context.
  rawdec: initialize return value to 0.
  Remove unused get_psnr() prototype
  rawdec: don't leak option strings.
  bktr: get default framerate from video standard.
  ...

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-04 06:35:17 +02:00
Baptiste Coudurier
e4e2db9c74 ffmpeg: use opt_acodec when setting audio codec in opt_target. 2011-06-03 19:52:59 -07:00
Michael Niedermayer
bfd3b70ac3 ffmpeg: fix segfault with too many output files
Fixes Ticket219

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-04 01:24:00 +02:00
Stefano Sabatini
94bed8e582 Replace avcodec_get_pix_fmt_name() by av_get_pix_fmt_name().
This fixes warnings about avcodec_get_pix_fmt_name() being deprecated.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-06-03 13:55:55 +02:00
Michael Niedermayer
99eb31e263 Merge remote-tracking branch 'qatar/master'
* qatar/master: (25 commits)
  Replace custom DEBUG preprocessor trickery by the standard one.
  vorbis: Remove non-compiling debug statement.
  vorbis: Remove pointless DEBUG #ifdef around debug output macros.
  cook: Remove non-compiling debug output.
  Remove pointless #ifdefs around function declarations in a header.
  Replace #ifdef + av_log() combinations by av_dlog().
  Replace custom debug output functions by av_dlog().
  cook: Remove unused debug functions.
  Remove stray extra arguments from av_dlog() invocations.
  targa: fix big-endian build
  v4l2: remove one forgotten use of AVFormatParameters.pix_fmt.
  vfwcap: add a framerate private option.
  v4l2: add a framerate private option.
  libdc1394: add a framerate private option.
  fbdev: add a framerate private option.
  bktr: add a framerate private option.
  oma: check avio_read() return value
  nutdec: remove unused variable
  Remove unused variables
  swscale: allocate larger buffer to handle altivec overreads.
  ...

Conflicts:
	ffmpeg.c
	libavcodec/dca.c
	libavcodec/dirac.c
	libavcodec/error_resilience.c
	libavcodec/h264.c
	libavcodec/mpeg12.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/pthread.c
	libavcodec/rv10.c
	libavcodec/s302m.c
	libavcodec/shorten.c
	libavcodec/truemotion2.c
	libavcodec/utils.c
	libavdevice/dv1394.c
	libavdevice/fbdev.c
	libavdevice/libdc1394.c
	libavdevice/v4l2.c
	libavformat/4xm.c
	libavformat/apetag.c
	libavformat/asfdec.c
	libavformat/avidec.c
	libavformat/mmf.c
	libavformat/mpeg.c
	libavformat/mpegenc.c
	libavformat/mpegts.c
	libavformat/oggdec.c
	libavformat/oggparseogm.c
	libavformat/rl2.c
	libavformat/rmdec.c
	libavformat/rpl.c
	libavformat/rtpdec_latm.c
	libavformat/sauce.c
	libavformat/sol.c
	libswscale/utils.c
	tests/ref/vsynth1/error
	tests/ref/vsynth2/error

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-03 05:19:30 +02:00
Baptiste Coudurier
dd47107021 In print_report, print progression time in hours:mins:secs:us
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-03 03:46:13 +02:00
Baptiste Coudurier
1212d5b5e4 ffmpeg: In print_report, use int64_t for pts to check for 0 and avoid inf value for bitrate.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-03 03:46:13 +02:00
Mans Rullgard
e65ab9d94f Remove unused variables 2011-06-02 20:06:00 +01:00
Stefano Sabatini
ac41f3b036 ffmpeg: handle copy of packets for AVFMT_RAWPICTURE output formats
Store AVPicture in AVPacket as required by AVFMT_RAWPICTURE formats.

Fix trac issue #251.
2011-06-01 13:04:53 +02:00
Stefano Sabatini
f712f6c8a4 ffmpeg: simplify opt_*_codec() options
Replace opt_{audio,video,subtitle,data}_codec() with a single
opt_codec() function.
2011-05-30 09:09:56 +02:00
Clément Bœsch
adba9c6352 Fix various unused variable warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-30 00:24:01 +02:00
Reimar Döffinger
bb9b7bc62e Remove now unused nb_istreams variable. 2011-05-29 15:33:48 +02:00
Michael Niedermayer
b8a43bc1b5 Merge remote-tracking branch 'qatar/master' into master
* qatar/master: (27 commits)
  ac3enc: fix LOCAL_ALIGNED usage in count_mantissa_bits()
  ac3dsp: do not use the ff_* prefix when referencing ff_ac3_bap_bits.
  ac3dsp: fix loop condition in ac3_update_bap_counts_c()
  ARM: unbreak build
  ac3enc: modify mantissa bit counting to keep bap counts for all values of bap instead of just 0 to 4.
  ac3enc: split mantissa bit counting into a separate function.
  ac3enc: store per-block/channel bap pointers by reference block in a 2D array rather than in the AC3Block struct.
  get_bits: add av_unused tag to cache variable
  sws: replace all long with int.
  ARM: aacdec: fix constraints on inline asm
  ARM: remove unnecessary volatile from inline asm
  ARM: add "cc" clobbers to inline asm where needed
  ARM: improve FASTDIV asm
  ac3enc: use LOCAL_ALIGNED macro
  APIchanges: fill in git hash for av_get_pix_fmt_name (0420bd7).
  lavu: add av_get_pix_fmt_name() convenience function
  cmdutils: remove OPT_FUNC2
  swscale: fix crash in bilinear scaling.
  vpxenc: add VP8E_SET_STATIC_THRESHOLD mapping
  webm: support stereo videos in matroska/webm muxer
  ...

Conflicts:
	Changelog
	cmdutils.c
	cmdutils.h
	doc/APIchanges
	doc/muxers.texi
	ffmpeg.c
	ffplay.c
	libavcodec/ac3enc.c
	libavcodec/ac3enc_float.c
	libavcodec/avcodec.h
	libavcodec/get_bits.h
	libavcodec/libvpxenc.c
	libavcodec/version.h
	libavdevice/libdc1394.c
	libavformat/matroskaenc.c
	libavutil/avutil.h
	libswscale/rgb2rgb.c
	libswscale/swscale.c
	libswscale/swscale_template.c
	libswscale/x86/swscale_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-29 03:34:35 +02:00
Stefano Sabatini
eb8bc57240 cmdutils: remove OPT_FUNC2
Make ff* tools only accept opt_* functions taking two arguments.

The distinction between functions with one and two arguments is quite
pointless. Simplify parse_options() code.
2011-05-28 18:23:05 +02:00
Stefano Sabatini
26513856d6 cmdutils: remove OPT_FUNC2
Make ff* tools only accept opt_* functions taking two arguments.

The distinction between functions with one and two arguments is quite
pointless. Simplify parse_options() code.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-05-28 09:40:19 -04:00
Michael Niedermayer
027264cb82 Merge remote-tracking branch 'qatar/master'
* qatar/master: (31 commits)
  ARM: add ARMv6 optimised av_clip_uintp2
  ARM: remove volatile from asm statements in libavutil/intmath
  ARM: fix av_clipl_int32_arm()
  v4l: include avdevice.h
  ffserver: move close_connection() call to avoid a temporary string and copy.
  lavf: initialize demuxer private options.
  AVOptions: set string default values.
  lavdevice: mark v4l for removal on next major bump.
  swscale: fix compile on ppc.
  swscale: fix compile on x86-32.
  build: Remove generated .version file on distclean.
  configure: Add -D_GNU_SOURCE to CPPFLAGS on OS/2.
  doc: Drop hint at --enable-memalign-hack for MinGW, it is now autodetected.
  ffplay: Remove disabled code.
  Mark parameterless function declarations as 'void'.
  swscale: use av_clip_uint8() in yuv2yuv1_c().
  swscale: remove VOF/VOFW.
  swscale: split chroma buffers into separate U/V planes.
  swscale: replace formatConvBuffer[VOF] by allocated array.
  rgb2rgb: remove duplicate mmx/mmx2/3dnow/sse2 functions.
  ...

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-27 02:53:21 +02:00
Mike Williams
db3262b700 ffserver: Fix a null pointer dereference as a result of the FF_API_MAX_STREAMS cleanup.
Fixed another dereference in the RTSP code.

Removed a useless variable.

Changed an unnecessary looping assignment to a simple assignment suggested by
Maksym.

Added fixes and tweaks suggested by Maksym Veremeyenko [verem@m1stereo.tv] and
Clément B.
2011-05-26 12:57:59 +02:00
Michael Niedermayer
39e4206dc6 Merge remote-tracking branch 'qatar/master'
* qatar/master: (32 commits)
  doc: create separate section for audio encoders
  swscale: Remove orphaned, commented-out function declaration.
  swscale: Eliminate rgb24toyv12_c() duplication.
  Remove h263_msmpeg4 from MpegEncContext.
  APIchanges: Fill in git hash for fps_probe_size (30315a8)
  avformat: Add fpsprobesize as an AVOption.
  avoptions: Return explicitly NAN or {0,0} if the option isn't found
  rtmp: Reindent
  rtmp: Don't try to do av_malloc(0)
  tty: replace AVFormatParameters.sample_rate abuse with a private option.
  Fix end time of last chapter in compute_chapters_end
  ffmpeg: get rid of useless AVInputStream.nb_streams.
  ffmpeg: simplify managing input files and streams
  ffmpeg: purge redundant AVInputStream.index.
  lavf: deprecate AVFormatParameters.channel.
  libdc1394: add a private option for channel.
  dv1394: add a private option for channel.
  v4l2: reindent.
  v4l2: add a private option for channel.
  lavf: deprecate AVFormatParameters.standard.
  ...

Conflicts:
	doc/APIchanges
	doc/encoders.texi
	ffmpeg.c
	libavdevice/alsa-audio.h
	libavformat/version.h
	libavutil/opt.c
	libswscale/rgb2rgb.h
	libswscale/rgb2rgb_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-26 03:28:22 +02:00
Anton Khirnov
2cf8355f98 ffmpeg: get rid of useless AVInputStream.nb_streams.
It's a duplicate of AVFormatContext.nb_streams.
2011-05-25 15:55:47 +02:00
Anton Khirnov
07633154ad ffmpeg: simplify managing input files and streams
Grow the file and stream list in opt_input_file() instead of creating it
all at once in transcode().  This is simpler and will be useful for
following commits.
2011-05-25 15:55:47 +02:00
Anton Khirnov
d2bc4da15b ffmpeg: purge redundant AVInputStream.index.
AVStream.index stores the same thing.
2011-05-25 15:55:47 +02:00
Stefano Sabatini
6b5e182540 ffmpeg: handle the case when get_filtered_frame() fails 2011-05-25 12:42:18 +02:00
Martin Storsjö
a121754852 ffmpeg: Don't trigger url_interrupt_cb on the first signal
Currently, the url_interrupt_cb callback will abort all IO
after the first received signal. This makes the output files
from e.g. the mov muxer to be unreadable if the transcode is
aborted with ctrl+c.

After this patch, the first signal cleanly breaks out of
the transcoding loop, but won't forcibly abort all IO.
After the second signal is received, the url_interrupt_cb
callback will abort all IO.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-05-22 22:06:20 +03:00
Stefano Sabatini
5ecdfd008b lavf: deprecate avformat_alloc_output_context() in favor of avformat_alloc_output_context2()
The new function accepts a slightly more intuitive order of paramters,
and returns an error code, thus allowing applications to report a
meaningful error message.
2011-05-22 20:01:31 +02:00
Michael Niedermayer
bf8bb94322 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ffmpeg: get rid of the -vglobal option.
  dct32: Add AVX implementation of 32-point DCT
  dct32: Change pass 6 permutation to allow for AVX implementation
  dct32: port SSE 32-point DCT to YASM
  multiple inclusion guard cleanup
  avio: document buffer must created with av_malloc() and friends
  avio: check AVIOContext malloc failure
  swscale: point out an alternative to sws_getContext
  svq3: Do initialization after parsing the extradata
  add changelog entries for 0.7_beta2
  mp3lame: add #include required for AV_RB32 macro.

Conflicts:
	Changelog
	libavcodec/svq3.c
	libavcodec/x86/dct32_sse.c
	libavfilter/vsrc_buffer.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-22 04:53:19 +02:00
Anton Khirnov
71cc331cab ffmpeg: get rid of the -vglobal option.
It's badly documented and does the same thing as -flags global_header,
so it's redundant.
2011-05-21 21:25:58 +02:00
Mike William
840238b870 ffserver: dont just crash
With changes from ubitux.
2011-05-21 04:50:59 +02:00
Maksym Veremeyenko
ab1c19efc5 fix ffserver's SIGSEGV 2011-05-21 04:39:20 +02:00
Stefano Sabatini
328810390d ffmpeg: remove useless NULL-check on avfilter_unref_buffer
The check is no more required since recent changes in the
avfilter_unref_buffer(), the check is done in the function.
Simplify.
2011-05-20 09:34:56 +02:00
Stefano Sabatini
c000a9f783 vsrc_buffer: add av_vsrc_buffer_add_frame()
The new function is a wrapper around
av_vsrc_buffer_add_video_buffer_ref(), and allows to simplify the act
of pushing AVFrame data to the source buffer.
2011-05-19 23:15:34 +02:00
Stefano Sabatini
50764e19a8 vsrc_buffer: make the source accept sws_param in init
Avoid the need of two distinct av_vsrc_add_video_buffer_ref*
functions. Simplify the interface.
2011-05-19 23:15:33 +02:00
Stefano Sabatini
9fdf77217b lavfi: add avfilter_get_video_buffer_ref_from_frame to avcodec.h
Simplify passing AVFrame data to av_vsrc_buffer_add_video_buffer_ref().
2011-05-19 23:15:33 +02:00
Stefano Sabatini
6070b7e1c5 vsrc_buffer: remove dependency on AVFrame
Rename av_vsrc_buffer_add_frame to
av_vsrc_buffer_add_video_buffer_ref(), and change its inteface to make
it accept in input an AVFilterBufferRef rather than an AVFrame.

This way the interface can be used without requiring the
inclusion/installation of libavcodec headers.
2011-05-19 23:15:33 +02:00
Justin Ruggles
bc778a0cea Add support for request_sample_format in ffmpeg and ffplay. 2011-05-18 17:27:06 -04:00
Michael Niedermayer
e89403216c ffmpeg: dont show_banner() on verbose<0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-18 17:14:34 +02:00
Michael Niedermayer
a4b6000b00 ffmpeg: reset top_field_first in opt_input_file().
This allows seting tff for inputs without also setting it for the output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-17 16:57:16 +02:00
Michael Niedermayer
f8ae3a2108 Merge remote branch 'qatar/master'
12 files changed, 36 insertions(+), 81 deletions(-)
yes thats 36 new lines in 14 commits

* qatar/master:
  ffmpeg: fix -aspect cli option
  Restructure video filter implementation in ffmpeg.c.
  ffplay: remove audio_write_get_buf_size() forward declaration
  lavfi: print key-frame and picture type information in ff_dlog_ref()
  mathops: remove ancient confusing comment
  cws2fws: Improve error message wording.
  tools: Check the return value of write().
  mpegaudio: move OUT_FMT macro to mpegaudiodec.c
  mpegaudio: remove OUT_MIN/MAX macros
  Add missing #includes to mp3_header_(de)compress bsf
  dct: fix indentation
  dct: bypass table allocation for DCT_II of size 32
  h264dsp_mmx: Add #ifdefs around some mmxext functions on x86_64.
  Remove unused header mpegaudio3.h.

Conflicts:
	ffmpeg.c
	libavcodec/mpegaudio.h
	libavcodec/mpegaudio3.h
	libavfilter/avfilter.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-17 04:51:33 +02:00
Baptiste Coudurier
901ff51116 ffmpeg: fix -aspect cli option
Redesign the way -aspect option is handled. This is done by making
ffmpeg read the sample aspect ratio set in the corresponding input
stream by default, and overriding it using the value specified by
-aspect.

If the output display aspect ratio is specified with -aspect, it is
set at the end of the filterchain, thus overriding the value set by
filters in the filterchain.

This implementation is more robust, since does not modify the
filterchain description (which was creating potential syntax errors).

(Cherry-pick abf8342aa9)

Another aspect ratio fix try. This leaves the setdar addition at the end
(preferred by people).

(Cherry-pick e7c7b0d000)
2011-05-16 14:13:03 -07:00
Michael Niedermayer
9d5fa6182d Restructure video filter implementation in ffmpeg.c.
This fixes several bugs like multiple outputs and -aspect mixed with -vf

(cherry picked from commit 1762d9ced7)
(cherry picked from commit 5c20c81bfa)
(cherry picked from commit a7844c580d)
2011-05-16 14:13:03 -07:00
Michael Niedermayer
9763420bcc rawdec: Allow overriding top field first.
Iam not sure this is the best way to implement it, but its the simplest
and keeps the code seperate from the application. Keeping ffmpeg.c
simple and not requireing user apps to duplicate this code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-16 21:52:35 +02:00
Michael Niedermayer
198783744e ffmpeg: initialize input_codec array earlier.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-16 21:26:18 +02:00