b800327f4c
avformat/avformat: Add FFInputFormat, hide internals of AVInputFormat
...
This commit does for AVInputFormat what commit
59c9dc82f4
did for AVOutputFormat:
It adds a new type FFInputFormat, moves all the internals
of AVInputFormat to it and adds a now reduced AVInputFormat
as first member.
This does not affect/improve extensibility of both public
or private fields for demuxers (it is still a mess due to lavd).
This is possible since 50f34172e0
(which removed the last usage of an internal field of AVInputFormat
in fftools).
(Hint: tools/probetest.c accesses the internals of FFInputFormat
as well, but given that it is a testing tool this is not considered
a problem.)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2024-03-07 08:53:31 -03:00
fc263f073e
avformat/nsvdec: add support for STARDIVA format
2023-01-12 10:44:16 +01:00
a1f1f56ef0
nsvdec: convert to new channel layout API
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2022-03-15 09:42:35 -03:00
40bdd8cc05
avformat: Avoid allocation for AVStreamInternal
...
Do this by allocating AVStream together with the data that is
currently in AVStreamInternal; or rather: Put AVStream at the
beginning of a new structure called FFStream (which encompasses
more than just the internal fields and is a proper context in its own
right, hence the name) and remove AVStreamInternal altogether.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2021-09-17 13:22:25 +02:00
06f31d01e6
avformat/nsvdec: Simplify cleanup after read_header failure
...
by setting the FF_FMT_INIT_CLEANUP flag.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2021-07-08 12:53:41 +02:00
b9c5fdf602
avformat: move AVStream.{parser,need_parsing} to AVStreamInternal
...
Those are private fields, no reason to have them exposed in a public
header.
Signed-off-by: James Almer <jamrial@gmail.com >
2021-05-07 09:27:21 -03:00
bc70684e74
avformat: Constify all muxer/demuxers
...
This is possible now that the next-API is gone.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2021-04-27 11:48:06 -03:00
cea7c19cda
lavf: move AVStream.*index_entries* to AVStreamInternal
...
Those are private fields, no reason to have them exposed in a public
header. Since there are some (semi-)public fields located after these,
even though this section is supposed to be private, keep some dummy
padding there until the next major bump to preserve ABI compatibility.
2020-10-28 14:59:28 +01:00
9a96677023
avformat/nsvdec: Use av_packet_move_ref() for packet ownership transfer
...
Also simply return 0 in case a packet has been successfully read.
Reviewed-by: Anton Khirnov <anton@khirnov.net >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
2020-03-26 20:06:15 +01:00
96c0469455
avformat/nsvdec: Fix memleaks on errors while reading the header
...
Fixes: memleaks
Fixes: 21084/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5655975492321280
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-03-19 02:19:25 +01:00
4d8875ec23
lavf: Constify the probe function argument.
...
Reviewed-by: Lauri Kasanen
Reviewed-by: Tomas Härdin
2019-03-21 11:42:17 +01:00
78d4b6bd43
avformat/nsvdec: Do not parse multiple NSVf
...
The specification states "NSV files may contain a single file header. "
Fixes: out of array access
Fixes: nsv-asan-002f473f726a0dcbd3bd53e422c4fc40b3cf3421
Found-by: Paul Ch <paulcher@icloud.com >
Tested-by: Paul Ch <paulcher@icloud.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-08-20 02:32:41 +02:00
c24bcb5536
avformat/nsvdec: Fix DoS due to lack of eof check in nsvs_file_offset loop.
...
Fixes: 20170829.nsv
Co-Author: 张洪亮(望初)" <wangchu.zhl@alibaba-inc.com >
Found-by: Xiaohei and Wangchu from Alibaba Security Team
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-09-01 01:48:31 +02:00
549045254c
Fix all -Wformat warnings raised by DJGPP
2017-03-29 14:49:29 +02:00
1436769c57
Merge commit 'ca1e5eea0c7b72a6e30aa6488cfeced3a4853521'
...
* commit 'ca1e5eea0c7b72a6e30aa6488cfeced3a4853521':
Remove some pointless TRACE level debug code
Merged-by: Clément Bœsch <u@pkh.me >
2017-03-24 13:23:52 +01:00
50a06c841f
Merge commit 'c3dad1bf3b5e04e01c291b1ac41e6bef0adf2206'
...
* commit 'c3dad1bf3b5e04e01c291b1ac41e6bef0adf2206':
nsv: Drop unnecessary TRACE level debug code
Merged-by: Clément Bœsch <u@pkh.me >
2017-03-24 13:19:10 +01:00
56d63208d8
Merge commit 'be3363f664d7314d55b42860bd4077154752d769'
...
* commit 'be3363f664d7314d55b42860bd4077154752d769':
nsv: Drop disabled cruft
Merged-by: Clément Bœsch <u@pkh.me >
2017-03-19 16:04:46 +01:00
ca1e5eea0c
Remove some pointless TRACE level debug code
...
This also kills some warnings with certain compiler options.
2016-10-27 12:54:14 +02:00
c3dad1bf3b
nsv: Drop unnecessary TRACE level debug code
...
The output is rather silly and the code uses non-standard __FUNCTION__.
2016-10-27 12:21:46 +02:00
be3363f664
nsv: Drop disabled cruft
2016-08-17 12:16:42 +02:00
8ef57a0d61
Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'
...
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb':
cosmetics: Fix spelling mistakes
Merged-by: Clément Bœsch <u@pkh.me >
2016-06-21 21:55:34 +02:00
41ed7ab45f
cosmetics: Fix spelling mistakes
...
Signed-off-by: Diego Biurrun <diego@biurrun.de >
2016-05-04 18:16:21 +02:00
6f69f7a8bf
Merge commit '9200514ad8717c63f82101dc394f4378854325bf'
...
* commit '9200514ad8717c63f82101dc394f4378854325bf':
lavf: replace AVStream.codec with AVStream.codecpar
This has been a HUGE effort from:
- Derek Buitenhuis <derek.buitenhuis@gmail.com >
- Hendrik Leppkes <h.leppkes@gmail.com >
- wm4 <nfxjfg@googlemail.com >
- Clément Bœsch <clement@stupeflix.com >
- James Almer <jamrial@gmail.com >
- Michael Niedermayer <michael@niedermayer.cc >
- Rostislav Pehlivanov <atomnuker@gmail.com >
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
2016-04-10 20:59:55 +01:00
9200514ad8
lavf: replace AVStream.codec with AVStream.codecpar
...
Currently, AVStream contains an embedded AVCodecContext instance, which
is used by demuxers to export stream parameters to the caller and by
muxers to receive stream parameters from the caller. It is also used
internally as the codec context that is passed to parsers.
In addition, it is also widely used by the callers as the decoding (when
demuxer) or encoding (when muxing) context, though this has been
officially discouraged since Libav 11.
There are multiple important problems with this approach:
- the fields in AVCodecContext are in general one of
* stream parameters
* codec options
* codec state
However, it's not clear which ones are which. It is consequently
unclear which fields are a demuxer allowed to set or a muxer allowed to
read. This leads to erratic behaviour depending on whether decoding or
encoding is being performed or not (and whether it uses the AVStream
embedded codec context).
- various synchronization issues arising from the fact that the same
context is used by several different APIs (muxers/demuxers,
parsers, bitstream filters and encoders/decoders) simultaneously, with
there being no clear rules for who can modify what and the different
processes being typically delayed with respect to each other.
- avformat_find_stream_info() making it necessary to support opening
and closing a single codec context multiple times, thus
complicating the semantics of freeing various allocated objects in the
codec context.
Those problems are resolved by replacing the AVStream embedded codec
context with a newly added AVCodecParameters instance, which stores only
the stream parameters exported by the demuxers or read by the muxers.
2016-02-23 17:01:58 +01:00
7f5af80ba4
Merge commit 'ce70f28a1732c74a9cd7fec2d56178750bd6e457'
...
* commit 'ce70f28a1732c74a9cd7fec2d56178750bd6e457':
avpacket: Replace av_free_packet with av_packet_unref
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com >
2015-10-27 14:28:56 +01:00
ce70f28a17
avpacket: Replace av_free_packet with av_packet_unref
...
`av_packet_unref` matches the AVFrame ref-counted API and can be used as
a drop in replacement.
Deprecate `av_free_packet`.
2015-10-26 18:00:55 +01:00
a924b83ccc
avformat/nsvdec: remove trace log from probe(), this is better done generically not per format
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-21 02:19:07 +02:00
40d552dae6
Merge commit '1a3eb042c704dea190c644def5b32c9cee8832b8'
...
* commit '1a3eb042c704dea190c644def5b32c9cee8832b8':
Replace av_dlog with normal av_log at trace level
Conflicts:
ffplay.c
libavdevice/fbdev_dec.c
libavfilter/avfilter.c
libavfilter/internal.h
libavfilter/setpts.c
libavfilter/src_movie.c
libavfilter/vf_crop.c
libavfilter/vf_drawtext.c
libavfilter/vf_fieldorder.c
libavformat/assdec.c
libavformat/avidec.c
libavformat/flvdec.c
libavformat/http.c
libavformat/ipmovie.c
libavformat/isom.c
libavformat/mov.c
libavformat/mpegenc.c
libavformat/mpegts.c
libavformat/mpegtsenc.c
libavformat/mux.c
libavformat/mxfdec.c
libavformat/nsvdec.c
libavformat/oggdec.c
libavformat/r3d.c
libavformat/rtspdec.c
libavformat/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-20 03:19:47 +02:00
1a3eb042c7
Replace av_dlog with normal av_log at trace level
...
This applies to every library where performance is not critical.
2015-04-19 12:41:59 +01:00
e0d8ff5ef1
avformat/nsvdec: Use av_malloc_array()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-11 13:18:41 +02:00
a0fe1a25fa
Merge commit 'daf8cf358a098a903d59adb6c0d0cc3262a8c93e'
...
* commit 'daf8cf358a098a903d59adb6c0d0cc3262a8c93e':
avformat: Don't anonymously typedef structs
Conflicts:
libavformat/adtsenc.c
libavformat/aiffenc.c
libavformat/avidec.c
libavformat/gif.c
libavformat/iff.c
libavformat/img2dec.c
libavformat/jvdec.c
libavformat/matroskadec.c
libavformat/udp.c
libavformat/wtvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2015-02-14 21:07:40 +01:00
daf8cf358a
avformat: Don't anonymously typedef structs
2015-02-14 10:13:47 -08:00
c099783316
avformat/nsvdec: remove case which is no longer possible
...
Check of channels !=0 is right above.
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2015-01-28 17:57:48 +00:00
b04cbbe255
Merge commit '7c51d79ca7badfb370c410b8f44c9142b938e2e6'
...
* commit '7c51d79ca7badfb370c410b8f44c9142b938e2e6':
nsvdec: validate channels and samplerate
See: d633e15d7d
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2015-01-27 19:53:50 +01:00
7c51d79ca7
nsvdec: validate channels and samplerate
...
Avoid a division by zero.
CC: libav-stable@libav.org
Bug-Id: CID 717749
2015-01-27 15:26:37 +00:00
8d7ce5cdb7
avformat/nsvdec: Check the return value of av_get_packet()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-01-18 20:53:25 +01:00
edf1cb7aee
avformat/nsvdec: Check av_get_packet() return value
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-01-17 16:27:18 +01:00
bf16872fec
avformat/nsvdec: fix out-commented asserts so the function names exist
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-08-26 15:21:25 +02:00
fb33bff990
Merge commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39'
...
* commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39':
cosmetics: Write NULL pointer equality checks more compactly
Conflicts:
cmdutils.c
ffmpeg_opt.c
ffplay.c
libavcodec/dvbsub.c
libavcodec/dvdsubdec.c
libavcodec/dvdsubenc.c
libavcodec/dxa.c
libavcodec/libxvid_rc.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/rv10.c
libavcodec/tiffenc.c
libavcodec/utils.c
libavcodec/vc1dec.c
libavcodec/zmbv.c
libavdevice/v4l2.c
libavformat/matroskadec.c
libavformat/movenc.c
libavformat/sdp.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-08-15 21:00:50 +02:00
f929ab0569
cosmetics: Write NULL pointer equality checks more compactly
...
Signed-off-by: Diego Biurrun <diego@biurrun.de >
2014-08-15 03:18:18 -07:00
d34ec64a22
replace calls to url_feof() with avio_feof()
...
Signed-off-by: James Almer <jamrial@gmail.com >
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-08-08 00:48:38 +02:00
57fa9e9742
Merge commit '27c1f82f561932c83191bcd3e70e0cb1712485ba'
...
* commit '27c1f82f561932c83191bcd3e70e0cb1712485ba':
nsvdec: remove commented out cruft
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-09 23:26:18 +02:00
27c1f82f56
nsvdec: remove commented out cruft
2014-07-09 13:38:54 +00:00
45a73d2b47
Merge commit 'c011ceef78eae66039efc66d9551a7146e08838a'
...
* commit 'c011ceef78eae66039efc66d9551a7146e08838a':
swscale: ppc: Remove commented-out define cruft
nsvdec: Remove commented-out debug cruft
cpu: Restructure code to avoid pointless ret variable indirection
Conflicts:
libavutil/cpu.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-06-03 11:53:05 +02:00
9f84ed8cc3
nsvdec: Remove commented-out debug cruft
2013-06-02 18:11:58 +02:00
f083b4c338
Merge commit 'e0f8be6413b6a8d334d6052e610af32935c310af'
...
* commit 'e0f8be6413b6a8d334d6052e610af32935c310af':
avformat: Add AVPROBE_SCORE_EXTENSION define and use where appropriate
Conflicts:
libavformat/ac3dec.c
libavformat/avformat.h
libavformat/avs.c
libavformat/m4vdec.c
libavformat/mov.c
libavformat/mp3dec.c
libavformat/mpeg.c
libavformat/mpegvideodec.c
libavformat/psxstr.c
libavformat/pva.c
libavformat/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-05-05 12:31:03 +02:00
e0f8be6413
avformat: Add AVPROBE_SCORE_EXTENSION define and use where appropriate
2013-05-04 21:43:06 +02:00
580a0600ef
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
Move misplaced file author information where it belongs
Conflicts:
libavcodec/adpcm.c
libavcodec/adpcmenc.c
libavcodec/gif.c
libavcodec/x86/dsputilenc_mmx.c
libavcodec/x86/fmtconvert_init.c
libavformat/au.c
libavformat/gif.c
libavformat/mov.c
libavformat/nsvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-04-11 15:56:18 +02:00
ac9362c5d9
Move misplaced file author information where it belongs
2013-04-11 02:42:11 +02:00
af804dbe9e
Merge commit '523c7bd23c781aa0f3a85044896f5e18e8b52534'
...
* commit '523c7bd23c781aa0f3a85044896f5e18e8b52534':
misc typo, style and wording fixes
Conflicts:
libavcodec/options_table.h
libavutil/pixfmt.h
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2012-12-19 14:28:58 +01:00