Commit Graph

1528 Commits

Author SHA1 Message Date
Nicolas George
1d3b280e71 ffmpeg: Replace av_realloc by av_realloc_f when relevant.
Also mark with a visible comment "FIXME realloc failure" places where
av_realloc seems to lack a proper test for failure.

Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-28 18:13:52 +02:00
Michael Niedermayer
2f3dd904f4 ffmpeg: fix wrong indention that leaked in from merge
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-28 03:19:22 +02:00
Michael Niedermayer
23c1db9b83 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: use different variables for decoded and filtered frame.
  avconv: add support for copying attachments.
  matroskaenc: write attachments.
  matroskadec: export mimetype of attachments as metadata.
  avconv: factorize common code from new_*_stream()
  doc/avconv: expand documentation for some options.
  doc/avconv: document -timelimit.

Conflicts:
	avconv.c
	cmdutils.c
	tests/codec-regression.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-28 02:07:44 +02:00
Lars Täuber
6c0a902d12 ffmpeg: fix typo in warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-27 14:41:09 +02:00
Michael Niedermayer
7c1aba4f01 Merge remote-tracking branch 'qatar/master'
* qatar/master: (21 commits)
  fate: allow testing with libavfilter disabled
  x86: XOP/FMA4 CPU detection support
  ws_snd: misc cosmetic clean-ups
  ws_snd: remove the 2-bit ADPCM table and just subtract 2 instead.
  ws_snd: use memcpy() and memset() instead of loops
  ws_snd: use samples pointer for loop termination instead of a separate iterator variable.
  ws_snd: make sure number of channels is 1
  ws_snd: add some checks to prevent buffer overread or overwrite.
  ws_snd: decode to AV_SAMPLE_FMT_U8 instead of S16.
  flacdec: fix buffer size checking in get_metadata_size()
  rtp: Simplify ff_rtp_get_payload_type
  rtpenc: Add a payload type private option
  rtp: Correct ff_rtp_get_payload_type documentation
  avconv: replace all fprintf() by av_log().
  avconv: change av_log verbosity from ERROR to FATAL for fatal errors.
  cmdutils: replace fprintf() by av_log()
  avtools: parse loglevel before all the other options.
  oggdec: add support for Xiph's CELT codec
  sol: return error if av_get_packet() fails.
  cosmetics: reindent and pretty-print
  ...

Conflicts:
	avconv.c
	cmdutils.c
	libavcodec/avcodec.h
	libavcodec/version.h
	libavformat/oggparsecelt.c
	libavformat/utils.c
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-27 02:14:37 +02:00
Michael Niedermayer
eb11cca530 ffmpeg: document alternative to the lossless libx264 presets
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-26 22:06:39 +02:00
Michael Niedermayer
1edf33f7f2 ffmpeg: fix -b -ab mixes with -b overriding the audio bitrate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-26 21:04:23 +02:00
Anton Khirnov
182cbe433a avtools: parse loglevel before all the other options.
This way it can be applied to cmdutils too -- e.g. showing the banner
and printing startup messages.
2011-09-26 20:33:50 +02:00
Michael Niedermayer
537a9e5cc2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ppc: fix some pointer to integer casts
  ppc: fix 32-bit PIC build
  vmdaudio: fix decoding of 16-bit audio format.
  lavf: do not set codec_tag for rawvideo
  h264: check for out of bounds reads in ff_h264_decode_extradata().
  flvdec: Check for overflow before allocating arrays
  avconv: use correct output stream index when checking max_frames
  avconv: remove fake coded_frame on streamcopy hack

Conflicts:
	avconv.c
	libavcodec/h264.c
	libavcodec/ppc/asm.S
	libavcodec/vmdav.c
	libavformat/flvdec.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-25 23:30:25 +02:00
Stefano Sabatini
01fbcc6fd6 ffmpeg: improve feedback when processing filtergraph events 2011-09-25 22:47:51 +02:00
Stefano Sabatini
68b897ef15 ffmpeg: apply misc cosmetics fixes in the filtergraph event processing code
In particular provides more consistent and expressive names,
supposedly improves readability and user feedback.
2011-09-25 22:47:51 +02:00
Michael Niedermayer
d8289ff9a9 ffmpeg: increase bit_buffer_size, the header size is clearly too small for rgb48 raw based formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-25 16:43:30 +02:00
Anton Khirnov
9aa1f87dfd Revert "ffmpeg: get rid of useless AVInputStream.nb_streams."
This reverts commit 2cf8355f98.
AVInputStream.nb_streams tracks number of streams found at the
beginning, new streams may appear that ffmpeg doesn't know about. Fixes
crash in this case.
2011-09-21 14:12:00 +02:00
Michael Niedermayer
b5875b9111 Add libswresample.
Similar to libswscale this does resampling and format convertion, just for audio
instead of video.
changing sampling rate, sample formats, channel layouts and sample packing all
in one with a very simple public interface.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-19 07:04:17 +02:00
Michael Niedermayer
8f5bb35f40 ffmpeg: fix video synchronization code to be exact on constant fps videos. Fixes Ticket137
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-13 17:29:23 +02:00
Clément Bœsch
677a831ec6 ffmpeg: remove unused data_codec_name. 2011-09-12 12:09:09 +02:00
Clément Bœsch
525d4852b9 ffmpeg: set {audio,video,subtitle}_codec_name const.
This fixes "assignment discards ‘const’ qualifier from pointer target
type." warnings.
2011-09-12 12:09:08 +02:00
Clément Bœsch
4b961ddfea ffmpeg: a bit more consistent prototypes. 2011-09-12 11:52:55 +02:00
Michael Niedermayer
411cc5c46a Merge remote-tracking branch 'qatar/master'
* qatar/master: (31 commits)
  audioconvert: add explanatory comments to channel_names array
  audioconvert: K&R whitespace cosmetics
  avconv: use correct index when selecting metadata to write to.
  avconv: fix inverted variable
  doc/avconv: document option types (input/output/per-stream/...)
  doc/avtools-common-opts: write a section about stream specifiers.
  doc/avconv: remove two pointless paragraphs.
  doc/avconv: document that global options should be specified first.
  doc/avconv: remove entries for nonexistent options
  doc/avconv: remove documentation for removed 'timestamp' option
  doc: cosmetics, rename fftools-common-opts to avtools-....
  avconv: move streamid_map to options context.
  avconv: extend -vf syntax
  avconv: move top_field_first to options context.
  avconv: move inter/intra matrix to options context.
  avconv: remove -psnr option.
  avconv: remove me_threshold option.
  avconv: move video_rc_override_string to options context.
  avconv: move frame pixel format to the options context.
  avconv: move frame aspect ratio to the options context.
  ...

Conflicts:
	avconv.c
	cmdutils_common_opts.h
	doc/avconv.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-12 00:32:54 +02:00
Michael Niedermayer
0c0ec4be6b ffmpeg: dont copy duration when -t is used
Fixes Ticket445

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-11 05:24:26 +02:00
Michael Niedermayer
7ba8e6bbae ffmpeg: replace messy duplicated tag compatibility functions by more generic solution.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-11 01:23:05 +02:00
Michael Niedermayer
cec92fe49a ffmpeg: add vbsf & absf for compatibility.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-11 01:22:58 +02:00
Michael Niedermayer
7db7eb08e0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Fixed segfault with wavpack decoder on corrupted decorrelation terms sub-blocks.
  avconv: move audio_channels to the options context.
  avconv: move *_disable to options context.
  avconv: remove -[vas]lang options.
  avconv: move codec tags to options context.
  cljr: init_get_bits size in bits instead of bytes
  indeo2: fail if input buffer too small
  indeo2: init_get_bits size in bits instead of bytes
  ffv1: Fixed size given to init_get_bits() in decoder.

Conflicts:
	avconv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-10 20:52:48 +02:00
Michael Niedermayer
1bb766a988 ffmpeg: fix -re
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-09 19:54:04 +02:00
Stefano Sabatini
4f7dfe12ea lavfi: rename vsink_buffer.c to sink_buffer.c, and vsink_buffer.h to buffersink.h
This is done in order to clarify the non-video-specific nature of the
buffersink code, as the result of the video/audio API unification of
the previous commit, and for improving overall consistency.
2011-09-06 18:51:09 +02:00
Stefano Sabatini
c4415f6ec9 lavfi: unify asink_buffer and vsink_buffer API
The new API is more generic (no distinction between audio/video for
pulling frames), and avoids code duplication.

A backward compatibility layer is kept for avoiding tools ABI breaks
(only for the video binary interface, audio interface was never used
in the tools).
2011-09-06 18:47:04 +02:00
Michael Niedermayer
d543b3bb52 ffmpeg: map subtitle stream by default when user specified -scodec
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-06 00:49:23 +02:00
Michael Niedermayer
3c54e7ed4f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ac3enc: Add channel coupling support for the fixed-point AC-3 encoder.
  ac3enc: scale floating-point coupling channel coefficients in scale_coefficients() rather than in apply_channel_coupling()
  ac3enc: fix encoding of stereo ac3 files when rematrixing is disabled.
  wavpack: fix wrong return value in wavpack_decode_block()
  avconv: fix parsing metadata specifiers.
  fate: use +frame+slice named constants instead of '3'
  mpeg12: propagate more real return values through chunk decode error return and fix some indentation
  wavpack: use context reset in appropriate places
  avconv: move mux_preload and mux_max_delay to options context
  avconv: move bitstream filters to options context.
  avconv: move rate_emu to options context.
  avconv: move max_frames to options context.
  avconv: move metadata to options context.
  avconv: move ts scale to options context.
  avconv: move chapter maps to options context.
  avconv: move metadata maps to options context.
  avconv: move codec_names to options context.

Conflicts:
	avconv.c
	tests/fate-run.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-05 22:29:16 +02:00
Michael Niedermayer
6f8b1fcd4b ffmpeg: tell reset_options() if it is used on input or output files.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-05 03:11:18 +02:00
Michael Niedermayer
d2084402e6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: fix type for thread_type option
  avconv: move format to options context
  avconv: move limit_filesize to options context
  avconv: move start_time, recording_time and input_ts_offset to options context
  avconv: add a context for options.
  cmdutils: allow storing per-stream/chapter/.... options in a generic way
  cmdutils: split per-option code out of parse_options().
  cmdutils: add support for caller-provided option context.
  cmdutils: declare only one pointer type in OptionDef
  cmdutils: move grow_array() from avconv to cmdutils.
  cmdutils: move exit_program() declaration to cmdutils from avconv
  http: Consider the stream as seekable if the reply contains Accept-Ranges: bytes
  nutenc: add namespace to the api facing functions

Conflicts:
	avconv.c
	cmdutils.c
	cmdutils.h
	ffmpeg.c
	ffplay.c
	ffprobe.c
	ffserver.c
	libavformat/http.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-05 03:10:45 +02:00
Anton Khirnov
7cc8d6385a cmdutils: add support for caller-provided option context.
This is the first step to removing the globals plague from avtools.
2011-09-04 13:12:00 +02:00
Anton Khirnov
cac651c834 cmdutils: move grow_array() from avconv to cmdutils. 2011-09-04 13:12:00 +02:00
Anton Khirnov
dad09ff93f cmdutils: move exit_program() declaration to cmdutils from avconv
Allows cmdutils to call each tool's own cleanup function.
2011-09-04 13:12:00 +02:00
Michael Niedermayer
1889c6724a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  AVOptions: fix av_set_string3() doxy to match reality.
  cmdutils: get rid of dummy contexts for examining AVOptions.
  lavf,lavc,sws: add {avcodec,avformat,sws}_get_class() functions.
  AVOptions: add AV_OPT_SEARCH_FAKE_OBJ flag for av_opt_find().
  cpu detection: avoid a signed overflow

Conflicts:
	avconv.c
	cmdutils.c
	doc/APIchanges
	ffmpeg.c
	libavcodec/options.c
	libavcodec/version.h
	libavformat/version.h
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-04 04:11:53 +02:00
Michael Niedermayer
ca4d71b149 ffmpeg: fix reading from stdin on windows
Based on code by Rolf Siegrist
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-04 02:14:39 +02:00
Anton Khirnov
20c21f8b75 cmdutils: get rid of dummy contexts for examining AVOptions.
Replace it with newly introduced libavutil API.
2011-09-03 20:58:15 +02:00
Michael Niedermayer
6233a3a153 Revert "ffmpeg: remove presets." and reimplement the needed parts that no longer exist.
Needed by libvpx

This reverts commit a0147957e7.
2011-09-03 00:50:00 +02:00
Chiranjeevi Melam
e6ea4c715d ffmpeg: Fix minor memleak of input_tmp 2011-09-02 01:09:39 +02:00
Clément Bœsch
df8737eb35 ffmpeg: fix two unused variables warnings. 2011-09-01 20:23:40 +02:00
Carl Eugen Hoyos
c0e8bce349 Fix compilation with --disable-avfilter.
Fixes ticket #425.
2011-09-01 19:03:39 +02:00
Michael Niedermayer
3584b01e4e ffmpeg: Fix typos introduced in:
commit 630902a1e1
	Author: Anton Khirnov <anton@khirnov.net>
	Date:   Wed Jul 6 08:49:07 2011 +0200
	avconv: factor out initializing input streams.

These caused scrambled error messages to be printed and
floating point exceptions.
For example when there was no decoder available for a
stream

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-01 04:17:23 +02:00
Michael Niedermayer
76ba894eab Merge commit 'f593628e5868e52a46de666767896c6afcebdae4'
* commit 'f593628e5868e52a46de666767896c6afcebdae4':
  avconv: Replace raw picture frame swapping hack.
  RV40: reuse some H.264 motion compensation functions in RV40.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-31 00:12:05 +02:00
Michael Niedermayer
7c3f4fb42d ffmpeg: ffmpeg: fix reading commands from the keyboard
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-30 21:56:40 +02:00
Michael Niedermayer
e312543c82 ffmpeg: fix reading commands from stdin
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-30 20:27:11 +02:00
Anton Khirnov
4bb2a74ffc ffmpeg: re-add nb_streams to InputFile.
It was mistakenly removed in 2cf8355f98,
not taking into account that new streams might appear in av_read_frame()
that avconv doesn't know about.

Fixes bug 24.
2011-08-30 18:10:10 +02:00
Alex Converse
ff037c54b4 ffmpeg: Replace goto redo on decode fail with continue.
This checks for sigterm but otherwise is identical to the previous
behavior.
2011-08-30 18:10:10 +02:00
Alex Converse
cf89e55ac0 ffmpeg: Remove dead store. 2011-08-30 18:10:10 +02:00
Alex Converse
08fe874fa4 ffmpeg: use av_clip_int16 for audio clipping 2011-08-30 18:10:09 +02:00
Michael Niedermayer
ef24426599 ffmpeg: switch stream mapping print code to qatars variant
Author of the lines of code is probably Nicolas and or Anton
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-30 18:08:35 +02:00
Anton Khirnov
10c3b03380 ffmpeg: move the avcodec_find_decoder() call to add_input_streams().
This makes the code simpler to understand, though it results in an
unnecessary call to avcodec_find_decoder() if the stream won't be
decoded.
2011-08-30 18:08:23 +02:00
Alex Converse
93ed69ad21 ffmpeg: Separate initialization from the main transcode loop. 2011-08-30 18:08:23 +02:00
Anton Khirnov
e5362cecfb ffmpeg: reset input_ts_offset between files.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-30 18:08:23 +02:00
Anton Khirnov
3806494549 ffmpeg: call flush_encoders() from transcode() directly.
And remove now pointless parameter.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-30 18:08:23 +02:00
Anton Khirnov
d73e8cab02 ffmpeg: fix broken indentation.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-30 18:08:23 +02:00
Anton Khirnov
877ba7b4bd ffmpeg: rescue poor abused limit_filesize global.
Keep a per-OutputFile instance of it, thus making -fs work with multiple
output files.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2011-08-30 18:08:23 +02:00
Alex Converse
cb13438543 ffmpeg: Set error code before before jumping to fail. 2011-08-30 18:08:23 +02:00
Alex Converse
6e6ccf0d56 ffmpeg: Fix spelling errors.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-08-30 18:08:23 +02:00
Anton Khirnov
47a3439ee7 ffmpeg: save two levels of indentation in flush_encoders()
By replacing
if (foo)
    <do stuff>

with
if (!foo)
    continue;
<do stuff>
2011-08-30 18:08:22 +02:00
Anton Khirnov
a16f1afb11 ffmpeg: factor flushing encoders out of output_packet(). 2011-08-30 18:08:22 +02:00
Anton Khirnov
94adca68f8 ffmpeg: factor out initializing input streams. 2011-08-30 18:08:22 +02:00
Anton Khirnov
8b85b9fa42 ffmpeg: reset streamid_map between output files. 2011-08-30 18:08:22 +02:00
Anton Khirnov
6bdd9fbc89 ffmpeg: make timer_start a local var in transcode(). 2011-08-30 18:08:22 +02:00
Anton Khirnov
3a7b4ccd1c ffmpeg: cosmetics, move OutputStream.
Allows us to get rid of forward InputStream declaration.
2011-08-30 18:08:22 +02:00
Anton Khirnov
8f9c77e765 ffmpeg: remove two unused macros. 2011-08-30 18:08:22 +02:00
Anton Khirnov
e0aee84084 ffmpeg: reindent. 2011-08-30 18:08:22 +02:00
Anton Khirnov
d4d5a95055 ffmpeg: rescue poor abused start_time global.
Keep a per-OutputFile instance of it, thus making -ss work with multiple
output files.
2011-08-30 18:08:22 +02:00
Anton Khirnov
08890d355e ffmpeg: : rescue poor abused recording_time global.
Keep a per-OutputFile instance of it, thus making -t work with multiple
output files.
2011-08-30 18:08:22 +02:00
Anton Khirnov
5c2a4d3bb1 ffmpeg: fix broken indentation. 2011-08-30 18:08:22 +02:00
Anton Khirnov
dd0724288e ffmpeg: get rid of the arbitrary MAX_FILES limit. 2011-08-30 18:08:22 +02:00
Anton Khirnov
76e4873319 ffmpeg: get rid of the output_streams_for_file vs. ost_table schizophrenia
Instead store output streams in the same way as input streams.
2011-08-30 18:08:22 +02:00
Michael Niedermayer
b091de2285 Revert "Fix stream mapping regression"
Subsequent cherry picks are based on code prior to this, thus this needs to be rebased
on HEAD by a volunteer.
This reverts commit b25d931a82.
2011-08-30 18:06:37 +02:00
Anton Khirnov
61b933f554 ffmpeg: add a wrapper for output AVFormatContexts and merge output_opts into it 2011-08-30 17:58:00 +02:00
Anton Khirnov
0ea58d7115 ffmpeg: make itsscale syntax consistent with other options.
Move the stream specifier to the option name.
2011-08-30 17:58:00 +02:00
Anton Khirnov
81e4655566 ffmpeg: factor out adding input streams. 2011-08-30 17:58:00 +02:00
Alex Converse
a6d0340ca1 ffmpeg: Factorize combining auto vsync with format. 2011-08-30 17:57:59 +02:00
Alex Converse
ebf94f439e ffmpeg: Factorize video resampling. 2011-08-30 17:57:59 +02:00
Alex Converse
dadbebbbbc ffmpeg: Don't unnecessarily convert ipts to a double. 2011-08-30 17:57:59 +02:00
Anton Khirnov
7357f6e678 ffmpeg: don't segfault on 0 input files. 2011-08-30 17:57:59 +02:00
Anton Khirnov
6e675b504a ffmpeg: remove pointless parameter from new_*_stream().
New streams are always added to the last output file.
2011-08-30 17:57:59 +02:00
Anton Khirnov
868013aa01 ffmpeg: cosmetics, move code
Move find_codec_or_die(), choose_codec(), new_output_stream() and
read_avserver_streams() below transcode() where they belong.
2011-08-30 17:57:59 +02:00
Anton Khirnov
6f610fa144 ffmpeg: cosmetics -- move copy_chapters().
It's only used in opt_output_file(), so move it right above
opt_output_file().
2011-08-30 17:57:59 +02:00
Anton Khirnov
c692eda3e7 ffmpeg: cosmetics -- move parse_forced_key_frames().
parse_forced_key_frames() is only used in new_video_stream(), so move it
right above new_video_stream().
2011-08-30 17:57:59 +02:00
Anton Khirnov
f69e8c7d15 ffmpeg: switch to a:b syntax 2011-08-30 17:57:59 +02:00
Anton Khirnov
e3bf4e292c ffmpeg: replace -vcodec/-acodec/-scodec with a better system.
The new option doesn't depend on its placement wrt -new* options (which
don't exist anymore) and works in a similar way as per-stream AVOptions.

-[vas]codec remain as aliases to -codec:[vas]
2011-08-30 17:57:59 +02:00
Anton Khirnov
a0147957e7 ffmpeg: remove presets.
Nothing except x264 uses them and native x264 presets should be used
with private options.
2011-08-30 17:57:59 +02:00
Michael Niedermayer
2d726b195e Revert "ffmpeg: simplify opt_*_codec() options"
This is needed because the following cherry picks are based on code prior of this

This reverts commit f712f6c8a4.
2011-08-30 17:57:59 +02:00
Anton Khirnov
88bfe4518b ffmpeg: change semantics of -map
New syntax contains an optional stream type, allowing to refer to n-th
stream of specific type.

Omitting stream number now maps all streams of the given type.
2011-08-30 17:57:59 +02:00
Anton Khirnov
f12f40b31a ffmpeg: get rid of new* options.
They are confusing, irregular and redundant -- -map already contains all
the information.  Stream maps can now be parsed in opt_output_file().

Add a more user-friendly default behavior in case no maps are present.

Breaks -programid for now, but it never worked properly anyway. A better
solution will be written soon.
2011-08-30 17:57:59 +02:00
Anton Khirnov
7efec8dd6d ffmpeg: rename sameq variables to same_quant 2011-08-30 17:57:59 +02:00
Anton Khirnov
5a9e42ec45 ffmpeg: make -map_metadata work consistently with the other options
Before, it took an input and output file index, now it only takes an
input file and applies to the next output file.

Stream/chapter/program specification is now part of the option name and
the delimiter was changed from ',' to ':' to be consistent with the
similar feature for AVOptions.
2011-08-30 17:57:59 +02:00
Anton Khirnov
6bf3c39d17 ffmpeg: make -map_chapters accept only the input file index.
This is consistent with how all the other options work

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-30 17:57:59 +02:00
Michael Niedermayer
97861f5b08 ffmpeg: Set codec_type in new_output_stream
Ported from a change from anton khirnov to avconv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-30 17:57:59 +02:00
Anton Khirnov
a0ce297b69 ffmpeg: rename ffmpeg_exit in exit_program
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-30 17:57:59 +02:00
Michael Niedermayer
50be0b911a ffmpeg: Support queing filter commands for later times
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-29 20:16:13 +02:00
Michael Niedermayer
bb22f39fe2 ffmpeg: Support passing commands to filters at runtime
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-29 20:16:06 +02:00
Diego Biurrun
0249478756 doxygen: fix wrong comment syntax, //< vs. ///< 2011-08-26 18:34:28 +02:00
Nicolas George
83ff2a1153 ffmpeg: use avcodec_get_name to report missing en/decoders. 2011-08-22 12:13:27 +02:00
Nicolas George
8b52b46c97 ffmpeg: print the codecs names in the stream mapping. 2011-08-22 10:46:13 +02:00
Nicolas George
5fa98ab42d ffmpeg: ignore forward gaps for subtitles streams. 2011-08-22 09:55:35 +02:00
Michael Niedermayer
edae3dbf1d Merge remote-tracking branch 'qatar/master'
* qatar/master: (23 commits)
  h264: hide reference frame errors unless requested
  swscale: split hScale() function pointer into h[cy]Scale().
  Move clipd macros to x86util.asm.
  avconv: reindent.
  avconv: rescue poor abused start_time global.
  avconv: rescue poor abused recording_time global.
  avconv: merge two loops in output_packet().
  avconv: fix broken indentation.
  avconv: get rid of the arbitrary MAX_FILES limit.
  avconv: get rid of the output_streams_for_file vs. ost_table schizophrenia
  avconv: add a wrapper for output AVFormatContexts and merge output_opts into it
  avconv: make itsscale syntax consistent with other options.
  avconv: factor out adding input streams.
  avconv: Factorize combining auto vsync with format.
  avconv: Factorize video resampling.
  avconv: Don't unnecessarily convert ipts to a double.
  ffmpeg: remove unsed variable nopts
  RV3/4 parser: remove unused variable 'off'
  add XMV demuxer
  rmdec: parse FPS in RealMedia properly
  ...

Conflicts:
	avconv.c
	libavformat/version.h
	libswscale/swscale.c
	tests/ref/fate/lmlm4-demux

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-18 10:56:08 +02:00
Diego Biurrun
f056fc2c6c ffmpeg: remove unsed variable nopts 2011-08-17 15:35:42 +02:00
Michael Niedermayer
41bf67d8d4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  movenc: change AV_LOG_INFO to AV_LOG_WARNING for some warnings
  avconv: remove a write-only variable
  avconv: remove pointless parameter from new_*_stream().
  avconv: cosmetics, move code
  avconv: cosmetics -- move copy_chapters().
  avconv: cosmetics -- move parse_forced_key_frames().
  lavc: add audio flag to the 'b' option, deprecate 'ab'.
  avconv: rename sameq to same_quant
  doc/avconv: add forgotten end of chapter.
  Changelog: document avconv incompatibilities with ffmpeg.
  avconv: replace -vcodec/-acodec/-scodec with a better system.
  avconv: remove presets.
  svq3: propagate codec memory allocation failure in context init

Conflicts:
	Changelog
	avconv.c
	libavcodec/options.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-16 23:47:35 +02:00
Michael Niedermayer
1a34478b71 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Fix NASM include directive
  dsputil_mmx: Honor HAVE_AMD3DNOW
  lavf,lavd: remove all usage of AVFormatParameters from demuxers.
  jack: add 'channels' private option.
  VC-1: fix reading of custom PAR.
  Remove redundant and dubious video codec detection by its extradata
  mpeg12: remove repeat-field code disabled since May 2002
  patch checklist: suggest fate instead of regression tests
  Turn on resampling on sudden size change instead of bailing out during recode.
  avtools: reinitialise filter chain when input video stream changes dimensions

Conflicts:
	Makefile
	avconv.c
	doc/developer.texi
	ffplay.c
	libavcodec/x86/dsputil_mmx.c
	libavdevice/libdc1394.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-15 23:35:53 +02:00
Dustin Brody
2bfdb34c8a mpeg12: remove repeat-field code disabled since May 2002
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-08-15 13:03:20 +02:00
Michael Niedermayer
f8a1fc2623 ffmpeg: fix null pointer segfault on solaris. (ticket381)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-13 14:27:49 +02:00
Michael Niedermayer
0cb233cf46 Merge commit 'b2c087871dafc7d030b2d48457ddff597dfd4925'
* commit 'b2c087871dafc7d030b2d48457ddff597dfd4925':
  Move x86util.asm from libavcodec/ to libavutil/.
  Move x86inc.asm to libavutil/.
  APIchanges: note error_recognition in lavf
  lavf: add support for error_recognition, use it in avidec, and bump minor API version
  avconv: change semantics of -map
  avconv: get rid of new* options.
  cmdutils: allow precisely specifying a stream for AVOptions.
  configure: add missing CFLAGS to fix building on the HURD
  libx264: Include hint for possible values for configuring libx264
  cmdutils: allow ':'-separated modifiers in option names.
  avconv: make -map_metadata work consistently with the other options
  avconv: remove deprecated options.
  avconv: make -map_chapters accept only the input file index.
  Make a copy of ffmpeg under a new name -- avconv.
  ffmpeg: add a warning stating that the program is deprecated.
  Add weighted motion compensation for RV40 B-frames
  RV3/4: calculate B-frame motion weights once per frame
  Move RV3/4-specific DSP functions into their own context
  mjpeg: propagate decode errors from ff_mjpeg_decode_sos and ff_mjpeg_decode_dqt
  h264: notice memory allocation failure

Conflicts:
	.gitignore
	Makefile
	cmdutils.c
	configure
	doc/ffplay.texi
	doc/ffprobe.texi
	doc/ffserver.texi
	libavcodec/libx264.c
	libavformat/avformat.h
	libavformat/avidec.c
	libavformat/version.h
	tests/lavf-regression.sh
	tests/lavfi-regression.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-13 02:56:08 +02:00
Anton Khirnov
d4863fc1a8 cmdutils: allow precisely specifying a stream for AVOptions. 2011-08-12 18:35:12 +02:00
Anton Khirnov
791a86c37a ffmpeg: add a warning stating that the program is deprecated. 2011-08-12 13:27:20 +02:00
Anton Khirnov
4d58e4cb4c Rename ffserver to avserver. 2011-08-09 19:56:25 +02:00
Carl Eugen Hoyos
f8dc2e51aa ffmpeg: fix passlogfile regression 2011-08-09 01:11:37 +02:00
Michael Niedermayer
6e19cfb083 ffmpeg: Fix doxygen comments for MetadataMap
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-08-05 01:18:40 +02:00
Carl Eugen Hoyos
31fe5d9825 Fix possible crash when decoding mpeg streams.
This reverts 2cf8355f98,
fixes ticket 329.
2011-08-04 11:06:43 +02:00
Carl Eugen Hoyos
08d2cee49c Fix -loop_input. 2011-08-03 11:45:33 +02:00
Carl Eugen Hoyos
8460b757c2 Do not ignore opt_default() return values. 2011-08-01 00:58:49 +02:00
Michael Niedermayer
2dd2abe391 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h263dec: Propagate AV_LOG_ERRORs from slice decoding through frame decoding with sufficient error recognition
  x86: cabac: don't load/store context values in asm
  H.264: optimize CABAC x86 asm for Atom
  vp3/theora: flush after seek.
  doc/fftools-common-opts: wording fixes missing from the previous commit.
  doc: document using AVOptions in fftools.
  cmdutils: add codec_opts parameter to setup_find_stream_info_opts()
  cmdutils: clarify documentation for filter_codec_opts()
  cmdutils: clarify documentation for setup_find_stream_info_opts()
  lavf: add forgotten attribute_deprecated to av_find_stream_info()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-29 01:50:53 +02:00
Stefano Sabatini
8ec19f84e1 cmdutils: add codec_opts parameter to setup_find_stream_info_opts()
Avoid brittle and obfuscating reference to a global.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-07-28 17:13:14 +02:00
Michael Niedermayer
981f6fc988 ffmpeg: better timebase guessing for stream copy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-25 20:48:55 +02:00
Nicolas George
257f274dfa Do not use AVFMT_FLAG_NONBLOCK for the output file.
Restore the commit 0de8ebf by Carl Eugen Hoyos that was lost during the
merge 58257ea.
2011-07-19 10:12:33 +02:00
Michael Niedermayer
78accb876c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ffmpeg: fix some indentation
  ffmpeg: fix operation with --disable-avfilter
  simple_idct: remove disabled code
  motion_est: remove disabled code
  vc1: remove disabled code
  fate: separate lavf-mxf_d10 test from lavf-mxf
  cabac: Move code only used in the cabac test program to cabac.c.
  ffplay: warn that -pix_fmt is no longer working, suggest alternative
  ffplay: warn that -s is no longer working, suggest alternative
  lavf: rename enc variable in utils.c:has_codec_parameters()
  lavf: use designated initialisers for all (de)muxers.
  wav: remove a use of deprecated AV_METADATA_ macro
  rmdec: remove useless ap parameter from rm_read_header_old()
  dct-test: remove write-only variable
  des: fix #if conditional around P_shuffle
  Use LOCAL_ALIGNED in ff_check_alignment()

Conflicts:
	ffmpeg.c
	libavformat/avidec.c
	libavformat/matroskaenc.c
	libavformat/mp3enc.c
	libavformat/oggenc.c
	libavformat/utils.c
	tests/ref/lavf/mxf

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-17 20:12:02 +02:00
Mans Rullgard
08e09ed7db ffmpeg: fix some indentation
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-17 17:10:47 +01:00
Mans Rullgard
e9f98c9022 ffmpeg: fix operation with --disable-avfilter
The width and height must be copied from the input before
being used.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-17 17:10:37 +01:00
Michael Niedermayer
c31a5b23b4 Revert "ffmpeg: get rid of a pointless limit on number of streams."
This reverts commit c7dd3e7e43

Conflicts:

	ffmpeg.c
2011-07-16 19:33:27 +02:00
Michael Niedermayer
32aef7d019 ffmpeg: fix muxer private options (bug introduced by anton khirnov)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-15 18:27:30 +02:00
Michael Niedermayer
042f9d62ca Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Automatically add more flags required on symbian
  mem.h: switch doxygen parameter order to match function prototype
  doxygen: replace @sa tag by the more readable but equivalent @see
  doxygen: use Doxygen markup for authors and web links where appropriate
  doxygen: do not include license boilerplate in Doxygen documentation
  ac3enc: Mark AVClasses const
  ffserver: Replace two loops with one loop.
  ffmpeg: Fix the check for experimental codecs
  swscale: extend mmx padding.
  swscale: clip unscaled colorspace conversion path.
  doxygen: misc consistency cosmetics
  doc: remove file name from @file directive in Doxygen usage example
  doxygen: consistently place brief description
  doxygen: place empty line between brief description and detailed description
  avformat_open_input(): Add braces to shut up gcc warning.

Conflicts:
	libavcodec/8svx.c
	libavcodec/tiff.c
	libavcodec/tiff.h
	libavcodec/vaapi_h264.c
	libavcodec/vorbis.c
	libavcodec/vorbisdec.c
	libavcodec/vp6.c
	libswscale/swscale_unscaled.c
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-15 17:51:09 +02:00
Martin Storsjö
daca33659d ffmpeg: Fix the check for experimental codecs
The variable 'codec' was used uninitialized here.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-07-14 23:37:18 +03:00
Michael Niedermayer
321b2a9ded ffmpeg: loose lowres hackery
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-14 21:22:12 +02:00
Michael Niedermayer
5dc6bd86f0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  APIchanges: fill in missing hashes and dates.
  Add an APIChanges entry and bump minor versions for recent changes.
  ffmpeg: print the low bitrate warning after the codec is openend.
  doxygen: Move function documentation into the macro generating the function.
  doxygen: Make sure parameter names match between .c and .h files.
  h264: move fill_decode_neighbors()/fill_decode_caches() to h264_mvpred.h
  H.264: Add more x86 assembly for 10-bit H.264 predict functions
  lavf: fix invalid reads in avformat_find_stream_info()
  cmdutils: replace opt_default with opt_default2() and remove set_context_opts
  ffmpeg: use new avcodec_open2 and avformat_find_stream_info API.
  ffplay: use new avcodec_open2 and avformat_find_stream_info API.
  cmdutils: store all codec options in one dict instead of video/audio/sub
  ffmpeg: check experimental flag after codec is opened.
  ffmpeg: do not set GLOBAL_HEADER flag in the options context

Conflicts:
	cmdutils.c
	doc/APIchanges
	ffmpeg.c
	ffplay.c
	libavcodec/version.h
	libavformat/version.h
	libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-14 20:44:58 +02:00
Anton Khirnov
1885824b20 ffmpeg: deprecate -vc and -tvstd
They've been replaced by demuxer private options.

55ba12e300
2011-07-14 18:22:37 +02:00
Anton Khirnov
f790d0092e ffmpeg: use new avformat_open_* API.
8035f42968
2011-07-14 18:22:36 +02:00
Anton Khirnov
8d03ca085f ffmpeg: print the low bitrate warning after the codec is openend.
This doesn't access avcodec_opts, so it works with the new options
passing system.

Makes opt_bitrate() unneeded, so it's removed.
2011-07-14 14:15:41 +02:00
Michael Niedermayer
80e4fe4063 Merge commit 'b5849f77095439e994b11c25e6063d443b36c228'
* commit 'b5849f77095439e994b11c25e6063d443b36c228': (21 commits)
  ac3enc: merge AC3MDCTContext with AC3EncodeContext.
  ac3enc: prefer passing AC3EncodeContext rather than AVCodecContext
  ac3enc: fix memleak
  mpeg1video: add CODEC_CAP_SLICE_THREADS.
  lavf: fix segfault in av_open_input_stream()
  mpegtsenc: set Random Access indicator on keyframe start packets
  lavf: Cleanup try_decode_frame() logic.
  Replace some gotos that lead to single return statements by direct return.
  build: move tests/seek_test.c to libavformat and reuse generic build rules
  mxfenc: include needed header for ff_iso8601_to_unix_time() prototype
  Add a check for strptime().
  lavf: factor out conversion of ISO8601 string to unix time
  wav: parse 'bext' metadata
  wav: keep parsing until EOF if the input is seekable and we know the size of the data tag
  wav: Refactor the tag checking into a switch statement
  wav: make sure neither data_size nor sample_count is negative.
  wav: refactor the 'fmt ' tag search and parsing.
  wav: add an option for writing BEXT chunk
  ffmpeg: get rid of a pointless limit on number of streams.
  ffmpeg: remove an unused define.
  ...

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-14 02:24:10 +02:00
Anton Khirnov
bf174a70cd ffmpeg: use new avcodec_open2 and avformat_find_stream_info API. 2011-07-13 23:17:42 +02:00
Anton Khirnov
a9eb4f0899 ffmpeg: check experimental flag after codec is opened.
This doesn't access avcodec_opts, so it will work with the new options
passing system.
2011-07-13 23:17:42 +02:00
Anton Khirnov
8e2d085516 ffmpeg: do not set GLOBAL_HEADER flag in the options context
The removed lines have no effect, since the flag is set on all encoder
for the given file and avcodec_opts are reset between files.
2011-07-13 23:17:42 +02:00
Diego Biurrun
71a1d1116f Replace some gotos that lead to single return statements by direct return. 2011-07-13 17:53:49 +02:00
Anton Khirnov
c7dd3e7e43 ffmpeg: get rid of a pointless limit on number of streams. 2011-07-13 10:37:24 +02:00
Anton Khirnov
646a9a1893 ffmpeg: remove an unused define. 2011-07-13 10:37:20 +02:00
Michael Niedermayer
bb258fb995 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: Improve references to external URLs.
  h264: move decode_mb_skip() from h264.h to h.264_mvpred.h
  ffplay: skip return value of avcodec_decode_video2 / avcodec_decode_subtitle2
  dnxhdenc: Replace a forward declaration by the proper #include.
  h264: move h264_mvpred.h include.
  pix_fmt: Fix number of bits per component in yuv444p9be
  lavf: deprecate AVFormatContext.timestamp
  ffmpeg: merge input_files_ts_scale into InputStream.
  ffmpeg: don't abuse a global for passing sample format from input to output
  ffmpeg: don't abuse a global for passing channel layout from input to output
  ffmpeg: factor common code from new_a/v/s/d_stream to new_output_stream()
  matroskaenc: make SSA default subtitle codec.
  oggdec: prevent heap corruption.

Conflicts:
	doc/developer.texi
	doc/faq.texi
	doc/general.texi
	ffmpeg.c
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-13 00:42:11 +02:00
Anton Khirnov
5f847bf61d lavf: deprecate AVFormatContext.timestamp
It's replaced by 'creation_time' metadata tag.
2011-07-12 15:30:10 +02:00
Anton Khirnov
b12c259252 ffmpeg: merge input_files_ts_scale into InputStream. 2011-07-12 15:29:21 +02:00
Anton Khirnov
6fbf2485ad ffmpeg: don't abuse a global for passing sample format from input to output
It's broken with multiple files or audio streams.
2011-07-12 15:28:53 +02:00
Anton Khirnov
87c739a395 ffmpeg: don't abuse a global for passing channel layout from input to output
It's broken with multiple files or audio streams.
2011-07-12 15:28:22 +02:00
Anton Khirnov
1cede1d011 ffmpeg: factor common code from new_a/v/s/d_stream to new_output_stream() 2011-07-12 15:26:04 +02:00
Michael Niedermayer
58257ea29e Merge remote-tracking branch 'qatar/master'
* qatar/master: (28 commits)
  mp3enc: write a xing frame containing number of frames in the file
  lavf: update AVStream.nb_frames when muxing.
  ffmpeg: remove unused variables from InputStream.
  doc: update ffmpeg -ar and -ac documentation to reflect reality.
  ffmpeg: remove pointless if (nb_input_files)
  ffmpeg: merge input_files_ts_offset into input_files.
  ffmpeg: merge input_codecs into input_streams.
  ffmpeg: drop AV prefixes from struct names.
  ffmpeg: deprecate loop_input and loop_output options
  gif: add loop private option.
  img2: add loop private option.
  AVOptions: in av_opt_find() don't return named constants unless unit is specified.
  x11grab: replace undocumented nomouse hackery with a private option.
  dict: extend documentation.
  lls: whitespace cosmetics
  docs: Use proper markup for a literal command line option
  docs: Remove a remark that isn't relevant any longer
  docs: Explain how to regenerate import libraries with MSVC tools
  docs: Mention that libraries for MSVC can be built with a cross compiler
  docs: Remove old docs that mention setting up a build environment with lib.exe
  ...

Conflicts:
	doc/ffmpeg.texi
	doc/general.texi
	ffmpeg.c
	libavcodec/Makefile
	libavcodec/dnxhddata.c
	libavformat/mp3enc.c
	libavformat/utils.c
	libavutil/Makefile
	tests/copycooker.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-09 02:06:40 +02:00
Anton Khirnov
e98bc78ca1 ffmpeg: remove unused variables from InputStream. 2011-07-08 19:58:23 +02:00
Anton Khirnov
20f9f21fd4 ffmpeg: remove pointless if (nb_input_files)
It's required to be non-zero since
cc58300e30
2011-07-08 19:58:23 +02:00
Anton Khirnov
27e91f37f5 ffmpeg: merge input_files_ts_offset into input_files. 2011-07-08 19:58:23 +02:00
Anton Khirnov
9e253c13d0 ffmpeg: merge input_codecs into input_streams.
There's no point in keeping them separate.
2011-07-08 19:58:23 +02:00
Anton Khirnov
17c8cc550d ffmpeg: drop AV prefixes from struct names.
Those are reserved for the libs.
2011-07-08 19:58:22 +02:00
Anton Khirnov
f5302e5dcf ffmpeg: deprecate loop_input and loop_output options
They were replaced by (de)muxer private options.
2011-07-08 19:58:19 +02:00