Commit Graph

343 Commits

Author SHA1 Message Date
Anton Khirnov
324fbadff9 avconv: remove debugging cruft from do_video_out(). 2012-02-03 13:45:02 +01:00
Anton Khirnov
61a099680c avconv: factorize setting stream_index for the output packet. 2012-02-03 13:44:59 +01:00
Anton Khirnov
d7edd359ec avconv: deprecate the -deinterlace option
Its quality is horrible, yadif should always be used instead.
2012-01-30 21:43:08 +01:00
Mans Rullgard
3715d841a6 Fix non-C89 declarations in for loops
Some compilers still do not support this syntax.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-01-29 23:26:04 +00:00
Diego Biurrun
abe655a472 Drop unnecessary prefix from *sink* variable and struct names. 2012-01-25 12:28:36 +01:00
Janne Grunau
2473a45c85 threads: change the default for threads back to 1
Using threaded decoding by default breaks backward compatibility if
AVHWAccel is used or if an appliction sets threadunsafe callbacks.
Avconv and avplay still use -threads auto if not specified.
2012-01-21 13:26:44 +01:00
Diego Biurrun
45f2908d02 cosmetics: Rename ffsink to avsink. 2012-01-19 00:19:43 +01:00
Anton Khirnov
9993284793 avconv: fix -frames for video encoders with delay.
Frames must be counted when they are passed to the encoder, not when
they come out.

Fixes Bug 202.
2012-01-17 09:39:32 +01:00
Justin Ruggles
ee458cb1fa avconv: use avcodec_encode_audio2() 2012-01-15 21:24:18 -05:00
Anton Khirnov
b2ce3b998b avconv: use AVFrame.width/height/format instead of corresponding AVCodecContext fields 2012-01-12 09:02:01 +01:00
Anton Khirnov
ac64607682 avconv: reinitialize the filtergraph on resolution change.
This is a hopefully temporary solution until lavfi can properly deal
with resolution changes.
2012-01-10 16:47:15 +01:00
Anton Khirnov
7b9373db89 avconv: fix -copyinkf.
This option only applies to streamcopy, but is currently processed only
when encoding.
2012-01-10 16:47:15 +01:00
Anton Khirnov
e8c04f6240 avconv: add symbolic names for -vsync parameters 2012-01-04 21:25:25 +01:00
Anton Khirnov
c88d53199b avconv: remove the 'codec framerate is different from stream' warning
Codec timebase is not framerate and the situation when it's different
from AVStream.r_frame_rate is quite common, nothing to warn about.
2012-01-02 14:15:09 +01:00
Anton Khirnov
f15f02c204 avconv: make -frames work for all types of streams, not just video. 2012-01-01 22:27:52 +01:00
Janne Grunau
1135a07146 avconv: free bitstream filters 2012-01-01 21:48:50 +01:00
Aneesh Dogra
7636c8c6a3 avconv: K&R cosmetics
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-29 21:45:44 +01:00
Anton Khirnov
04a14d4d25 avconv: avoid memcpy in vsrc_buffer when possible.
Decoding Sintel.2010.1080p.mkv with 4 threads on an i7 2600K goes from
260s to 244s.
2011-12-25 16:18:57 +01:00
Anton Khirnov
64dca32cdf avconv: implement get_buffer()/release_buffer().
This will allow memcpy-free passing frames to lavfi.
2011-12-25 16:18:57 +01:00
Alex Converse
4bf3c8f226 mov: Don't stick the QuickTime field ordering atom in extradata.
The 'fiel' atoms can be found in H.264 tracks clobbering the extradata.
MJPEG supports non field based extradata, and this data should be
preserved when copying.
2011-12-21 22:04:37 -08:00
Alexandra Khirnova
a7b5e841ff avconv: support stream specifiers in -metadata and -map_metadata
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-16 21:12:53 +01:00
Anton Khirnov
cd3716b9aa Replace all uses of av_close_input_file() with avformat_close_input(). 2011-12-12 20:34:38 +01:00
Janne Grunau
f6cf4be821 avconv: update -map option help text 2011-12-12 14:36:04 +01:00
Diego Biurrun
da9cea77e3 Fix a bunch of common typos. 2011-12-11 00:32:25 +01:00
Anton Khirnov
5bf6638022 avconv: drop code for special handling of avserver streams.
It's broken and doesn't work anyway.

This patch means that avconv will ignore encoding options from the ffm
file and will instead use whatever is provided on the commandline as for
normal output.
2011-12-10 22:02:44 +01:00
Luca Barbato
f75e3d25d0 avconv: remove unsubstantiated comment
All the currently supported OS-es manage to use return values
properly.
2011-12-08 12:47:34 +01:00
Justin Ruggles
9179f27c64 avconv: only allocate 1 AVFrame per input stream
This avoids allocating/freeing an AVFrame for each packet decode. It also
simplifies error handling in transcode_audio() and transcode_video().
2011-12-05 11:54:24 -05:00
Justin Ruggles
110d2af28e avconv: fix memleaks due to not freeing the AVFrame for audio 2011-12-05 10:53:29 -05:00
Justin Ruggles
d1241ff3b2 avconv: use avcodec_decode_audio4() instead of avcodec_decode_audio3() 2011-12-04 18:29:51 -05:00
Mans Rullgard
150ddbc148 Do not memcpy raw video frames when using null muxer
Commit 035af99 made avconv always call an encoder when using the
null muxer.  While useful for 2-pass encodes, it inadvertently
caused an extra memcpy of raw frames when decoding only.

This hack restores the old behaviour when only decoding while
allowing use of the null muxer with encoded streams as well.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-02 18:49:50 +00:00
Anton Khirnov
7bb3e62594 avconv: make copy_tb on by default.
I.e. on streamcopy set output codec timebase from input stream timebase
(as opposed to input codec timebase). This should be more sane, because
since the stream is not decoded, the input codec tb has no relation to
the timestamps of the copied packets.
2011-11-30 07:47:43 +01:00
Anton Khirnov
741a05a293 avconv: compute next_pts from input packet duration when possible. 2011-11-30 07:47:43 +01:00
Anton Khirnov
91b412e786 avconv: update InputStream.pts in the streamcopy case.
This was broken in 2a651b719c.
2011-11-30 07:47:43 +01:00
Alex Converse
fdab793a46 avconv: Handle audio sync for non-S16 sample formats.
Also fix reporting of the number of samples added/dropped.
2011-11-28 22:18:09 -08:00
Janne Grunau
aa38cff2c6 avconv: fix segfault at EOF with delayed pictures
At EOF it makes no sense to modify avpkt.{data,size} in output_packet
since no data is consumed. Frame threading with more than 1 threads
hits the segfault.
2011-11-24 00:33:02 +01:00
Anton Khirnov
06d4e2fa5a avconv: remove a now unused parameter from output_packet(). 2011-11-23 22:03:32 +01:00
Anton Khirnov
8b0268a853 avconv: formatting fixes in output_packet() 2011-11-23 22:02:59 +01:00
Anton Khirnov
ffa0674e5a avconv: declare some variables in blocks where they are used 2011-11-23 22:01:32 +01:00
Anton Khirnov
af8ad892bf avconv: use the same behavior when decoding audio/video/subs
I.e. if the packet was only partially consumed, pass the rest of it into
the decoder again.

Also simplify the code so it's the same for video/audio/subs.
2011-11-23 21:58:53 +01:00
Anton Khirnov
e1edfbcb24 avconv: use vsync 0 for AVFMT_NOTIMESTAMPS formats.
Prevent avconv from duplicating or dropping frames for formats where it
makes even less sense than usual, e.g. image2.
2011-11-23 21:38:17 +01:00
Alex Converse
105ab61c5f avconv: Consistently use PIX_FMT_NONE.
Use PIX_FMT_NONE instead of -1 when dealing with PixelFormat variables.
2011-11-22 14:33:11 -08:00
Anton Khirnov
82963f8f04 avconv: cleanup the transcoding loop in output_packet(). 2011-11-21 21:43:48 +01:00
Anton Khirnov
9595234c94 avconv: split subtitle transcoding out of output_packet(). 2011-11-21 18:12:38 +01:00
Anton Khirnov
45d4b66f6f avconv: split video transcoding out of output_packet(). 2011-11-21 18:12:38 +01:00
Anton Khirnov
ded28ba35b avconv: split audio transcoding out of output_packet(). 2011-11-21 18:12:38 +01:00
Anton Khirnov
78162b4ea2 avconv: reindent. 2011-11-21 18:12:38 +01:00
Anton Khirnov
2a651b719c avconv: move streamcopy-only code out of decoding loop. 2011-11-21 18:12:37 +01:00
Anton Khirnov
51aeb69452 avconv: remove an always true condition and reindent. 2011-11-21 18:12:37 +01:00
Anton Khirnov
7204ec1a88 avconv: split off streamcopy handling into a separate loop.
This is easier to understand and is less likely to break horribly when a
stream is to be both decoded and copied.
2011-11-21 18:12:37 +01:00
Anton Khirnov
03f30c837b avconv: cosmetics, reformat transcode_init()
Fix spacing, vertically align, break some long lines, add some empty
lines for readability.
2011-11-21 08:13:37 +01:00
Anton Khirnov
1bb77e51a8 avconv: rename 'os' variable to 'oc'
Output AVFormatContext is called 'oc' in most other places.
2011-11-21 08:13:32 +01:00
Martin Storsjö
2abe947ac0 avconv: Set new interrupt callbacks for all AVFormatContexts, use avio_open2() everywhere
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-11-18 11:01:16 +01:00
Anton Khirnov
492cc1bef3 avconv: remove some codec-specific hacks
The problem they are supposed to fix is handled in riff.c, so those
hacks are pointless.
2011-11-10 11:55:58 +01:00
Anton Khirnov
059fb8c884 avconv: remove some redundant temporary variables. 2011-11-06 18:38:54 +01:00
Anton Khirnov
f8c314c81f avconv: fix broken indentation 2011-11-06 18:38:53 +01:00
Anton Khirnov
a2aeeb2263 avconv: move copy_initial_nonkeyframes to the options context.
Also document it.
2011-11-06 18:38:53 +01:00
Anton Khirnov
9a414d8962 avconv: use file:stream instead of file.stream in log messages. 2011-11-06 18:38:53 +01:00
Martin Storsjö
776f2bb91a Call avformat_network_init/deinit in the programs
Calling the init function will become mandatory at some later
point. By calling it, more heavy network init (such as SSL/TLS
library init) can be done once at startup, instead of implicitly
when used (which could lead to it being done a number of times).

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-06 18:31:39 +02:00
Anton Khirnov
a2c0b830d5 avconv: add -dump_attachment option. 2011-11-03 07:29:29 +01:00
Anton Khirnov
4dbc6ceef5 avconv: add -attach option.
It allows attaching arbitrary files, e.g. fonts to Matroska files.
2011-11-03 07:28:21 +01:00
Anton Khirnov
e6674f685b avconv: make negative mappings disable only streams from the specified file 2011-11-03 07:28:08 +01:00
Martin Storsjö
02170990fd cmdutils: Rename read_file to cmdutils_read_file
This symbol name clashes with a symbol in gnutls, if linking
statically to that library.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-10-31 16:29:29 +02:00
Justin Ruggles
d0a196962a g722dec: remove the use of lowres for half-rate decoding.
It is broken because an AVCodecContext can be opened/closed multiple
times, and sample_rate is getting divided by 2 each time that happens.

This removes the only use of lowres for audio.
2011-10-25 11:30:50 -04:00
Anton Khirnov
3d813e4c54 lavf: deprecate AVStream.stream_copy
It's only used in avconv, so it properly belongs to OutputStream struct
there.
2011-10-25 16:30:00 +02:00
Anton Khirnov
1b648c7cdb avconc: split choose_codec() to choose_decoder/choose_encoder.
Prevents -c copy from working for input streams and allows to move
stream_copy variable from AVStream to OutputStream.
2011-10-25 16:29:01 +02:00
Anton Khirnov
f172132f82 mpegenc: add preload private option.
Deprecate AVFormatContext.preload.
2011-10-25 16:27:48 +02:00
Anton Khirnov
84ad31ff18 lavf: replace av_new_stream->avformat_new_stream part II.
Manual replacements are done in this commit.

In many cases, the id is some constant made up number (e.g. 0 for video
and 1 for audio), which is then not used in the demuxer for anything.
Those ids are removed.
2011-10-19 17:02:11 +02:00
Alexandra Khirnova
3ec344626c avconv: add presets
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-17 22:24:17 +02:00
Anton Khirnov
7a6cd9957d cmdutils/avtools: simplify show_help() by using av_opt_child_class_next() 2011-10-12 16:51:17 +02:00
Anton Khirnov
3b3ea34655 Remove all uses of deprecated AVOptions API. 2011-10-12 16:51:16 +02:00
Mans Rullgard
8124d8ad66 avtools: add -v as alias for -loglevel
This saves a bit of typing.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-10-09 16:53:06 +01:00
Anton Khirnov
f5646a325b avconv: always print stats with AV_LOG_INFO
It's now possible to disable printing stats during encoding with
-nostats, so there's no reason to print them differently depending on
whether it's last report or not.
2011-10-09 17:15:18 +02:00
Anton Khirnov
3460dd8acf avconv: add -stats option to enable/disable printing encoding progress 2011-10-09 17:15:18 +02:00
Anton Khirnov
c6007065ed avconv: in output_packet() don't set decoded_data_size for video.
It's only used for audio.
2011-10-09 17:15:18 +02:00
Anton Khirnov
515901fad2 avconv: remove pointless always true condition 2011-10-09 17:15:18 +02:00
Anton Khirnov
11fdb7e197 avconv: factorize common code in transcode_init() 2011-10-09 17:15:18 +02:00
Alex Converse
daf9890811 avconv: Reformat s16 volume adjustment. 2011-09-28 12:33:51 -07:00
Alex Converse
4bb0b31f76 avconv: Initialize return value for codec copy path. 2011-09-27 19:32:26 -07:00
Alex Converse
a9a033773a avconv: Fix volume adjustment for non-s16 sample formats 2011-09-27 14:10:12 -07:00
Alex Converse
fe332cf5b9 avconv: Make samples void*.
Different sample formats are different sizes.
2011-09-27 14:10:12 -07:00
Alex Converse
af3c06b4db avconv: Use the size of the decode sample format when allocating the audio samples buffer. 2011-09-27 14:10:12 -07:00
Anton Khirnov
d3c1d37a90 avconv: use different variables for decoded and filtered frame.
Makes the code less obfuscated and fixes encoding one video stream to
several outputs.

Also use avcodec_alloc_frame() instead of allocating AVFrame on stack.

Breaks me_threshold in avconv, as motion vectors aren't passed through
lavfi. They could be copied manually, but I don't think this misfeature
is useful enough to justify ugly hacks.
2011-09-27 19:17:37 +02:00
Anton Khirnov
3ccd15803b avconv: add support for copying attachments. 2011-09-27 15:26:36 +02:00
Anton Khirnov
becdce99eb avconv: factorize common code from new_*_stream() 2011-09-27 15:26:35 +02:00
Anton Khirnov
e3245b2631 avconv: replace all fprintf() by av_log().
Deprecate -v option, now only -loglevel is enough.
2011-09-26 20:33:50 +02:00
Anton Khirnov
f24facd3ec avconv: change av_log verbosity from ERROR to FATAL for fatal errors. 2011-09-26 20:33:50 +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
Anton Khirnov
9b921a8272 avconv: use correct output stream index when checking max_frames 2011-09-25 08:28:14 +02:00
Anton Khirnov
240ae356e9 avconv: remove fake coded_frame on streamcopy hack
Back in 2002 when it was added, some muxers used information from
coded_frame. It's not true anymore, so this hack is useless and can be
removed.
2011-09-25 08:28:10 +02:00
Anton Khirnov
dc3e76f3f2 avconv: actually set InputFile.rate_emu 2011-09-23 10:04:44 +02:00
Anton Khirnov
4bb3ae1eaa avconv: use correct index when selecting metadata to write to. 2011-09-11 17:30:05 +02:00
Anton Khirnov
f39ecc79aa avconv: fix inverted variable 2011-09-11 17:30:05 +02:00
Anton Khirnov
495ecfd139 avconv: move streamid_map to options context. 2011-09-11 17:30:04 +02:00
Anton Khirnov
8e5ce5901b avconv: extend -vf syntax
Add a per-stream -filter option, make -vf an alias for -filter:v. Move
vfilters to the options context.
2011-09-11 17:30:04 +02:00
Anton Khirnov
828e0bcb86 avconv: move top_field_first to options context. 2011-09-11 17:30:04 +02:00
Anton Khirnov
2c2cff16d9 avconv: move inter/intra matrix to options context. 2011-09-11 17:30:04 +02:00
Anton Khirnov
0bc391281a avconv: remove -psnr option.
It's redundant -- -flags +psnr does the same thing.
2011-09-11 17:30:04 +02:00
Anton Khirnov
d242d80e36 avconv: remove me_threshold option.
It's only shadowing the AVOption with the same name.
2011-09-11 17:30:04 +02:00
Anton Khirnov
0e68c78385 avconv: move video_rc_override_string to options context. 2011-09-11 17:30:03 +02:00
Anton Khirnov
b2254d8385 avconv: move frame pixel format to the options context.
Also remove redundant -pix_fmt list syntax, it's inconsistent and  only
makes the code more complicated. -pix_fmts should be enough for
everyone.
2011-09-11 17:30:03 +02:00
Anton Khirnov
ca46fde792 avconv: move frame aspect ratio to the options context. 2011-09-11 17:30:03 +02:00
Anton Khirnov
d4397b0323 avconv: move frame size to the options context. 2011-09-11 17:30:03 +02:00
Anton Khirnov
91ea4811b3 avconv: move frame_rate to the options context. 2011-09-11 17:30:03 +02:00
Anton Khirnov
bef737a78a avconv: move force_fps to the options context. 2011-09-11 17:30:03 +02:00
Anton Khirnov
7c0296723c avconv: move forced_key_frames to the options context. 2011-09-11 17:30:03 +02:00
Anton Khirnov
77d9c4542c avconv: rewrite -qscale and -aq handling.
Merge video_qscale (set by -qscale) and audio_qscale (set by -aq) into
one 'qscale' field in the options context. Add a shortcut -q for -qscale
and make -aq an alias for -q:a.
2011-09-11 17:30:03 +02:00
Anton Khirnov
e2469ccf01 avconv: move audio_sample_rate to the options context. 2011-09-11 17:30:03 +02:00
Anton Khirnov
2c474ddbc5 cmdutils: add support for programs in check_stream_specifier()
Remove now redundant (and broken/undocumented) opt_programid.
2011-09-11 17:30:01 +02:00
Anton Khirnov
05bffc12c4 avconv: move audio_sample_fmt to options context.
Also document it and replace undocumented and inconsistent
'-sample_fmt list' syntax with -sample_fmts.
2011-09-11 17:29:55 +02:00
Anton Khirnov
6a11686dfc avconv: move audio_channels to the options context. 2011-09-10 15:25:57 +02:00
Anton Khirnov
2130981af3 avconv: move *_disable to options context. 2011-09-10 13:10:02 +02:00
Anton Khirnov
35c5d7d1ef avconv: remove -[vas]lang options.
They are redundant, the same can be now accomplished with -metadata.
2011-09-10 13:09:42 +02:00
Anton Khirnov
013887ebcd avconv: move codec tags to options context.
Add a new -tag option, make -[vas]tag an alias for -tag:[vas]
2011-09-10 13:03:54 +02:00
Anton Khirnov
a2a38d9665 avconv: fix parsing metadata specifiers.
After 039267f192, metadata specifiers are
passed without the leading ':'. Remove a ++ that didn't take this into
account.
2011-09-05 12:11:10 +02:00
Anton Khirnov
dc26318c2d avconv: move mux_preload and mux_max_delay to options context 2011-09-05 11:18:15 +02:00
Anton Khirnov
d821cbe2ff avconv: move bitstream filters to options context.
Change syntax -- -[vas]bsf are replaced by -bsf:[stream specifier], the
argument is now a comma-separated list of bitstream filters.
2011-09-05 11:17:31 +02:00
Anton Khirnov
f480532822 avconv: move rate_emu to options context.
Make it work properly with multiple input files.
2011-09-05 11:17:07 +02:00
Anton Khirnov
96139b5e32 avconv: move max_frames to options context.
Add a -frames option that uses generic stream specifiers, change
-[vad]frames into aliases to it.
2011-09-05 11:16:46 +02:00
Anton Khirnov
039267f192 avconv: move metadata to options context.
It is now possible to set metadata on streams and chapters.
2011-09-05 11:16:02 +02:00
Anton Khirnov
33f75d72e6 avconv: move ts scale to options context. 2011-09-05 11:15:40 +02:00
Anton Khirnov
c5bb372e85 avconv: move chapter maps to options context. 2011-09-05 11:15:28 +02:00
Anton Khirnov
847529f84a avconv: move metadata maps to options context. 2011-09-05 11:15:17 +02:00
Anton Khirnov
35e6f8c174 avconv: move codec_names to options context. 2011-09-05 11:13:36 +02:00
Anton Khirnov
7041bb3b1a avconv: move format to options context 2011-09-04 13:12:00 +02:00
Anton Khirnov
13ccba50d4 avconv: move limit_filesize to options context 2011-09-04 13:12:00 +02:00
Anton Khirnov
6b779cccaa avconv: move start_time, recording_time and input_ts_offset to options context 2011-09-04 13:12:00 +02:00
Anton Khirnov
575ec4e17d avconv: add a context for options.
Move stream maps to it.

Eventually all non-global options should be stored in it.
2011-09-04 13:12:00 +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
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
6248694861 avconv: fix some bugs introduced in 630902a1e1
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: Anton Khirnov <anton@khirnov.net>
2011-09-01 11:04:13 +02:00
Anton Khirnov
2e2594ca5b avconv: remove -threads option.
It's only shadowing the AVOption with the same name.
2011-08-30 20:51:32 +02:00
Alex Converse
f593628e58 avconv: Replace raw picture frame swapping hack. 2011-08-30 10:12:22 -07:00
Anton Khirnov
c922816d31 avconv: remove stubs of crop* and pad* options 2011-08-29 06:22:10 +02:00
Anton Khirnov
ed5b13265e avconv: 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-29 06:22:07 +02:00
Diego Biurrun
0249478756 doxygen: fix wrong comment syntax, //< vs. ///< 2011-08-26 18:34:28 +02:00
Alex Converse
b9630bcf82 avconv: Replace goto redo on decode fail with continue.
This checks for sigterm but otherwise is identical to the previous
behavior.
2011-08-24 10:13:32 -07:00
Alex Converse
389e0a5a24 avconv: Remove dead store. 2011-08-24 10:13:32 -07:00
Alex Converse
6c7ee2f7db avconv: use av_clip_int16 for audio clipping 2011-08-23 09:53:23 -07:00
Nicolas George
bc8c50512f avconv: print the codecs names in the stream mapping.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-08-23 16:50:01 +02:00
Anton Khirnov
c74b44de08 avconv: 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-23 16:50:01 +02:00
Alex Converse
eaf2d37acc avconv: Separate initialization from the main transcode loop. 2011-08-19 15:41:05 -07:00
Anton Khirnov
f60a6b5853 avconv: reset input_ts_offset between files.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2011-08-19 15:37:14 -07:00
Anton Khirnov
b62b5cb6fd avconv: call flush_encoders() from transcode() directly.
And remove now pointless parameter.

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2011-08-19 15:36:05 -07:00
Anton Khirnov
c093150849 avconv: fix broken indentation.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2011-08-19 15:35:20 -07:00
Anton Khirnov
f21f294e05 avconv: 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-19 15:34:24 -07:00
Alex Converse
e6d2b73784 avconv: Set error code before before jumping to fail. 2011-08-19 11:28:21 -07:00
Alex Converse
bb337b4fbc avconv: Fix spelling errors.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-08-18 22:29:41 +02:00
Anton Khirnov
6f1c66d526 avconv: save two levels of indentation in flush_encoders()
By replacing
if (foo)
    <do stuff>

with
if (!foo)
    continue;
<do stuff>
2011-08-18 11:22:12 +02:00
Anton Khirnov
4a4ce2e743 avconv: factor flushing encoders out of output_packet(). 2011-08-18 11:22:12 +02:00
Anton Khirnov
630902a1e1 avconv: factor out initializing input streams. 2011-08-18 11:22:12 +02:00
Anton Khirnov
ddf5ef0263 avconv: remove -intra option.
It's equivalent to -g 0.
2011-08-18 11:22:05 +02:00
Anton Khirnov
e922bbfa76 avconv: reset streamid_map between output files. 2011-08-18 08:49:32 +02:00
Anton Khirnov
c5ad2c2cc6 avconv: make timer_start a local var in transcode(). 2011-08-18 08:49:32 +02:00
Anton Khirnov
6494c001be avconv: cosmetics, move OutputStream.
Allows us to get rid of forward InputStream declaration.
2011-08-18 08:49:32 +02:00
Anton Khirnov
e659c51563 avconv: remove two unused macros. 2011-08-18 08:49:32 +02:00
Anton Khirnov
45f861283e avconv: reindent. 2011-08-17 20:01:12 +02:00
Anton Khirnov
ea065176b2 avconv: rescue poor abused start_time global.
Keep a per-OutputFile instance of it, thus making -ss work with multiple
output files.
2011-08-17 20:00:46 +02:00
Anton Khirnov
ef44a60710 avconv: rescue poor abused recording_time global.
Keep a per-OutputFile instance of it, thus making -t work with multiple
output files.
2011-08-17 20:00:06 +02:00
Anton Khirnov
2886aee73f avconv: merge two loops in output_packet(). 2011-08-17 19:58:55 +02:00
Anton Khirnov
f1176d41af avconv: fix broken indentation. 2011-08-17 19:58:31 +02:00
Anton Khirnov
b0c9e8e024 avconv: get rid of the arbitrary MAX_FILES limit. 2011-08-17 19:58:16 +02:00
Anton Khirnov
4288e0316a avconv: 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-17 19:57:20 +02:00
Anton Khirnov
af70aa4526 avconv: add a wrapper for output AVFormatContexts and merge output_opts into it 2011-08-17 19:55:55 +02:00
Anton Khirnov
09af7fb309 avconv: make itsscale syntax consistent with other options.
Move the stream specifier to the option name.
2011-08-17 19:53:05 +02:00
Anton Khirnov
88867844c6 avconv: factor out adding input streams. 2011-08-17 19:52:28 +02:00
Alex Converse
553735f5a8 avconv: Factorize combining auto vsync with format. 2011-08-17 10:16:52 -07:00
Alex Converse
87ef060c3b avconv: Factorize video resampling. 2011-08-17 10:16:48 -07:00
Alex Converse
9be3c1245f avconv: Don't unnecessarily convert ipts to a double. 2011-08-17 10:05:57 -07:00
Anton Khirnov
6cd9d0f77d Revert "avconv: use stream copy by default when possible."
This reverts commit 4f4f33844a.

This commit has some ugly corner cases and needs to be discussed
further.
2011-08-16 20:59:14 +02:00
Anton Khirnov
ad42126abc avconv: print stream copy information. 2011-08-16 20:24:20 +02:00
Anton Khirnov
4f4f33844a avconv: use stream copy by default when possible. 2011-08-16 20:24:20 +02:00
Anton Khirnov
5759cce70d avconv: don't segfault on 0 input files. 2011-08-16 20:24:20 +02:00
Anton Khirnov
2c81d5f4c5 avconv: remove a write-only variable 2011-08-16 06:24:01 +02:00
Anton Khirnov
40fc281087 avconv: remove pointless parameter from new_*_stream().
New streams are always added to the last output file.
2011-08-16 06:23:46 +02:00
Anton Khirnov
169f0647b7 avconv: cosmetics, move code
Move find_codec_or_die(), choose_codec(), new_output_stream() and
read_avserver_streams() below transcode() where they belong.
2011-08-16 06:23:27 +02:00
Anton Khirnov
86530f418e avconv: cosmetics -- move copy_chapters().
It's only used in opt_output_file(), so move it right above
opt_output_file().
2011-08-16 06:21:32 +02:00
Anton Khirnov
f233cfed7b avconv: 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-16 06:21:25 +02:00
Anton Khirnov
64db1a82d6 lavc: add audio flag to the 'b' option, deprecate 'ab'.
Its only reason for its existence was ffmpeg's inability to properly assign
AVOptions to streams. Now this is not a problem anymore, so 'ab' should
go.
2011-08-16 06:20:43 +02:00
Anton Khirnov
f4ad238c6c avconv: rename sameq to same_quant
It's often mistakenly used as 'same quality', emphasize that it's not
true in the manual.
2011-08-16 06:19:08 +02:00
Anton Khirnov
92f1940e99 avconv: 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-16 06:17:02 +02:00
Anton Khirnov
ff884c79ee avconv: remove presets.
Nothing except x264 uses them and native x264 presets should be used
with private options.
2011-08-16 06:10:20 +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
Kostya
5c59fa56ed Turn on resampling on sudden size change instead of bailing out during recode.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-08-15 11:53:45 +02:00
Kostya
428c59d911 avtools: reinitialise filter chain when input video stream changes dimensions
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-08-15 11:53:40 +02:00
Anton Khirnov
8d2e4a7e68 avconv: 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-12 19:10:22 +02:00
Anton Khirnov
3d4f0dab79 avconv: 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-12 19:10:22 +02:00
Anton Khirnov
d4863fc1a8 cmdutils: allow precisely specifying a stream for AVOptions. 2011-08-12 18:35:12 +02:00
Anton Khirnov
e6e6060c9b avconv: 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-12 13:50:36 +02:00
Anton Khirnov
c9065c2917 avconv: remove deprecated options. 2011-08-12 13:30:38 +02:00
Anton Khirnov
b9aac90bd8 avconv: make -map_chapters accept only the input file index.
This is consistent with how all the other options work.
2011-08-12 13:30:07 +02:00
Anton Khirnov
6291d7e416 Make a copy of ffmpeg under a new name -- avconv.
It will be further developed with a few incompatible changes.

ffmpeg.c will stay as is for some time, so any scripts using it won't be
broken.
2011-08-12 13:27:30 +02:00