Reimar Döffinger
605fc72f19
avcodec/parser: Reset *buf_size on realloc failure
...
Fixes: out of array access
Fixes: crash-0d640731c7da52415670eb47a2af701cbe2e1a3b
Fixes: crash-e745864ead6ea418959c8df56de2765571201dae
Found-by: Catena cyber <contact@catenacyber.fr>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-03-13 00:52:30 +01:00
James Almer
0275d99427
avcodec/parser: fill avctx dimensions if unset
...
This allows the usage of codecs in builds that have a parser but no decoders
for remuxing scenarios with raw sources.
Signed-off-by: James Almer <jamrial@gmail.com>
2023-04-30 18:25:24 -03:00
Andreas Rheinhardt
33df1ba6b2
avcodec, avformat: Remove unnecessary inclusions of lavc/internal.h
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-03-23 23:45:39 +01:00
Andreas Rheinhardt
27f22f3383
all: Remove unnecessary libavcodec/internal.h inclusions
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-08 06:16:26 +01:00
Andreas Rheinhardt
cbf111059d
avcodec/avcodec: Allow up to seven codec ids per parser
...
ff_pnm_parser and ff_vp3_parser already hit the current limit;
an addition to the former (to handle pfm) is planned.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-02 19:02:35 +02:00
Andreas Rheinhardt
e5af920309
avcodec: Move all AVCodecParser.split functions to remove_extradata_bsf
...
The remove_extradata bsf is the only user of these functions.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:16 -03:00
Andreas Rheinhardt
cb3ac722f4
avcodec: Constify AVCodecParserContext.parser
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:15 -03:00
Andreas Rheinhardt
f34521266e
avcodec/parser: Remove deprecated av_parser_change
...
Deprecated in 9a07c1332cfe092b57b5758f22b686ca58806c60.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:07 -03:00
Andreas Rheinhardt
df6b44182e
avcodec, avformat: Remove AVPacket.convergence_duration
...
Deprecated in 948f3c19a8bd069768ca411212aaf8c1ed96b10d.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:00 -03:00
Andreas Rheinhardt
9faf3f8bb0
avcodec/parser: Don't return pointer to stack buffer
...
When flushing, the parser receives a dummy buffer with padding
that lives on the stack of av_parser_parse2(). Certain parsers
(e.g. Dolby E) only analyze the input, but don't repack it. When
flushing, such parsers return a pointer to the stack buffer and
a size of 0. And this is also what av_parser_parse2() returns.
Fix this by always resetting poutbuf in case poutbuf_size is zero.
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-03-20 03:56:57 +01:00
Andreas Rheinhardt
dc20b27802
avcodec/parser: Schedule av_parser_change for removal
...
Originally deprecated in 748c2fca7e4d99357c234936aa71212a6282be36,
publically deprecated in 9a07c1332cfe092b57b5758f22b686ca58806c60
(merged into FFmpeg in 1885ffb03d0af28e6bac2bcc8725fa15b93f6ac9).
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-03-06 09:33:42 +01:00
Michael Niedermayer
8a24d2cc30
avcodec/parser: Optimize ff_combine_frame() with massivly negative next
...
Fixes: Timeout
Fixes: 15558/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PPM_fuzzer-5705273643106304
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-08-23 22:26:50 +02:00
Michael Niedermayer
15008db0fa
avcodec/parser: Check next index validity in ff_combine_frame()
...
Fixes: out of array access
Fixes: 15522/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DNXHD_fuzzer-5747756078989312
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-07-17 23:18:50 +02:00
James Almer
3735d55af3
avcodec/parser: move parsers list and related API to its own file
...
And add it to the CONFIGURABLE_COMPONENTS list in Makefile. This way, changes
to the new file will be tracked and the usual warning to suggest re-running
configure will be shown.
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-21 16:08:29 -03:00
Aurelien Jacobs
2505ebc632
sbc: add parser for SBC
2018-03-07 22:26:53 +01:00
Josh de Kock
7e8eba2d87
lavc: add new API for iterating codecs and codec parsers
...
Based on an unfinished patch by atomnuker.
2018-02-06 18:50:27 +00:00
James Almer
d36335bda5
avcodec/parser: use a mutex instead of atomics in av_register_codec_parser()
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-01-04 21:56:49 -03:00
Michael Niedermayer
c0607d88ee
avcodec/parser: assert that there is a past buffer if theres a reference into the past
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-16 01:35:35 +02:00
James Almer
fb496921e8
Merge commit '53618054b64ce4dab459d23a7efebe9d5afc4855'
...
* commit '53618054b64ce4dab459d23a7efebe9d5afc4855':
parser: Add missing #include for printing ISO C99 conversion specifiers
Merged-by: James Almer <jamrial@gmail.com>
2017-05-04 21:41:43 -03:00
Clément Bœsch
549045254c
Fix all -Wformat warnings raised by DJGPP
2017-03-29 14:49:29 +02:00
Diego Biurrun
53618054b6
parser: Add missing #include for printing ISO C99 conversion specifiers
2016-12-25 13:22:50 +01:00
Diego Biurrun
0b77a59336
Use correct printf conversion specifiers for POSIX integer types
2016-12-23 19:30:00 +01:00
Rodger Combs
d13740f3a2
lavc/parser: export field order if not already set
...
Some codecs set this in the parser, but not the decoder
2016-10-24 01:20:18 -05:00
Michael Niedermayer
9f03b85045
avcodec/parser: assert that the codec id is not NONE in av_parser_parse2()
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-01 19:08:29 +02:00
Andreas Cadhalpun
fa74cdc60d
parser: add av_assert1 to make sure the codec matches
...
Otherwise this can have some surprising effects (crashes), so let's
better not allow it.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-05 22:30:32 +01:00
Hendrik Leppkes
b01891a9f0
Merge commit '948f3c19a8bd069768ca411212aaf8c1ed96b10d'
...
* commit '948f3c19a8bd069768ca411212aaf8c1ed96b10d':
lavc: Make AVPacket.duration int64, and deprecate convergence_duration
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:22:52 +02:00
wm4
948f3c19a8
lavc: Make AVPacket.duration int64, and deprecate convergence_duration
...
Note that convergence_duration had another meaning, one which was in
practice never used. The only real use for it was a 64 bit replacement
for the duration field. It's better just to make duration 64 bits, and
to get rid of it.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-29 14:33:00 +02:00
Michael Niedermayer
29d147c94d
Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'
...
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba':
lavc: Consistently prefix input buffer defines
Conflicts:
doc/examples/decoding_encoding.c
libavcodec/4xm.c
libavcodec/aac_adtstoasc_bsf.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.h
libavcodec/asvenc.c
libavcodec/avcodec.h
libavcodec/avpacket.c
libavcodec/dvdec.c
libavcodec/ffv1enc.c
libavcodec/g2meet.c
libavcodec/gif.c
libavcodec/h264.c
libavcodec/h264_mp4toannexb_bsf.c
libavcodec/huffyuvdec.c
libavcodec/huffyuvenc.c
libavcodec/jpeglsenc.c
libavcodec/libxvid.c
libavcodec/mdec.c
libavcodec/motionpixels.c
libavcodec/mpeg4videodec.c
libavcodec/mpegvideo.c
libavcodec/noise_bsf.c
libavcodec/nuv.c
libavcodec/nvenc.c
libavcodec/options.c
libavcodec/parser.c
libavcodec/pngenc.c
libavcodec/proresenc_kostya.c
libavcodec/qsvdec.c
libavcodec/svq1enc.c
libavcodec/tiffenc.c
libavcodec/truemotion2.c
libavcodec/utils.c
libavcodec/utvideoenc.c
libavcodec/vc1dec.c
libavcodec/wmalosslessdec.c
libavformat/adxdec.c
libavformat/aiffdec.c
libavformat/apc.c
libavformat/apetag.c
libavformat/avidec.c
libavformat/bink.c
libavformat/cafdec.c
libavformat/flvdec.c
libavformat/id3v2.c
libavformat/isom.c
libavformat/matroskadec.c
libavformat/mov.c
libavformat/mpc.c
libavformat/mpc8.c
libavformat/mpegts.c
libavformat/mvi.c
libavformat/mxfdec.c
libavformat/mxg.c
libavformat/nutdec.c
libavformat/oggdec.c
libavformat/oggparsecelt.c
libavformat/oggparseflac.c
libavformat/oggparseopus.c
libavformat/oggparsespeex.c
libavformat/omadec.c
libavformat/rawdec.c
libavformat/riffdec.c
libavformat/rl2.c
libavformat/rmdec.c
libavformat/rtpdec_latm.c
libavformat/rtpdec_mpeg4.c
libavformat/rtpdec_qdm2.c
libavformat/rtpdec_svq3.c
libavformat/sierravmd.c
libavformat/smacker.c
libavformat/smush.c
libavformat/spdifenc.c
libavformat/takdec.c
libavformat/tta.c
libavformat/utils.c
libavformat/vqf.c
libavformat/westwood_vqa.c
libavformat/xmv.c
libavformat/xwma.c
libavformat/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:15:19 +02:00
Michael Niedermayer
94d68a41fa
Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'
...
* commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615':
lavc: AV-prefix all codec flags
Conflicts:
doc/examples/muxing.c
ffmpeg.c
ffmpeg_opt.c
ffplay.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/ac3enc_float.c
libavcodec/atrac1.c
libavcodec/atrac3.c
libavcodec/atrac3plusdec.c
libavcodec/dcadec.c
libavcodec/ffv1enc.c
libavcodec/h264.c
libavcodec/h264_loopfilter.c
libavcodec/h264_mb.c
libavcodec/imc.c
libavcodec/libmp3lame.c
libavcodec/libtheoraenc.c
libavcodec/libtwolame.c
libavcodec/libvpxenc.c
libavcodec/libxavs.c
libavcodec/libxvid.c
libavcodec/mpeg12dec.c
libavcodec/mpeg12enc.c
libavcodec/mpegaudiodec_template.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_motion.c
libavcodec/nellymoserdec.c
libavcodec/nellymoserenc.c
libavcodec/nvenc.c
libavcodec/on2avc.c
libavcodec/options_table.h
libavcodec/opus_celt.c
libavcodec/pngenc.c
libavcodec/ra288.c
libavcodec/ratecontrol.c
libavcodec/twinvq.c
libavcodec/vc1_block.c
libavcodec/vc1_loopfilter.c
libavcodec/vc1_mc.c
libavcodec/vc1dec.c
libavcodec/vorbisdec.c
libavcodec/vp3.c
libavcodec/wma.c
libavcodec/wmaprodec.c
libavcodec/x86/hpeldsp_init.c
libavcodec/x86/me_cmp_init.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:10:35 +02:00
Vittorio Giovara
059a934806
lavc: Consistently prefix input buffer defines
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:59 +01:00
Vittorio Giovara
7c6eb0a1b7
lavc: AV-prefix all codec flags
...
Convert doxygen to multiline and express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Michael Niedermayer
11aa050a25
avcodec/parser: Print an error in case of reallocation fails in ff_combine_frame()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31 02:59:06 +02:00
Michael Niedermayer
1ca8052640
avcodec/parser: Remove duplicate header inlcude
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 14:58:09 +02:00
Michael Niedermayer
8f7b022c8c
Merge commit '6a85dfc830f51f1f5c2d36d4182d265c1ea3ba25'
...
* commit '6a85dfc830f51f1f5c2d36d4182d265c1ea3ba25':
lavc: Replace av_dlog and tprintf with internal macros
Conflicts:
libavcodec/aacdec.c
libavcodec/audio_frame_queue.c
libavcodec/bitstream.c
libavcodec/dcadec.c
libavcodec/dnxhddec.c
libavcodec/dvbsubdec.c
libavcodec/dvdec.c
libavcodec/dvdsubdec.c
libavcodec/get_bits.h
libavcodec/gifdec.c
libavcodec/h264.h
libavcodec/h264_cabac.c
libavcodec/h264_cavlc.c
libavcodec/h264_loopfilter.c
libavcodec/h264_refs.c
libavcodec/imc.c
libavcodec/interplayvideo.c
libavcodec/jpeglsdec.c
libavcodec/libopencore-amr.c
libavcodec/mjpegdec.c
libavcodec/mpeg12dec.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_parser.c
libavcodec/pngdec.c
libavcodec/ratecontrol.c
libavcodec/rv10.c
libavcodec/svq1dec.c
libavcodec/vqavideo.c
libavcodec/wmadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 04:10:10 +02:00
Vittorio Giovara
6a85dfc830
lavc: Replace av_dlog and tprintf with internal macros
2015-04-19 12:41:59 +01:00
Michael Niedermayer
560eb7179a
Merge commit '31d2039cb42668ebcf08248bc48bbad44aa05f49'
...
* commit '31d2039cb42668ebcf08248bc48bbad44aa05f49':
h264_parser: export video format and dimensions
Conflicts:
libavcodec/h264_parser.c
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-19 20:39:04 +01:00
Anton Khirnov
31d2039cb4
h264_parser: export video format and dimensions
2015-02-19 15:07:52 +01:00
Zhaoxiu Zeng
3b5ad8fbf7
avcodec/parser: optimize ff_mpeg4video_split()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-14 14:54:39 +01:00
Michael Niedermayer
e7d85186d6
avcodec/parser: Check that the parser return code is valid
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-15 20:58:58 +01:00
Michael Niedermayer
c5eb725fd3
Merge commit '8a9641a652ed1546fedfda22584f79d3d423096e'
...
* commit '8a9641a652ed1546fedfda22584f79d3d423096e':
bsf: check memory allocations
Conflicts:
libavcodec/noise_bsf.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-15 13:47:12 +01:00
Vittorio Giovara
8a9641a652
bsf: check memory allocations
2015-01-15 01:25:16 +01:00
Michael Niedermayer
69ee915e1c
avcodec/parser: add fuzzy mode to ff_fetch_timestamp()
...
This will be needed for the following timestamp fix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-07 11:52:08 +01:00
Michael Niedermayer
cc769931ab
avcodec/parser: use av_freep() to avoid leaving stale pointers in memory
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-01 11:36:41 +01:00
Michael Niedermayer
81a663f49e
Drop remaining unneeded != NULL
...
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 22:47:45 +02:00
Michael Niedermayer
0a7f3af27f
Merge commit '53abe32409f13687c864b3cda077a1aa906a2459'
...
* commit '53abe32409f13687c864b3cda077a1aa906a2459':
avcodec: Mark argument in av_{parser|hwaccel|bitstream_filter}_next as const
Conflicts:
libavcodec/avcodec.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 01:57:34 +02:00
Diego Biurrun
53abe32409
avcodec: Mark argument in av_{parser|hwaccel|bitstream_filter}_next as const
2014-07-26 14:51:16 -07:00
Michael Niedermayer
bdadf05ec8
avcodec/parser: put lost comments back
...
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 18:57:43 +01:00
Michael Niedermayer
2673357048
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
parser: cosmetics: Drop some unnecessary parentheses
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 20:52:45 +01:00
Michael Niedermayer
72d580f819
Merge commit 'a1c699659d56b76c0bf399307f642c6fd6d28281'
...
* commit 'a1c699659d56b76c0bf399307f642c6fd6d28281':
parser: K&R formatting cosmetics
Conflicts:
libavcodec/parser.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 19:12:30 +01:00
Michael Niedermayer
0306436416
Merge commit 'ed61f3ca8a0664a697782253b354055136c5d303'
...
* commit 'ed61f3ca8a0664a697782253b354055136c5d303':
parser: Remove commented-out cruft
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 19:03:45 +01:00