Carl Eugen Hoyos
dc77e64f2d
lavf/rtpdec*: Constify all RTPDynamicProtocolHandler.
...
Reviewed-by: Muhammad Faiz
2018-02-14 01:14:35 +01:00
Michael Niedermayer
c42a1388a6
avformat/rtpdec_h264: Fix heap-buffer-overflow
...
Fixes: rtp_sdp/poc.sdp
Found-by: Bingchang <l.bing.chang.bc@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-23 22:19:33 +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
Martin Storsjö
d50b3fe463
rtpdec_h264: Use avpriv_report_missing_feature instead of a manual av_log
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-14 08:00:17 +02:00
Martin Storsjö
94dee9067a
rtpdec: Use AVERROR_PATCHWELCOME instead of AVERROR(ENOSYS) for
...
unimplemented features
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-14 08:00:17 +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
Martin Storsjö
943f4bea37
rtpdec_h264: Use avpriv_report_missing_feature instead of a manual av_log
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-30 20:58:18 +03:00
Martin Storsjö
b55e3633d3
rtpdec: Use AVERROR_PATCHWELCOME instead of AVERROR(ENOSYS) for unimplemented features
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-04-30 20:57:44 +03: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
Andrew Shulgin
1c7e2cf9d3
avformat/rtpdec_h264: Ignore invalid sprop-parameter-sets missing PPS
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-03-01 02:19:23 +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
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
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
Michael Niedermayer
3130e5be92
Merge commit 'd594dbecce5f3af7f80bbf5bb1b516d740b69ccd'
...
* commit 'd594dbecce5f3af7f80bbf5bb1b516d740b69ccd':
rtpdec: Rename the free method to close
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-25 00:58:39 +01:00
Michael Niedermayer
fa80b76b11
Merge commit 'bb4a310bb85f43e62240145a656b1e5285b14239'
...
* commit 'bb4a310bb85f43e62240145a656b1e5285b14239':
rtpdec: Don't free the payload context in the .free function
Conflicts:
libavformat/rtpdec_latm.c
libavformat/rtpdec_mpeg4.c
libavformat/rtpdec_mpegts.c
libavformat/rtpdec_xiph.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-25 00:25:12 +01:00
Michael Niedermayer
d2a5c6f210
Merge commit 'ec96a89c3e507cf0fb1f2b159b28a53f2bad9a74'
...
* commit 'ec96a89c3e507cf0fb1f2b159b28a53f2bad9a74':
rtpdec: Don't pass non-const pointers to fmtp attribute parsing functions
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-24 23:44:25 +01:00
Michael Niedermayer
499da717b8
Merge commit 'ac0e54fda9305cc7d149007f5b512bb8619f7c78'
...
* commit 'ac0e54fda9305cc7d149007f5b512bb8619f7c78':
rtpdec: Add const to string parameters in internal fmtp parsing functions
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-24 23:38:19 +01:00
Michael Niedermayer
17773f49b7
Merge commit '3567b91e49c6ae101c9a35c90f46b8ad9890ac15'
...
* commit '3567b91e49c6ae101c9a35c90f46b8ad9890ac15':
rtpdec_hevc: Share the implementation of fragmented packets with h264
Conflicts:
libavformat/rtpdec_h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-24 23:23:26 +01:00
Michael Niedermayer
29f9d82d23
Merge commit '8633fb47db2ec39eb8bd1bd65302af75a94ff5d0'
...
* commit '8633fb47db2ec39eb8bd1bd65302af75a94ff5d0':
rtpdec_hevc: Share the implementation of parsing a=framesize with h264
Conflicts:
libavformat/rtpdec_h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-24 23:03:12 +01:00
Michael Niedermayer
3804d73e46
Merge commit '5d8cae45737bed6239bd6b6e0698802dbe1463c8'
...
* commit '5d8cae45737bed6239bd6b6e0698802dbe1463c8':
rtpdec: Get rid of all trivial .alloc/.free functions
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-24 22:55:20 +01:00
Michael Niedermayer
11fb625858
Merge commit '2b982e92f42a6e661d90b12b6592cd13cae496d4'
...
* commit '2b982e92f42a6e661d90b12b6592cd13cae496d4':
rtpdec: Set need_parsing via a handler field
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-24 22:34:08 +01:00
Michael Niedermayer
a4f50ec9dd
Merge commit '0752f700d63f6b15ffd5369ac7615414cce71247'
...
* commit '0752f700d63f6b15ffd5369ac7615414cce71247':
rtpdec_h264: Remove an unnecessary include
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-24 22:19:06 +01:00
Michael Niedermayer
ae2a8d8742
Merge commit '247764a592f83521f9c1ccdc900b00a8b84f3c87'
...
* commit '247764a592f83521f9c1ccdc900b00a8b84f3c87':
rtpdec_h264: Remove unnecessary struct padding
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-24 22:12:16 +01:00
Martin Storsjö
d594dbecce
rtpdec: Rename the free method to close
...
Many of these functions were named foo_free_context, and since
the functions no longer should free the context itself, only
allocated elements within it, the previous naming was slightly
misleading.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:50 +02:00
Martin Storsjö
bb4a310bb8
rtpdec: Don't free the payload context in the .free function
...
This makes it more consistent with depacketizers that don't have any
.free function at all, where the payload context is freed by the
surrounding framework. Always free the context in the surrounding
framework, having the individual depacketizers only free any data
they've specifically allocated themselves.
This is similar to how this works for demuxer/muxers/codecs - a
component shouldn't free the priv_data that the framework has
allocated for it.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:35 +02:00
Martin Storsjö
ec96a89c3e
rtpdec: Don't pass non-const pointers to fmtp attribute parsing functions
...
This makes it clear that the individual parsing functions can't
touch the parsed out value.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:22 +02:00
Martin Storsjö
ac0e54fda9
rtpdec: Add const to string parameters in internal fmtp parsing functions
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 23:07:18 +02:00
Michael Niedermayer
30c863fdfa
Merge commit '3cd5828fc0007e6d056067444de053a34ddedd02'
...
* commit '3cd5828fc0007e6d056067444de053a34ddedd02':
rtpdec: Add missing trailing commas
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-24 22:03:19 +01:00
Martin Storsjö
3567b91e49
rtpdec_hevc: Share the implementation of fragmented packets with h264
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:25:28 +02:00
Martin Storsjö
8633fb47db
rtpdec_hevc: Share the implementation of parsing a=framesize with h264
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:24:36 +02:00
Martin Storsjö
5d8cae4573
rtpdec: Get rid of all trivial .alloc/.free functions
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:24:19 +02:00
Martin Storsjö
2b982e92f4
rtpdec: Set need_parsing via a handler field
...
This avoids implementing a full function just to set this one
field.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:22:41 +02:00
Martin Storsjö
0752f700d6
rtpdec_h264: Remove an unnecessary include
...
Nothing in this file use any network functions.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:20:54 +02:00
Martin Storsjö
247764a592
rtpdec_h264: Remove unnecessary struct padding
...
There's no point in adding padding in the allocation of a depacketizer
specific context struct.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:20:44 +02:00
Martin Storsjö
3cd5828fc0
rtpdec: Add missing trailing commas
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-24 16:20:02 +02:00
Michael Niedermayer
596f81c75b
Merge commit 'fe208ca54b0d3b6bbe1c660d371bb2cc6cf40ffc'
...
* commit 'fe208ca54b0d3b6bbe1c660d371bb2cc6cf40ffc':
rtpdec_hevc: Skip 1 byte (DOND) instead of 2 (DONL) between aggregation units
Conflicts:
libavformat/rtpdec_hevc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-23 21:01:44 +01:00
Martin Storsjö
fe208ca54b
rtpdec_hevc: Skip 1 byte (DOND) instead of 2 (DONL) between aggregation units
...
Only the first aggregation unit has 2 bytes (DONL) prepended, if
such a field is in use.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-23 15:33:20 +02:00
Michael Niedermayer
b0b7571a52
Merge commit 'ff394ca087d41941d2157e7a4e356e3ad312494e'
...
* commit 'ff394ca087d41941d2157e7a4e356e3ad312494e':
rtpdec_h264: Add a missing closing paren in a log message
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-22 00:15:10 +01:00
Martin Storsjö
ff394ca087
rtpdec_h264: Add a missing closing paren in a log message
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 23:36:56 +02:00
Michael Niedermayer
a10529a319
Merge commit '0de07510844517b615ef2a2e2916f6391ad88687'
...
* commit '0de07510844517b615ef2a2e2916f6391ad88687':
rtpdec_h264: Make reusable functions non-static
Conflicts:
libavformat/rtpdec_formats.h
libavformat/rtpdec_h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-21 12:56:08 +01:00
Michael Niedermayer
7fd732b758
Merge commit '16163e6bf2d446c06d4dd053c0852074bb50508d'
...
* commit '16163e6bf2d446c06d4dd053c0852074bb50508d':
rtpdec_h264: Fix nal type counting after refactoring
Conflicts:
libavformat/rtpdec_h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-21 12:44:09 +01:00
Michael Niedermayer
34c58618be
Merge commit 'a3cc519d1f43bf93cc29fd53284a2b8aa6189a9a'
...
* commit 'a3cc519d1f43bf93cc29fd53284a2b8aa6189a9a':
rtpdec_h264: Prepare h264_handle_packet_stap_a for sharing with hevc
Conflicts:
libavformat/rtpdec_h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-21 12:32:28 +01:00
Michael Niedermayer
621450e786
Merge commit '48183b3ad45c95e386a4cb02e1a68b53e6835ac5'
...
* commit '48183b3ad45c95e386a4cb02e1a68b53e6835ac5':
rtpdec_h264: Generalize parse_sprop_parameter_sets
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-21 12:25:09 +01:00
Martin Storsjö
0de0751084
rtpdec_h264: Make reusable functions non-static
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:32:41 +02:00
Martin Storsjö
16163e6bf2
rtpdec_h264: Fix nal type counting after refactoring
...
This fixes builds with -DDEBUG after f0a874799
.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:32:38 +02:00
Martin Storsjö
a3cc519d1f
rtpdec_h264: Prepare h264_handle_packet_stap_a for sharing with hevc
...
Add a parameter for skipping a number of bytes at the start of each nal.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:32:36 +02:00
Martin Storsjö
48183b3ad4
rtpdec_h264: Generalize parse_sprop_parameter_sets
...
Don't write directly into an AVCodecContext, write into given
pointers.
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-21 11:32:31 +02:00
Michael Niedermayer
dc6eadaa45
Merge commit '46ad9ac9641d1fe8292ec1f46bbd2e4456621ca7'
...
* commit '46ad9ac9641d1fe8292ec1f46bbd2e4456621ca7':
rtpdec_h264: Move a leftover comment into h264_handle_packet_stap_a
Conflicts:
libavformat/rtpdec_h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-20 22:03:54 +01:00
Michael Niedermayer
d19ca4b2ea
Merge commit 'a335ed767161c6da2815371177cfd5e40f78e5b7'
...
* commit 'a335ed767161c6da2815371177cfd5e40f78e5b7':
rtpdec_h264: Remove an unnecessary check
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-20 21:57:34 +01:00
Michael Niedermayer
ac7128a90f
Merge commit '176903ce833ce7469f411640e9748a0d549b5285'
...
* commit '176903ce833ce7469f411640e9748a0d549b5285':
rtpdec_h264: Return immediately on errors in h264_handle_packet_stap_a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-20 21:48:32 +01:00