Andreas Rheinhardt
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
Andreas Rheinhardt
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
James Almer
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
Andreas Rheinhardt
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
Anton Khirnov
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
Andreas Rheinhardt
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
Michael Niedermayer
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
Carl Eugen Hoyos
4d8875ec23
lavf: Constify the probe function argument.
...
Reviewed-by: Lauri Kasanen
Reviewed-by: Tomas Härdin
2019-03-21 11:42:17 +01:00
Michael Niedermayer
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
Clément Bœsch
549045254c
Fix all -Wformat warnings raised by DJGPP
2017-03-29 14:49:29 +02:00
Clément Bœsch
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
Clément Bœsch
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
Clément Bœsch
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
Diego Biurrun
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
Diego Biurrun
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
Diego Biurrun
be3363f664
nsv: Drop disabled cruft
2016-08-17 12:16:42 +02:00
Clément Bœsch
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
Vittorio Giovara
41ed7ab45f
cosmetics: Fix spelling mistakes
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 18:16:21 +02:00
Derek Buitenhuis
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
Anton Khirnov
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
Hendrik Leppkes
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
Luca Barbato
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
Michael Niedermayer
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
Michael Niedermayer
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
Vittorio Giovara
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
Michael Niedermayer
e0d8ff5ef1
avformat/nsvdec: Use av_malloc_array()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-11 13:18:41 +02:00
Michael Niedermayer
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
Diego Biurrun
daf8cf358a
avformat: Don't anonymously typedef structs
2015-02-14 10:13:47 -08:00
Paul B Mahol
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
Michael Niedermayer
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
Vittorio Giovara
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Gabriel Dume
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
James Almer
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
Michael Niedermayer
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
Anton Khirnov
27c1f82f56
nsvdec: remove commented out cruft
2014-07-09 13:38:54 +00:00
Michael Niedermayer
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
Diego Biurrun
9f84ed8cc3
nsvdec: Remove commented-out debug cruft
2013-06-02 18:11:58 +02:00
Michael Niedermayer
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
Diego Biurrun
e0f8be6413
avformat: Add AVPROBE_SCORE_EXTENSION define and use where appropriate
2013-05-04 21:43:06 +02:00
Michael Niedermayer
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
Diego Biurrun
ac9362c5d9
Move misplaced file author information where it belongs
2013-04-11 02:42:11 +02:00
Michael Niedermayer
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
Diego Biurrun
523c7bd23c
misc typo, style and wording fixes
2012-12-18 13:36:51 +01:00
Michael Niedermayer
076300bf8b
Merge commit 'bfe5454cd238b16e7977085f880205229103eccb'
...
* commit 'bfe5454cd238b16e7977085f880205229103eccb':
lavf: move ff_codec_get_tag() and ff_codec_get_id() definitions to internal.h
lavf: move "MP3 " fourcc from riff to nut
fate: vpx: Add dependencies
fate: Fix wavpack-matroskamode test dependencies
x86: dsputilenc: port to cpuflags
Conflicts:
libavformat/internal.h
libavformat/nut.c
tests/fate/vpx.mak
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 13:45:57 +01:00
Justin Ruggles
bfe5454cd2
lavf: move ff_codec_get_tag() and ff_codec_get_id() definitions to internal.h
2012-11-28 11:18:49 -05:00