Anton Khirnov
1432c1c429
lavf: add missing '*' in a doxy.
2012-05-07 14:22:42 +02:00
Anton Khirnov
0bbd874743
lavfi: support audio in avfilter_copy_frame_props().
2012-05-07 07:10:48 +02:00
Anton Khirnov
828bd088f3
lavc: add sample rate and channel layout to AVFrame.
...
Rationale is the same as for video width/height etc.
2012-05-07 07:08:03 +02:00
Anton Khirnov
d4ac703c7f
lavfi/formats: use sizeof(var) instead of sizeof(type).
2012-05-06 16:26:41 +02:00
Anton Khirnov
25b3babe11
lavfi: always enable the scale filter and depend on sws.
...
The scale filter is used for internal colorspace conversions, so it must
always be present.
2012-05-06 16:22:29 +02:00
Anton Khirnov
fd18ee0ff6
vf_split: support user-specifiable number of outputs.
2012-05-06 16:21:00 +02:00
Anton Khirnov
dce415e7f1
avconv: remove stray useless comment.
2012-05-06 16:20:26 +02:00
Anton Khirnov
8c4022aceb
avconv: fix a segfault on -c copy with -filter_complex.
2012-04-24 06:30:02 +02:00
Anton Khirnov
2994913d70
avconv: fix a segfault when default encoder for a format doesn't exist.
...
Fail earlier and with a more descriptive error message.
2012-04-21 06:48:28 +02:00
Anton Khirnov
aff01de641
graphparser: set next to NULL on an entry extracted from inputs list
...
Prevents it from referring to the rest of the list.
2012-04-16 09:28:34 +02:00
Anton Khirnov
7ce118bae5
doc/filters: update documentation.
2012-04-15 20:37:47 +02:00
Anton Khirnov
9e8aae443b
avconv: flush decoders immediately after an EOF.
...
Prevents extensive buffering when overlaying a single picture.
2012-04-15 20:37:47 +02:00
Anton Khirnov
89605e4aa0
avconv: send EOF to vsrc_buffer.
2012-04-15 20:37:47 +02:00
Anton Khirnov
3e901cbc75
avconv: reindent.
2012-04-15 20:37:42 +02:00
Anton Khirnov
3b266da3d3
avconv: add support for complex filtergraphs.
2012-04-15 20:32:09 +02:00
Anton Khirnov
560f7774a4
avconv: make filtergraphs global.
...
This is the first step towards supporting complex filtergraphs with more
than one input and/or output.
2012-04-15 20:27:32 +02:00
Anton Khirnov
836ce90566
avconv: move filtered_frame from InputStream to OutputStream.
...
It more properly belongs to output, not input.
2012-04-15 20:24:07 +02:00
Anton Khirnov
6c9eac1998
avconv: don't set output width/height directly from input value.
...
Always take it from lavfi. This way we don't need a clearly defined
corresponding input stream.
2012-04-15 20:23:09 +02:00
Anton Khirnov
e77c86629f
avconv: move resample_{width,height,pix_fmt} to InputStream.
...
This is a more proper place for them, since they store parameters of the
input, not output, stream.
2012-04-15 20:23:09 +02:00
Anton Khirnov
9dced85426
avconv: remove a useless variable from OutputStream.
2012-04-15 20:22:36 +02:00
Anton Khirnov
b7327887ea
avconv: get output pixel format from lavfi.
...
This way we don't require a clearly defined corresponding input stream.
The result for the xwd test changes because rgb24 is now chosen instead
of bgra.
2012-04-15 20:22:36 +02:00
Anton Khirnov
7af99a01c4
graphparser: fix the order in which unlabeled input links are returned.
2012-04-15 20:20:03 +02:00
Anton Khirnov
2e21526790
avconv: change {input,output}_{streams,files} into arrays of pointers.
...
Right now, they are arrays of structs, reallocated when new
streams/files are added. This makes storing pointers to those structs
harder than necessary.
2012-04-15 20:20:03 +02:00
Anton Khirnov
ea9367e921
avconv: don't pass input/output streams to some functions.
...
They are globals, no point in pretending they are not.
2012-04-15 20:20:03 +02:00
Anton Khirnov
7bf9e3391f
vsrc_buffer: fix check from 7ae7c41.
...
The user submitted variable in this function is frame, not buf.
2012-04-14 18:58:20 +02:00
Anton Khirnov
12e7e1d03e
graphparser: allow specifying sws flags in the graph description.
2012-04-14 09:25:46 +02:00
Anton Khirnov
4e781c25b7
graphparser: fix the order of connecting unlabeled links.
...
Right now, e.g. scale,[in]overlay would connect scale to the first
overlay input and [in] to the second, which goes against the
documentation and is unintuitive.
The bug happens because of the ordering mess in curr_inputs variable:
1) the unlabeled links from the previous filter are added to it in
correct order
2) input labels are parsed and inserted to the beginning one by one
(i.e. in reverse order)
3) curr_inputs is matched against filter inputs in reverse order
Fix the problem by always using proper ordering without trying to be
clever.
2012-04-14 09:25:46 +02:00
Anton Khirnov
d7bcc71dad
graphparser: add avfilter_graph_parse2().
...
Unlike avfilter_graph_parse(), it returns unlinked inputs and outputs
to the caller, which allows parsing of graphs where inputs/outputs are
not known in advance.
2012-04-14 09:25:46 +02:00
Anton Khirnov
7ae7c41413
vsrc_buffer: allow using a NULL buffer to signal EOF.
2012-04-14 09:25:46 +02:00
Anton Khirnov
e36b25d1df
vf_overlay: implement poll_frame()
...
Signal that it can output a frame when there are frames on the main
input and EOF on the overlay input, but a frame is buffered -- e.g.
single picture overlay.
2012-04-09 21:30:21 +02:00
Anton Khirnov
90f65dc6cf
vf_scale: support named constants for sws flags.
2012-04-09 21:29:05 +02:00
Anton Khirnov
7c59b5c2a5
lavc doxy: add all installed headers to doxy groups.
2012-04-09 21:25:17 +02:00
Anton Khirnov
ec57b7de74
lavc doxy: add avfft to the main lavc group.
2012-04-09 21:24:46 +02:00
Anton Khirnov
8a74029ea2
lavc doxy: add remaining avcodec.h functions to a misc doxygen group.
2012-04-09 21:18:47 +02:00
Anton Khirnov
6aadfbda09
lavc doxy: add AVPicture functions to a doxy group.
2012-04-09 21:18:28 +02:00
Anton Khirnov
56512ce104
lavc doxy: add resampling functions to a doxy group.
2012-04-09 21:18:19 +02:00
Anton Khirnov
40ca0e6a75
lavc doxy: replace \ with /
...
It's the more proper symbol to use and it prevents doxygen from thinking
it's a command.
2012-04-09 21:16:37 +02:00
Anton Khirnov
f038515f0a
lavc doxy: add encoding functions to a doxy group.
2012-04-09 21:16:24 +02:00
Anton Khirnov
c8ef8464c2
lavc doxy: add decoding functions to a doxy group.
2012-04-09 21:14:05 +02:00
Anton Khirnov
199ada4944
lavc doxy: fix formatting of AV_PKT_DATA_{PARAM_CHANGE,H263_MB_INFO}
2012-04-09 21:13:49 +02:00
Anton Khirnov
30f3f62563
lavc doxy: add AVPacket-related stuff to a separate doxy group.
...
Also move AV_PKT_DATA_PARAM_CHANGE/AV_PKT_DATA_H263_MB_INFO to the
proper place.
2012-04-09 21:13:17 +02:00
Anton Khirnov
294b3a5074
lavc doxy: add core functions/definitions to a doxy group.
2012-04-09 21:12:53 +02:00
Anton Khirnov
b6c4518a87
avconv: remove OutputStream.picref.
...
It's only used inside transcode_video() and there's no point in
preserving it between subsequent calls. So use a local variable instead.
2012-04-09 05:13:00 +02:00
Anton Khirnov
695ec04e6a
avconv: only set SAR once on the decoded frame.
...
No point in repeating the assignment for each output stream.
2012-04-09 05:10:38 +02:00
Anton Khirnov
d4936548f4
avconv: remove an unused function parameter.
2012-04-06 20:21:07 +02:00
Anton Khirnov
4648fe6324
avconv: remove now pointless variables.
2012-04-06 20:21:07 +02:00
Anton Khirnov
e06d2dfcde
avconv: drop support for building without libavfilter.
...
Since the mandatory memcpy in vsrc_buffer has been eliminated, there
shouldn't be any significant reason to build without lavfi anymore.
This will make upcoming support for complex filtergraphs easier to do.
2012-04-06 20:21:07 +02:00
Anton Khirnov
a03f8ea0a8
vsrc_buffer: when no frame is available, return an error instead of segfaulting.
2012-04-05 09:30:09 +02:00
Anton Khirnov
cfec77aaf8
configure: add dl to frei0r extralibs.
2012-04-05 09:20:03 +02:00
Anton Khirnov
95587d29d7
vsrc_buffer: allow buffering arbitrary number of frames.
2012-04-01 09:04:19 +02:00
Anton Khirnov
416fd90ead
vf_scale: avoid a pointless memcpy in no-op conversion.
...
I.e. just pass the buffer along when src parameters == dst parameters.
2012-04-01 09:04:14 +02:00
Anton Khirnov
63736fe48c
avfiltergraph: try to reduce format conversions in filters.
...
Current code, with a filterchain such as
(input - yuv411) -> (scale - any) -> (sink - any)
will result in yuv420 being chosen for the second link, which is clearly
not right.
This commit attempts to improve in the following way:
repeat until convergence:
loop over all filters
find input link with exactly one format
force this format on all output links of the same type (if possible)
2012-04-01 09:04:09 +02:00
Anton Khirnov
996f9f0c32
avfiltergraph: add an AVClass to AVFilterGraph on next major bump.
...
It will be used for logging, possibly also AVOptions.
2012-04-01 09:03:35 +02:00
Anton Khirnov
ddb4431208
id3v2: fix skipping extended header in id3v2.4
...
In v2.4, the length includes the length field itself.
2012-04-01 09:02:24 +02:00
Anton Khirnov
a839dbb94e
dvenc: print allowed profiles if the video doesn't conform to any of them.
2012-03-28 09:29:04 +02:00
Anton Khirnov
3c6607eb6f
avcodec_encode_{audio,video}: only reallocate output packet when it has non-zero size.
...
Otherwise realloc would free it, which would result in double free
later.
2012-03-28 09:28:47 +02:00
Anton Khirnov
e2e165c00f
FATE: add a test for vp8 with changing frame size.
2012-03-28 09:28:29 +02:00
Anton Khirnov
967923abd1
lavf doxy: expand AVStream.codec doxy.
2012-03-26 10:59:43 +02:00
Anton Khirnov
e44ada129c
lavf doxy: improve AVStream.time_base doxy.
...
Remove confusing sentence that implied the user should set the timebase.
Elaborate on how the timebase is set for muxing.
2012-03-26 10:59:43 +02:00
Anton Khirnov
f58b8cc3e3
lavf doxy: add some basic documentation about reading from the demuxer.
2012-03-26 10:59:43 +02:00
Anton Khirnov
10fa4ff7bc
lavf doxy: document passing options to demuxers.
2012-03-26 10:59:43 +02:00
Anton Khirnov
dca9c81d82
lavf doxy: clarify that an AVPacket contains encoded data.
2012-03-26 10:59:42 +02:00
Anton Khirnov
9c47f2b294
APIchanges: mark the place where 0.7 was cut.
2012-03-26 10:08:58 +02:00
Anton Khirnov
75bdd55e77
APIchanges: mark the place where 0.8 was cut.
2012-03-26 10:08:57 +02:00
Anton Khirnov
5d20e7b7ea
APIchanges: fill in missing dates and hashes.
2012-03-26 10:08:56 +02:00
Anton Khirnov
677df4d2ef
pngenc: better upper bound for encoded frame size.
...
Fixes encoding very large pictures.
Thanks to Костя for providing the formula.
2012-03-22 19:50:35 +01:00
Anton Khirnov
a6733202cc
lavf: make av_interleave_packet_per_dts() private.
...
There is no reason for it to be public, it's only meant to be used
internally.
2012-03-20 20:12:16 +01:00
Anton Khirnov
3c90cc2ef2
lavf: deprecate av_read_packet().
...
The caller can achieve the same effect (i.e. getting raw unparsed/mangled
packets) with av_read_frame() and AVFMT_FLAG_NOPARSE |
AVFMT_FLAG_NOFILLIN
2012-03-20 20:12:16 +01:00
Anton Khirnov
0d0b81f941
Generate manpages for AV{Format,Codec}Context AVOptions.
2012-03-20 07:10:06 +01:00
Anton Khirnov
4fea8959d8
doc/avconv: remove entries for AVOptions.
...
Documentation for those will be generated automatically.
2012-03-20 07:09:54 +01:00
Anton Khirnov
5626697104
Move AVFormatContext/AVCodecContext option tables to separate files.
...
This will allow us to automatically generate manpages for them.
2012-03-20 07:09:18 +01:00
Anton Khirnov
40b41be3fa
lavf: use AVStream.discard to disable queueing attached pictures.
2012-03-20 06:53:44 +01:00
Anton Khirnov
01fcc42b90
lavf: requeue attached pictures after seeking.
...
This allows the caller to get them without special code even after
seeking before receiving any data.
2012-03-20 06:52:33 +01:00
Anton Khirnov
713f3062a7
id3v2: set the keyframe flag on attached pictures.
2012-03-20 06:52:07 +01:00
Anton Khirnov
8bc5d90a7e
lavf: remove some disabled code.
2012-03-17 22:37:55 +01:00
Anton Khirnov
f35f8eeb0d
lavf: only set average frame rate for video.
2012-03-17 22:36:56 +01:00
Anton Khirnov
9ade26ee91
lavf: remove a pointless check.
...
Timebase is already checked in avpriv_set_pts_info().
2012-03-17 22:36:48 +01:00
Anton Khirnov
cd9a3c3512
lavf: don't select an attached picture as default stream for seeking.
2012-03-15 14:01:05 +01:00
Anton Khirnov
251422982b
avconv: remove pointless checks.
...
OutputStream.picref is guaranteed to be non-NULL if
get_filtered_video_frame() succeeds.
2012-03-15 09:01:18 +01:00
Anton Khirnov
ce326c1130
avconv: check for get_filtered_frame() failure.
2012-03-15 09:00:55 +01:00
Anton Khirnov
2636e691ce
avconv: remove a pointless check.
...
output_video_filter is always guaranteed to be set and is in fact
dereferenced right above the check.
2012-03-15 09:00:49 +01:00
Anton Khirnov
972880f597
doc/general: update supported devices table.
...
Add libcdio and fbdev, remove v4l1.
2012-03-13 22:01:51 +01:00
Anton Khirnov
29e4046e83
doc/general: add missing @tab to codecs table.
2012-03-13 22:01:51 +01:00
Anton Khirnov
64334ddbbc
avconv: reindent
...
CC: libav-stable@libav.org
2012-03-13 12:21:44 +01:00
Anton Khirnov
6e8be949f1
avconv: link '-passlogfile' option to libx264 'stats' AVOption.
...
Fixes bug 204.
CC: libav-stable@libav.org
2012-03-13 12:21:14 +01:00
Anton Khirnov
d533e395e1
libx264: add 'stats' private option for setting 2pass stats filename.
...
x264 always opens the file itself with fopen, so we cannot use the
standard lavc stats mechanism.
CC: libav-stable@libav.org
2012-03-13 12:20:50 +01:00
Anton Khirnov
9d5c131ece
libx264: fix help text for slice-max-size option.
...
CC: libav-stable@libav.org
2012-03-13 12:20:34 +01:00
Anton Khirnov
018f39ef49
FATE: add CPUFLAGS variable, mapping to -cpuflags avconv option.
2012-03-06 15:03:36 +01:00
Anton Khirnov
4138cd2907
avconv: add -cpuflags option for setting supported cpuflags.
...
Useful for testing.
2012-03-06 15:03:22 +01:00
Anton Khirnov
4d851f8dcf
cpu: add av_set_cpu_flags_mask().
2012-03-06 15:02:28 +01:00
Anton Khirnov
39da3b223f
avconv: fix counting encoded video size.
...
avcodec_encode_video2() return value is 0 on success, encoded frame size
is stored in the packet.
2012-03-06 10:06:21 +01:00
Anton Khirnov
27c7ca9c12
lavf: deobfuscate read_frame_internal().
...
Split off packet parsing into a separate function. Parse full packets at
once and store them in a queue, eliminating the need for tracking
parsing state in AVStream.
The horrible unreadable loop in read_frame_internal() now isn't weirdly
ordered and doesn't contain evil gotos, so it should be much easier to
understand.
compute_pkt_fields() now invents slightly different timestamps for two
raw vc1 tests, due to has_b_frames being set a bit later. They shouldn't
be more wrong (or right) than previous ones.
2012-03-05 18:47:05 +01:00
Anton Khirnov
dcee811505
lavf: make read_from_packet_buffer() more flexible.
...
Make packet buffer a parameter, don't hardcode it to be
AVFormatContext.packet_buffer.
Also move the function higher in the file, since it will be called from
read_frame_internal().
2012-03-05 18:44:45 +01:00
Anton Khirnov
52b0943f10
lavf: factorize freeing a packet buffer.
2012-03-05 18:44:30 +01:00
Anton Khirnov
3faa141d15
cmdutils: use new avcodec_is_decoder/encoder() functions.
...
Fixes listing encoders.
2012-03-04 21:09:35 +01:00
Anton Khirnov
44fe77b350
lavc: make codec_is_decoder/encoder() public.
2012-03-04 21:08:52 +01:00
Anton Khirnov
02beb9826b
lavc: deprecate AVCodecContext.sub_id.
...
In most places where it's used, it's as a pointless write-only field.
Only rv10 decoder actually reads from it, but it stores some internal
version info in it. There is no reason for it to be in a public field.
2012-03-04 21:02:45 +01:00
Anton Khirnov
87392b1fd5
libcdio: add a forgotten AVClass to the private context.
2012-03-04 21:01:41 +01:00
Anton Khirnov
7fb6c9225c
lavc: free the output packet when encoding failed or produced no output.
2012-03-03 06:31:41 +01:00
Anton Khirnov
e42e9b0e4d
lavc: preserve avpkt->destruct in ff_alloc_packet().
...
Also, don't bother with saving/restoring data, av_init_packet doesn't
touch it.
2012-03-03 06:31:41 +01:00