Commit Graph
100 Commits
Author SHA1 Message Date
Anton Khirnov 885da7b082 lavf: simplify is_intra_only() by using codec descriptors. 2012-08-11 11:34:24 +02:00
Anton Khirnov 51efed152d lavc: add an intra-only codec property. 2012-08-11 11:34:09 +02:00
Anton Khirnov c223d79945 lavc: add codec descriptors.
They describe properties that are inherent to a codec (as described by
an AVCodecID) without referring to a specific implementation.
2012-08-11 11:32:11 +02:00
Anton Khirnov 2ff67c909c lavc: fix mixing CODEC_ID/AV_CODEC_ID in C++ code.
C++ does not allow to mix different enums, so e.g. code comparing
ACodecID with CodecID would fail to compile with gcc.

This very evil hack should fix this problem.
2012-08-10 18:48:40 +02:00
Anton Khirnov 7ca14c731e vsrc_movie: discourage its use with avconv. 2012-08-08 21:56:44 +02:00
Anton Khirnov ab29609701 avconv: allow no input files.
It is now possible to use lavfi sources.
2012-08-08 21:56:26 +02:00
Anton Khirnov a5fd7c607f avconv: prevent invalid reads in transcode_init() 2012-08-08 21:55:54 +02:00
Anton Khirnov 57d2422559 avconv: rename OutputStream.is_past_recording_time to finished.
The new name is shorter and more accurate, since this variable is no
longer used only for checking recording time constraint.
2012-08-08 21:55:45 +02:00
Anton Khirnov 0c00fd80ee avconv: split the code for processing input packets out of transcode() 2012-08-08 21:55:15 +02:00
Anton Khirnov f154ef1ae5 avconv: send EOF to lavfi even if flushing the decoder fails 2012-08-08 20:16:29 +02:00
Anton Khirnov cc2133b66a avconv: get rid of pointless temporary variable. 2012-08-08 20:16:13 +02:00
Anton Khirnov 8391602913 avconv: simplify transcode().
Operate with a pointer to InputFile instead of its index in input_files.
2012-08-08 20:15:36 +02:00
Anton Khirnov c0fbf9713c avconv: cosmetics
Replace for (;foo == 0;) with while (!foo)
This is prettier.
2012-08-08 20:15:13 +02:00
Anton Khirnov 0b26ef4228 avconv: replace no_packet array in transcode() with a var in InputStream
This simplifies splitting code for reading from input out of
transcode().
2012-08-08 20:12:47 +02:00
Anton Khirnov bed43d58b0 avconv: remove unused variable from InputFile. 2012-08-08 20:12:22 +02:00
Anton Khirnov d64901f99d avconv: remove commented out cruft. 2012-08-08 20:12:11 +02:00
Anton Khirnov a4f5011065 avconv: maintain sync on lavfi outputs.
Before this commit, poll_filters() reads all frames available on each
lavfi output. This does not work for lavfi sources that produce
an unlimited number of frames, e.g. color and similar.

With this commit, poll_filters() reads from output with the lowest
timestamp and returns to wait for more input if no frames are available
on it.
2012-08-08 20:04:27 +02:00
Anton Khirnov fe2147e936 avconv: split configuring filter configuration to a separate file. 2012-08-08 11:11:52 +02:00
Anton Khirnov f5e668273a avconv: split option parsing into a separate file. 2012-08-08 11:10:06 +02:00
Anton Khirnov 94364b7d42 mpegaudioenc: list supported channel layouts. 2012-08-08 07:53:48 +02:00
Anton Khirnov 927e92cdc7 mpegaudiodec: don't print an error on > 1 frame in a packet.
It's a perfectly normal situation, nothing to spam about.
2012-08-08 07:53:48 +02:00
Anton Khirnov 5702c8670e api-example: update to new audio encoding API. 2012-08-08 07:53:47 +02:00
Anton Khirnov 36ef5369ee Replace all CODEC_ID_* with AV_CODEC_ID_* 2012-08-07 16:00:24 +02:00
Anton Khirnov 104e10fb42 lavc: add AV prefix to codec ids. 2012-08-07 15:56:39 +02:00
Anton Khirnov 921063877e apetag: change a forgotten return to return 0 2012-07-31 21:32:25 +02:00
Anton Khirnov f2ed006c90 mpc8: return more meaningful error codes. 2012-07-31 20:54:22 +02:00
Anton Khirnov 263dbe9d95 mpc: return more meaningful error codes. 2012-07-31 20:54:17 +02:00
Anton Khirnov 782e64fbe1 wv,mpc8: don't return apetag data in packets. 2012-07-31 20:53:54 +02:00
Anton KhirnovandDiego Biurrun 29d70274ec wv: K&R formatting cosmetics 2012-07-30 00:42:20 +02:00
Anton Khirnov aba232cfa9 lavf: deprecate r_frame_rate.
According to its description, it is supposed to be the LCM of all the
frame durations. The usability of such a thing is vanishingly small,
especially since we cannot determine it with any amount of reliability.
Therefore get rid of it after the next bump.

Replace it with the average framerate where it makes sense.

FATE results for the wtv and xmv demux tests change. In the wtv case
this is caused by the file being corrupted (or possibly badly cut) and
containing invalid timestamps. This results in lavf estimating the
framerate wrong and making up wrong frame durations.
In the xmv case the file contains pts jumps, so again the estimated
framerate is far from anything sane and lavf again makes up different
frame durations.

In some other tests lavf starts making up frame durations from different
frame.
2012-07-29 08:06:30 +02:00
Anton Khirnov f66eeff1c8 lavf: round estimated average fps to a "standard" fps. 2012-07-29 08:05:46 +02:00
Anton Khirnov fe1c1198e6 lavf: use dts difference instead of AVPacket.duration in find_stream_info()
AVPacket.duration is mostly made up and thus completely useless, this is
especially true for video streams.
Therefore use dts difference for framerate estimation and
the max_analyze_duration check.

The asyncts test now needs -analyzeduration, because the default is 5
seconds and the audio stream in the sample appears at ~10 seconds.
2012-07-29 08:04:42 +02:00
Anton Khirnov c1d865d563 wv: return meaningful error codes. 2012-07-28 14:37:16 +02:00
Anton Khirnov ccc10acb5b wv: return AVERROR_EOF on EOF, not EIO. 2012-07-28 14:37:12 +02:00
Anton Khirnov f73e3938ac mp3dec: forward errors for av_get_packet().
Don't invent a bogus EIO error.

The code now doesn't check for ret == 0, but that check is redundant,
av_get_packet() never returns 0.
2012-07-28 14:37:00 +02:00
Anton Khirnov 67b1156fe8 mp3dec: remove a pointless local variable. 2012-07-28 14:36:55 +02:00
Anton Khirnov 61f8bb74f3 mp3dec: remove commented out cruft. 2012-07-28 14:36:51 +02:00
Anton Khirnov b3fa478823 lavfi: bump minor to mark stabilizing the ABI. 2012-07-28 14:33:48 +02:00
Anton Khirnov 8f9537f314 FATE: add tests for yadif. 2012-07-28 14:33:44 +02:00
Anton Khirnov 8112710f17 FATE: add a test for delogo video filter. 2012-07-28 14:33:32 +02:00
Anton Khirnov 7339340787 FATE: add a test for amix audio filter. 2012-07-28 14:32:53 +02:00
Anton Khirnov 67ef5f4eb5 audiogen: allow specifying random seed as a commandline parameter. 2012-07-28 14:32:48 +02:00
Anton Khirnov efd34918ba lavf: remove commented out cruft in avformat_find_stream_info() 2012-07-28 10:00:38 +02:00
Anton Khirnov c4ef6a3e4b Add missing libavutil/time.h includes. 2012-07-28 09:02:07 +02:00
Anton KhirnovandLuca Barbato b5c8aa745e vf_yadif: unset cur_buf on the input link.
The buffer is stored internally, so this prevents it from being unreffed
automatically.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-26 00:01:04 +02:00
Anton KhirnovandLuca Barbato f431315a86 vf_overlay: ensure the overlay frame does not get leaked.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-26 00:01:04 +02:00
Anton Khirnov df53a4a7c1 FATE: fix the asyncts test
Nellymoser is float, so use oneoff comparison instead of md5.
2012-07-22 17:58:56 +02:00
Anton Khirnov 73cd131ebc FATE: add a test for the asyncts audio filter. 2012-07-22 10:14:16 +02:00
Anton Khirnov 721113bed2 matroskadec: return more correct error code on read error. 2012-07-22 09:14:05 +02:00
Anton Khirnov a8a2271fe0 buffersrc: check ff_get_audio_buffer() for errors. 2012-07-22 09:14:05 +02:00
Anton Khirnov 8f3a3ce730 lavfi: check all ff_get_video_buffer() calls for errors. 2012-07-22 09:14:05 +02:00
Anton Khirnov 1dc4205018 lavfi: check all avfilter_ref_buffer() calls for errors. 2012-07-22 09:14:05 +02:00
Anton Khirnov 80e4ed279b vf_select: avoid an unnecessary avfilter_ref_buffer(). 2012-07-22 09:14:05 +02:00
Anton Khirnov 785fa50f0b buffersrc: avoid creating unnecessary buffer reference 2012-07-22 09:14:05 +02:00
Anton Khirnov 02ac7311c8 lavfi: use avfilter_unref_bufferp() where appropriate. 2012-07-22 09:14:05 +02:00
Anton Khirnov 043800a968 vf_fps: add more error checks. 2012-07-22 09:14:05 +02:00
Anton Khirnov d515e9c225 vf_fps: fix a memleak on malloc failure. 2012-07-22 09:14:05 +02:00
Anton Khirnov 3825b52688 lavfi: check all ff_start_frame/draw_slice/end_frame calls for errors 2012-07-22 09:14:05 +02:00
Anton Khirnov d4f89906e3 lavfi: add error handling to end_frame(). 2012-07-22 09:14:05 +02:00
Anton Khirnov e9b992d035 lavfi: add error handling to draw_slice(). 2012-07-22 09:14:05 +02:00
Anton Khirnov ebc8d97481 lavfi: add error handling to start_frame(). 2012-07-22 09:14:04 +02:00
Anton Khirnov 4c9080a7ef lavfi: unref AVFilterLink.out_buf in ff_end_frame().
This reduces code duplication and prevents stale pointers from remaining
on the link.
2012-07-20 21:12:49 +02:00
Anton Khirnov 07bad27810 lavfi: unref AVFilterLink.cur_buf in ff_end_frame().
This reduces code duplication and prevents stale pointers from remaining
on the link.
2012-07-20 21:10:42 +02:00
Anton Khirnov 533fd5b5b4 vsrc_testsrc: avoid an unnecessary avfilter_ref_buffer(). 2012-07-20 21:09:57 +02:00
Anton Khirnov 5b50ae94e6 vf_slicify: clear AVFilterLink.cur_buf in start_frame().
The buffer is passed on to the next filter, so we shouldn't keep any
pointers to it.
2012-07-20 21:09:48 +02:00
Anton Khirnov 0393af4f0b vf_settb: simplify start_frame().
Avoid pointless filter ref/unref. Just use the reference passed to
start_frame().
2012-07-20 21:08:50 +02:00
Anton Khirnov 9203fa0b32 vf_fieldorder: don't give up its own reference to the output buffer. 2012-07-20 21:08:26 +02:00
Anton Khirnov f493c644cd vf_pad: don't give up its own reference to the output buffer. 2012-07-20 21:08:13 +02:00
Anton Khirnov ad8b6326aa vf_overlay: don't access a buffer reference that's been given away. 2012-07-20 21:07:51 +02:00
Anton Khirnov 7155763b78 vf_drawtext: don't give up its own reference to the input buffer.
Directly forwarding the input buffer to the next filter means that
drawtext no longer owns any references to it and thus shouldn't refer to
it in any way.
2012-07-20 21:07:32 +02:00
Anton Khirnov d19499c796 vf_gradfun: don't store two pointers to one AVFilterBufferRef. 2012-07-20 21:07:11 +02:00
Anton Khirnov 0fe010a36f vf_delogo: don't store two pointers to one AVFilterBufferRef. 2012-07-20 21:06:49 +02:00
Anton Khirnov 51a8049be8 vf_aspect: clear AVFilterLink.cur_buf in start_frame().
The buffer is passed on to the next filter, so we shouldn't keep any
pointers to it.
2012-07-20 21:06:40 +02:00
Anton Khirnov 5eb9c495af FATE: add a test for flac cover art. 2012-07-20 10:17:25 +02:00
Anton Khirnov 5417efbbf3 avconv: print an error message when demuxing fails.
Also exit in such a case if -xerror is used.

Fixes bug 329.
2012-07-17 09:50:26 +02:00
Anton KhirnovandDiego Biurrun 82f82ccfc8 motion-test: do not use getopt()
It is not available on all systems and using argc/argv directly actually
makes the code simpler.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-07-09 17:20:52 +02:00
Anton Khirnov 8a645bfc31 avconv: propagate fatal errors from lavfi. 2012-07-09 08:32:49 +02:00
Anton Khirnov cd99146253 lavfi: add error handling to filter_samples(). 2012-07-09 08:25:19 +02:00
Anton Khirnov 8d18bc550e fate-run: make avconv() properly deal with multiple inputs. 2012-07-09 08:22:38 +02:00
Anton Khirnov 083d0f6be8 asplit: don't leak the input buffer. 2012-07-09 08:22:11 +02:00
Anton Khirnov 1ffb645662 af_resample: fix request_frame() behavior.
Make sure that an output frame has really been produced before returning
0.
2012-07-09 08:21:37 +02:00
Anton Khirnov 6f834293d3 af_asyncts: fix request_frame() behavior.
Make sure that an output frame has really been produced before returning
0.
2012-07-09 08:21:15 +02:00
Anton Khirnov 5b7a88f0ba matroskadec: honor error_recognition when encountering unknown elements. 2012-07-09 07:43:11 +02:00
Anton Khirnov 25b51b2c44 id3v2: add a mimetype for bmp pictures. 2012-07-07 20:34:41 +02:00
Anton Khirnov b7d3a9a015 flacdec: be less strict when parsing attached pictures.
Only return an error if memory allocation fails or error recognition is
set to explode. Otherwise just print an error message and continue
reading the file.
2012-07-07 20:34:20 +02:00
Anton Khirnov dba5b06ead flacdec: don't create an attached picture stream until we have all information.
This way we don't end with an invalid stream if parsing the picture
fails.
2012-07-07 20:33:44 +02:00
Anton Khirnov b7558ac293 af_amix: avoid spurious EAGAIN.
Input on/off state can change in request_samples(), which can result in
a state where only the first input is active. get_available_samples()
will then return 0, and request_frame() will fail with EAGAIN even
though there is data on the single active input.

Take this into account and check the number of active inputs again after
calling request_samples().
2012-07-06 13:51:58 +02:00
Anton Khirnov 54bf88e65f af_amix: return AVERROR(EAGAIN) when request_frame didn't produce output.
0 should only be returned when there was at least one output frame.
2012-07-06 13:51:58 +02:00
Anton Khirnov 428b369804 af_amix: only consider negative return codes as errors. 2012-07-06 13:51:58 +02:00
Anton Khirnov 53ddd43f0c avconv: use only meaningful timestamps in start time check. 2012-07-06 12:59:11 +02:00
Anton Khirnov b98c8f4f2b avconv: fix the check for -ss as an output option.
start time is already substracted from the frame timestamp, so it needs
to be checked against 0, not start time.
2012-07-06 12:54:52 +02:00
Anton Khirnov 2696789c52 avplay: update input filter pointer when the filtergraph is reset.
Fixes an invalid read on size change.
2012-07-05 13:15:36 +02:00
Anton Khirnov 1c840fa227 FATE: add a test for WMA cover art. 2012-07-04 05:59:14 +02:00
Anton Khirnov 8059d3b7d4 FATE: add a test for apetag cover art 2012-07-04 05:59:05 +02:00
Anton Khirnov bf2a7f9161 FATE: add a test for itunes cover art. 2012-07-04 05:58:47 +02:00
Anton Khirnov 5e745cefc0 asfdec: read attached pictures. 2012-07-02 16:16:45 +02:00
Anton Khirnov 728d2afa17 apetag: reindent 2012-07-02 16:16:38 +02:00
Anton Khirnov 02a951b919 apetag: export attached covers as video streams. 2012-07-02 16:16:11 +02:00
Anton Khirnov b72767df8e apetag: fix the amount of data read from binary tags.
Substract the filename size from the data size.
2012-07-02 16:15:45 +02:00
Anton Khirnov f2e175c756 apetag: make sure avio_get_str() doesn't read more than it should. 2012-07-02 16:15:34 +02:00