Commit Graph
100 Commits
Author SHA1 Message Date
Anton Khirnov 059a037fbd AVOptions: split get_number().
Split actual writing to read_number() in the same way as write_number().
Allows set_string_number() to write to a caller-provided destination.
2011-10-12 16:51:16 +02:00
Anton Khirnov 41d9d51a72 AVOptions: add av_opt_get*, deprecate av_get*.
New functions can get values from child objects, properly report error
codes and have consistent naming and signatures.
2011-10-12 16:51:16 +02:00
Anton Khirnov dac66da63d AVOptions: add av_opt_set*().
Deprecate av_set_*

New functions support setting values on children, return error codes
instead of options and have consistent naming and signatures.
2011-10-12 16:51:16 +02:00
Anton Khirnov 641c7afe3c AVOptions: add new API for enumerating children.
This will allow the caller to enumerate child contexts in a generic way
and since the API is recursive, it also allows for deeper nesting (e.g.
AVFormatContext->AVIOContext->URLContext)

This will also allow the new setting/reading API to transparently apply
to children contexts.
2011-10-12 16:51:16 +02:00
Anton Khirnov 46c3c53bae libx264: support yuv422/444 output. 2011-10-12 08:27:36 +02:00
Anton Khirnov 04de1569cd sws: support yuv444p9/10 output. 2011-10-12 08:27:30 +02:00
Anton Khirnov c780b543e7 id3v2: fix NULL pointer dereference
Bug found by Laurent Aimar fenrir at videolan org
2011-10-11 14:56:41 +02:00
Anton Khirnov 7bb1807c2d AVOptions: refactor set_number/write_number
write_number() does the actual writing of the supplied
number to destination. Move finding the option and choosing destination
address out of it.
2011-10-10 20:27:31 +02:00
Anton Khirnov cf10095f0b AVOptions: cosmetics, rename static av_set_number2() to write_number(). 2011-10-10 20:27:31 +02:00
Anton Khirnov b003d0be5b AVOptions: cosmetics, move and rename static av_set_number(). 2011-10-10 20:27:31 +02:00
Anton Khirnov c8d787d2ef AVOptions: split av_set_string3 into opt type-specific functions
Also stop attempting to honor the alloc parameter, as things break
horribly in that case.
It will be removed in upcoming successor to av_set_string3.
2011-10-10 20:27:30 +02: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 667d98182d doc/avconv: add forgotten output/per-stream info to -filter 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
Anton Khirnov d97efd7f87 libx264: support 9- and 10-bit output. 2011-10-06 09:16:06 +02:00
Anton Khirnov a4ea00d021 lavc/lavf: use unique private classes.
This is needed by the new AVOptions API.
2011-10-05 07:52:30 +02:00
Anton Khirnov 0ba1e1978d lavc: use designated initializers for av_codec_context_class 2011-10-05 07:52:05 +02:00
Anton Khirnov 60df6b0048 id3v2: remove pointless casts 2011-10-03 13:06:51 +02:00
Anton Khirnov d2961e4ebf id3v2: read TXXX frames with two calls to decode_str() instead of one.
Read the key in the first, value in the second.

This allows to avoid pointless strdups and simplify decode_str() by
dropping two of its parameters.
2011-10-03 13:06:51 +02:00
Anton Khirnov 1e18d32d01 id3v2: don't discard the whole tag when encountering empty frames.
While they're technically invalid, it's better to skip them and try to
read the rest of the tag.
2011-10-03 13:06:41 +02:00
Anton Khirnov 24ec9ac475 libvpx: fix build with older libvpx versions.
VPX_ERROR_RESILIENT_DEFAULT and VPX_ERROR_RESILIENT_PARTITIONS weren't
defined before 4cb0ebe5b27d35ccc2a78c1d16f2622ddef21f74 (CommitDate: Tue
Jun 28 11:10:17 2011)
2011-10-03 13:06:24 +02:00
Anton Khirnov b036a7180c lavc: add video/audio/encoding flags to global_quality option 2011-10-01 07:16:56 +02: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 c7a63a521b matroskaenc: write attachments. 2011-09-27 15:26:36 +02:00
Anton Khirnov 98cfe22b5c matroskadec: export mimetype of attachments as metadata. 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 d159060a87 doc/avconv: expand documentation for some options. 2011-09-27 15:26:35 +02:00
Anton Khirnov 5aa3fcec35 doc/avconv: document -timelimit. 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 1c5e9551bc cmdutils: replace fprintf() by av_log()
This way, all messages can be easily disabled with -loglevel.

Behavior change -- configuration is printed with AV_LOG_VERBOSE, so it's
not shown by default.
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 775af761a0 eval: test isnan(sqrt(-1)) instead of just sqrt(-1)
sqrt(-1) returns "some NaN", it's not specified which exactly.
2011-09-22 08:13:55 +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
Anton Khirnov 609a2fa1fa Remove some forgotten AVCodecContext.palctrl usage. 2011-09-21 13:51:53 +02:00
Anton Khirnov 9ecfbb3e57 lavc/utils: move avcodec_init() higher in the file.
Fixes build on next major bump.
2011-09-21 13:51:53 +02:00
Anton Khirnov e5b29c1f6b lavc: replace some deprecated FF_*_TYPE with AV_PICTURE_TYPE_* 2011-09-21 13:51:53 +02:00
Anton Khirnov feedc0754b ac3dec: actually use drc_scale private option 2011-09-21 13:51:53 +02:00
Anton Khirnov 63e4c8a653 lavc: undeprecate AVPALETTE_SIZE and AVPALETTE_COUNT macros
They are still being used and shouldn't be removed.
2011-09-21 13:51:53 +02:00
Anton Khirnov 4d77d57d20 alsa: add missing header
Fixes compile with next lavc major.
2011-09-21 13:51:53 +02:00
Anton Khirnov c92a2a4eb8 movenc: fix NULL reference in mov_write_tkhd_tag
st may be NULL when there are more mov streams than AVStreams, e.g. when
chapters are present.
2011-09-19 16:44:42 +02:00
Anton Khirnov 7f9b0ef9a8 doc/APIChanges: fill in missing hashes and dates. 2011-09-18 12:01:23 +02:00
Anton Khirnov 7574cacbd5 movenc: create an alternate group for each media type
Partially fixes bug 44.
2011-09-17 08:42:30 +02:00
Anton Khirnov e417d80d28 lavd: add libcdio-paranoia input device for audio CD grabbing 2011-09-17 06:45:26 +02:00
Anton Khirnov 85d982f1e2 rawdec: refactor private option for raw video demuxers
pixel_format/video_size only apply to 'rawvideo' (==uncompressed) demuxer
and make no sense for the other raw (== containerless) demuxers. Keep
only the framerate option for those.

Also use unique classes for all raw video demuxers
2011-09-17 06:43:09 +02:00
Anton Khirnov 34d2bf30a0 pcmdec: use unique classes for all pcm demuxers. 2011-09-17 06:42:32 +02:00
Anton Khirnov d906f49aa8 rawdec: g722 is always 1 channel/16kHz 2011-09-17 06:42:17 +02:00
Anton Khirnov 57650c70e2 doc/avconv: fix typo. 2011-09-12 15:53:26 +02:00
Anton Khirnov af1e247038 libxavs: add private options corresponding to deprecated global options
Code mostly copied from libx264 wrapper.
2011-09-12 08:45:55 +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 172efad7c7 doc/avconv: document option types (input/output/per-stream/...)
Also trim some redundant stream specifiers descriptions.
2011-09-11 17:30:05 +02:00
Anton Khirnov 99442bfe20 doc/avtools-common-opts: write a section about stream specifiers. 2011-09-11 17:30:05 +02:00
Anton Khirnov 3a37392efe doc/avconv: remove two pointless paragraphs.
They are misleading and carry no useful information.
2011-09-11 17:30:04 +02:00
Anton Khirnov eb05446367 doc/avconv: document that global options should be specified first. 2011-09-11 17:30:04 +02:00
Anton Khirnov d3d6a2582e doc/avconv: remove entries for nonexistent options 2011-09-11 17:30:04 +02:00
Anton Khirnov 1533c10286 doc/avconv: remove documentation for removed 'timestamp' option 2011-09-11 17:30:04 +02:00
Anton Khirnov b3dd2010af doc: cosmetics, rename fftools-common-opts to avtools-.... 2011-09-11 17:30:04 +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 4dbcdfa86d AVOptions: remove AVOption.offset <= 0 checks
They will only ever be <=0 if the option is broken, in which case this
check is hiding a bug.
2011-09-07 11:20:29 +02:00
Anton Khirnov 79eff91325 AVOptions: deprecate av_opt_set_defaults2
It's a hack which was created to allow for multiple options with
different defaults to refer to same field (e.g. 'b' vs 'ab'). There is
no need for it anymore.
2011-09-07 11:19:43 +02:00
Anton Khirnov a7e2b2ccc9 AVOptions: move doxy for av_opt_set_defaults() from opt.c to opt.h
Also change it to be more readable.
2011-09-07 11:16:52 +02:00
Anton Khirnov 0962f23b35 libx264: fix setting some more parameters
Specifically, trellis, nr, me_range, me_method, subq, b_strategy,
keyint_min, chroma_me and coder.
Change their defaults to -1 and apply them after
x264_param_default_preset() if the user explicitly set them.
2011-09-07 10:36:15 +02:00
Anton Khirnov 9c684feadc libx264: add 'direct-pred' private option
Deprecate AVCodecContext.directpred
2011-09-07 07:27:55 +02:00
Anton Khirnov 0635a8aa21 libx264: add 'partitions' private option
Deprecate AVCodecContext.partitions.
2011-09-07 07:27:18 +02:00
Anton Khirnov 7042337673 libx264: add 'cplxblur' private option
Deprecate AVCodecContext.complexityblur
2011-09-06 21:03:41 +02:00
Anton Khirnov 71b5f4427b libx264: add 'deblock' private option
Deprecate AVCodecContext.deblockalpha/deblockbeta
2011-09-06 21:02:45 +02:00
Anton Khirnov f83c45183e libx264: add 'b-bias' private option
Deprecate AVCodecContext.bframebias.
2011-09-06 20:14:35 +02:00
Anton Khirnov bb73cda2f6 libx264: fix setting some options.
Specifically: gop_size, max_b_frames, scenechange_threshold, qmin, qmax,
max_qdiff, qblur, qcompress and refs.

Change their default values to -1 and only use them if the user
explicitly set them. Otherwise x264 defaults are used.

Move setting those options after x264_param_default_preset(), so they
don't get overwritten by it.
2011-09-06 20:13:28 +02:00
Anton Khirnov d8dee0e7bd libx264: remove useless assignment
priv_data is memset to 0.
2011-09-06 20:13:11 +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 bc5acfa7af fate: use +frame+slice named constants instead of '3' 2011-09-05 12:11:08 +02:00
Anton Khirnov dc26318c2d avconv: move mux_preload and mux_max_delay to options context 2011-09-05 11:18:15 +02:00