Commit Graph

179 Commits

Author SHA1 Message Date
Lukasz Marek ba52fb11dc lavu/opt: add av_opt_set_dict2() function
Existing av_opt_set_dict doesn't accept flags.
It doesn't allow to pass options to nested structs.
New function alllows that.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-02 18:04:05 +02:00
Lukasz Marek 3aac5fcfa9 lavu/opt: validate range before dereference
This change make error handling simplier.
av_opt_freep_ranges may be called when some ranges are NULL,
for example after memory allocation fail.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 22:09:57 +02:00
Lukasz Marek 8c27292373 lavu/opt: dont crash on freeing NULL AVOptionRanges
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 19:05:19 +02:00
Lukasz Marek eaed4da96a lavu/opt: extend AVOptionRange by extra values
AVOptionRange is not flexible enough to store AV_OPT_TYPE_IMAGE_SIZE
ranges. Current implementation can only store pixel count.
This patch aims to keep backward compatibility and extend
AVOptionRange with possibility to store width/height ranges.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-04-03 13:28:13 +02:00
Michael Niedermayer d9a3501c33 avutil/opt: dont crash on av_opt_set_dict() with NULL
This allows calling the function without the need to check if the
dictionary contains any entries

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 15:00:03 +02:00
Michael Niedermayer 52d928daf9 avutil/opt: allow max=min=0 for pixel formats
This is neccessary for maintaining ABI compatibility with FFmpeg 2.1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 00:31:38 +01:00
Michael Niedermayer 6a24d77929 Merge commit 'c3ecd968f0e78da6e77f0c06c2f785b266d83cf1'
* commit 'c3ecd968f0e78da6e77f0c06c2f785b266d83cf1':
  AVOptions: add flags for read/read-only options

Conflicts:
	libavutil/opt.c
	libavutil/opt.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 02:01:13 +01:00
Anton Khirnov c3ecd968f0 AVOptions: add flags for read/read-only options 2014-02-19 21:52:17 +01:00
Michael Niedermayer 8f853159f6 avutil/opt: preserve fractions in set_string_number()
This avoids going over a double precission float, which may loose precission

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-18 21:49:56 +01:00
João Bernardo 290326711b avutil/opt: Better print representation of number limits
Signed-off-by: João Bernardo Oliveira <jbvsmo@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 21:14:02 +01:00
Stefano Sabatini 334e2e2363 lavu,lavc,lswr: do not hardcode AV_SAMPLE_FMT_NB value when setting sample format max value
The constant may change in libavutil but the library may be compiled
against an older version, thus rejecting a value which is otherwise
supported by the new libavutil.

INT_MAX is used here to denote the max allowed value for a sample format.

The opt-test code is changed to provide a valid reference example.
2013-12-26 11:35:27 +01:00
Stefano Sabatini 3b8c7da7a3 lavu,lavfi,lavd: do not hardcode AV_PIX_FMT_NB value when setting pixel format max value
The constant may change in libavutil but the library may be compiled
against an older version, thus rejecting a value which is otherwise
supported by the new libavutil.

INT_MAX is used here to denote the max allowed value for a pixel format.

The opt-test code is changed to provide a valid reference example.
2013-12-26 11:35:27 +01:00
Stefano Sabatini 55f046be11 lavu/opt: apply range checks also when setting format string value
Previously when setting a pixel/sample format as a string range checks
were not performed. This is consistent with the
av_opt_set_pixel/sample_fmt() interface.
2013-12-26 11:35:27 +01:00
Stefano Sabatini 1575a96b3a lavu/opt: factorize setting of format values from string
Simplify incoming patch.
2013-12-26 11:35:27 +01:00
Stefano Sabatini e2b54464c6 lavu/opt: fix range check logic in set_format()
In particular, allow to reject undefined values. Previously the code
was only accepting values in the range -1 .. NB_FORMATS-1.
2013-12-26 11:35:26 +01:00
Michael Niedermayer 792845e436 Merge commit '3bc2e89c76e88ae6f1fd5287e0b11abcfc3c601c'
* commit '3bc2e89c76e88ae6f1fd5287e0b11abcfc3c601c':
  Bump libavutil major version to account for the LLS API/ABI changes.

Conflicts:
	libavutil/version.h

Bump done to stay compatible with libav, its not neccessary otherwise for ffmpeg
as we have the new ABI/API under LLS2 and the old (unused) under LLS

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 21:52:51 +01:00
Michael Niedermayer e8ac905dae avutil/opt: Implement av_opt_set_defaults* in O(N) instead of O(N²) time
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 14:09:36 +01:00
Michael Niedermayer 0aedf90e62 avutil/opt: factor set_string_color() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 14:08:20 +01:00
Michael Niedermayer 758d4e4067 avutil/opt: factor set_string_video_rate() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 14:08:19 +01:00
Michael Niedermayer 9648c4fe9c avutil/opt: factor set_string_image_size() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 14:07:52 +01:00
Michael Niedermayer 15b1b08874 avutil/opt: fix flags check on non x86
This should fix several fate failures

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 21:07:45 +01:00
Michael Niedermayer 162126bb17 avutil/opt: check flags validity in write_number()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 18:03:29 +01:00
Michael Niedermayer f0e43e60cd Merge commit '0b357a8095e72b092cc5c2aacc2f806db75ecae3'
* commit '0b357a8095e72b092cc5c2aacc2f806db75ecae3':
  AVOptions: do not range check flag options.

Conflicts:
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 11:26:48 +01:00
Anton Khirnov 0b357a8095 AVOptions: do not range check flag options.
It does not make sense in the vast majority of use cases, no currently
defined AV_OPT_TYPE_FLAGS options in Libav set the range to anything
nontrivial, and many of those get it wrong (the "correct" range is
INT_MIN to INT_MAX so that the builtin constant "all" works).
2013-10-27 21:40:33 +01:00
Michael Niedermayer 2d8ccf0adc avutil/opt: initialize ret
Fixes CID1108610
Fixes use of uninitialized variable

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-20 18:38:48 +02:00
Stefano Sabatini 8696e51baf lavu/opt: add AV_OPT_TYPE_CHANNEL_LAYOUT and handler functions
The new type is compatible with AV_OPT_TYPE_INT64, but allows to specify
channel layouts using the format accepted by av_get_channel_layout().
2013-10-17 18:09:29 +02:00
Stefano Sabatini 98e7c1eed5 lavu/opt-test: use automatic set and free handlers
In particular, do not set default string value by hand and use
av_opt_free() to free context.
2013-10-17 18:02:54 +02:00
Michael Niedermayer 5fc5170c55 avutil/opt: make const tables static const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-10 18:44:40 +02:00
Michael Niedermayer 18b1381c5f avutil/opt: fix av_log type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-10 18:44:40 +02:00
Michael Niedermayer 0b5d1b88e0 avutil/opt: fix types passed to the format string "%s"
Fixes gcc warnings
Fixes CID1061056
Fixes CID1061057

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-08 02:48:44 +02:00
Michael Niedermayer cca229e75a Merge commit 'c7e921a54ffe7feb9f695c82f0a0764ab8d0f62b'
* commit 'c7e921a54ffe7feb9f695c82f0a0764ab8d0f62b':
  avopt: Check whether the object actually has got an AVClass

Conflicts:
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-01 12:30:30 +02:00
Martin Storsjö c7e921a54f avopt: Check whether the object actually has got an AVClass
AVIOContext has got an av_class member that only gets set if
opening the context using avio_open2, but not if allocating a
custom IO context. A caller that wants to read AVOptions from
an AVIOContext (recursively using AV_OPT_SEARCH_CHILDREN) may
not know if the AVIOContext actually has got a class set or not.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-31 21:31:14 +03:00
Paul B Mahol fd84b6fd33 lavu/opt: show default values for AV_OPT_TYPE_PIXEL_FMT and AV_OPT_TYPE_SAMPLE_FMT too
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-07-25 20:41:39 +00:00
Paul B Mahol a64248d1ec lavu/opt: show default values
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-07-03 20:32:30 +00:00
Paul B Mahol f98dbc7311 lavu/opt: check if class is NULL too
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-05-21 20:50:49 +00:00
Paul B Mahol 3a751eab78 lavu/opt: add AV_OPT_TYPE_COLOR
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-05-17 11:32:53 +00:00
Michael Niedermayer e7389ed5d0 Merge commit 'bcc94328980e6c56546792ab08b0756abdce310b'
* commit 'bcc94328980e6c56546792ab08b0756abdce310b':
  opt: check the return values of av_get_token for ENOMEM.
  doc: Fix best_nb_channells typo
  matroska: pass the lace size to the matroska_parse_rm_audio

Conflicts:
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-04 13:00:59 +02:00
Anton Khirnov bcc9432898 opt: check the return values of av_get_token for ENOMEM. 2013-04-04 07:51:53 +02:00
Nicolas George 983d04dd40 lavu/opt: make sure av_opt_set_bin() handles NULL/0. 2013-04-01 10:38:38 +02:00
Clément Bœsch d00dcb8c9f opt: attempt to improve options dump output.
Add some indent and remove the '-' prefix for filters.
2013-03-31 18:22:23 +02:00
Michael Niedermayer fd37a7dc3c Merge commit 'cf53704c55378cc0dcfc16637cdac7d58f0b3107'
* commit 'cf53704c55378cc0dcfc16637cdac7d58f0b3107':
  AVOptions: make av_set_options_string() forward options to child objects
  win32: Use 64-bit fstat/lseek variants for MSVC as well
  win32: Make ff_win32_open more robust

Conflicts:
	libavformat/os_support.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-28 12:26:36 +01:00
Anton Khirnov cf53704c55 AVOptions: make av_set_options_string() forward options to child objects 2013-03-28 07:55:38 +01:00
Nicolas George 8d928a9d99 lavu/opt: add AV_OPT_TYPE_DURATION. 2013-03-20 21:04:28 +01:00
Michael Niedermayer eaa5882e71 avutil: fix compilation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 13:45:30 +01:00
Paul B Mahol 7aa9af51db lavu/opt: add AV_OPT_VIDEO_RATE option
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-20 12:29:54 +00:00
Michael Niedermayer 7fff5781b6 Merge commit 'e4a7b2177d14678ae240edcabaacfe2b14619b7b'
* commit 'e4a7b2177d14678ae240edcabaacfe2b14619b7b':
  vf_showinfo: remove its useless init function
  AVOptions: fix using named constants with child contexts.

Conflicts:
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-16 16:38:11 +01:00
Anton Khirnov 4d67ff8e8e AVOptions: fix using named constants with child contexts.
The named constant needs to be searched for in the same object on which
the option is set, i.e. target_obj.
2013-03-16 05:35:33 +01:00
Anton Khirnov 9676b9a2cd AVOption: remove an unused function parameter. 2013-03-16 05:35:20 +01:00
Stefano Sabatini b1a2684936 lavu/opt: fix weird align 2013-03-05 13:20:14 +01:00
Stefano Sabatini 7b9a3df5d7 lavu/opt-test: do not explicitly set default value in test_ctx
Let av_opt_set_defaults() set the value, which is simpler and more
idiomatic.
2013-03-05 13:20:14 +01:00