Commit Graph

167 Commits

Author SHA1 Message Date
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