summaryrefslogtreecommitdiffstats
path: root/libavcodec/h264.h
Commit message (Collapse)AuthorAgeFilesLines
* avcodec/h264: Fix regression caused by removial of default_ref_listMichael Niedermayer2016-01-041-0/+1
| | | | | | This fixes a regression of the sample from Ticket 2371 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit '741b494fa8cd28a7d096349bac183893c236e3f9'Hendrik Leppkes2015-12-171-8/+0
|\ | | | | | | | | | | | | * commit '741b494fa8cd28a7d096349bac183893c236e3f9': h264: eliminate default_ref_list Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * h264: eliminate default_ref_listAnton Khirnov2015-12-061-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | According to the spec, the reference list for a slice should be constructed by first generating an initial (what we now call "default") reference list and then optionally applying modifications to it. Our code has an optimization where the initial reference list is constructed for the first inter slice and then rebuilt for other slices if needed. This, however, adds complexity to the code, requires an extra 2.5kB array in the codec context and there is no reason to think that it has any positive effect on performance. Therefore, simplify the code by generating the reference list from scratch for each slice.
* | Merge commit 'd15368ee3926152a3a301c13cc638fbf7a062ddf'Hendrik Leppkes2015-10-141-0/+1
|\ \ | |/ | | | | | | | | | | * commit 'd15368ee3926152a3a301c13cc638fbf7a062ddf': h264: Run VLC init under pthread_once Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * h264: Run VLC init under pthread_onceDerek Buitenhuis2015-10-141-0/+1
| | | | | | | | | | | | | | This makes the h.264 decoder threadsafe to initialize. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | avcodec/h264: keep SPS and PPS bitstream datawm42015-10-021-0/+4
| | | | | | | | | | | | | | | | We assume an upper bound of 4096 bytes for each raw SPS/PPS. It's hard to determine an exact maximum size, but this value was was considered high enough and safe. Needed for the following VideotoolBox commit.
* | Merge commit '0f562f5b833d603e04123d198c59f8b2b5eb43e4'Hendrik Leppkes2015-08-101-0/+1
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '0f562f5b833d603e04123d198c59f8b2b5eb43e4': h264: Do not print an error when the buffer has to be refilled Conflicts: libavcodec/h264.c Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | Merge commit '9469370fb32679352e66826daf77bdd2e6f067b5'Hendrik Leppkes2015-08-071-3/+4
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '9469370fb32679352e66826daf77bdd2e6f067b5': h264: Use AVERROR return codes instead of -1 Only partially merged, as the first hunk is not correct and would result in endless log spam. Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | Merge commit 'b0017579b6e8de3d0d13dcfe0a4dd848dc6baa37'Michael Niedermayer2015-07-171-3/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit 'b0017579b6e8de3d0d13dcfe0a4dd848dc6baa37': h264: Add support for Closed Caption export Conflicts: libavcodec/h264.c libavcodec/h264_sei.c See: 8234f0e3b485811d60c228c40a94a141c46e61ca Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * h264: Add support for Closed Caption exportKieran Kunhya2015-07-171-0/+2
| | | | | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | avcodec: Add support for Closed Caption export in h264Kieran Kunhya2015-07-061-0/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/h264: Greenmetadata SEI parsingNicolas DEROUINEAU2015-06-301-0/+21
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '271ce76d317c5432e151216cf23f12b77ed6cb7e'Michael Niedermayer2015-06-301-4/+7
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '271ce76d317c5432e151216cf23f12b77ed6cb7e': h264: Parse registered data SEI message and AFD value Conflicts: libavcodec/h264.c libavcodec/h264.h libavcodec/h264_sei.c libavcodec/version.h See: d6e95669496a89d186f923c34bcaf7d86b7cd59c See: 22291c372fa703242e8429bed61700ba81258f19 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: Parse registered data SEI message and AFD valueVittorio Giovara2015-06-301-0/+7
| | | | | | | | | | | | Partially based on code by Marton Balint and Kieran Kunhya. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit '5ec0bdf2c524224f30ba4786f47324970aed4aaa'Michael Niedermayer2015-06-271-0/+6
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit '5ec0bdf2c524224f30ba4786f47324970aed4aaa': h264: do not update the context fields copied between threads after finish_setup() Conflicts: libavcodec/h264.h libavcodec/h264_slice.c See: f111831ed61103f9fa8fdda41473a23da016bdaa and others Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: do not update the context fields copied between threads after ↵Anton Khirnov2015-06-271-0/+5
| | | | | | | | | | | | finish_setup() Should fix a large number of possible races with frame threading.
* | Merge commit 'e49e0f58e273237f83b4486f3536931ed1943d18'Michael Niedermayer2015-06-271-1/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit 'e49e0f58e273237f83b4486f3536931ed1943d18': h264: make sure the slices do not overlap during slice threading Conflicts: libavcodec/h264.h libavcodec/h264_slice.c See: 43b434210e597d484aef57c4139c3126d22b7e2b Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: make sure the slices do not overlap during slice threadingAnton Khirnov2015-06-271-0/+2
| | | | | | | | | | | | Based on a patch by Michael Niedermayer <michaelni@gmx.at>. CC: libav-stable@libav.org Found-by: Kieran Kunhya <kierank@obe.tv>
* | avcodec: Add support for per-frame AFD output in h264Kieran Kunhya2015-06-261-0/+3
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | h264: update avctx width/height/pix_fmt when returning frameAndreas Cadhalpun2015-06-121-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Inconsistencies between the dimensions/pixel format of avctx and the frame can confuse API users. For example this can crash the demuxing_decoding example. Back up the previous values and restore them, when decoding the next frame. This is necessary, because these can be different between the returned frame and the last decoded frame. Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
* | Merge commit 'a0f2946068c62e18cb05ac25c0df3d86077251a6'Michael Niedermayer2015-04-291-2/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'a0f2946068c62e18cb05ac25c0df3d86077251a6': h264: use properly allocated AVFrames Conflicts: libavcodec/h264.c libavcodec/h264.h libavcodec/h264_refs.c libavcodec/h264_slice.c libavcodec/svq3.c libavcodec/vda_h264.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: use properly allocated AVFramesAnton Khirnov2015-04-291-1/+1
| |
* | Merge commit '7a4f74eed51f914e9bbfebaffd4a92ac6791f819'Michael Niedermayer2015-04-291-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '7a4f74eed51f914e9bbfebaffd4a92ac6791f819': h264: embed the DPB in the context Conflicts: libavcodec/h264.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: embed the DPB in the contextAnton Khirnov2015-04-291-1/+1
| | | | | | | | | | It now has a fixed size and is initialized only once, so there is no point in allocating it separately.
* | Merge commit '11f024ef0ab923ed8680fc35a087d576e549c849'Michael Niedermayer2015-04-291-1/+1
|\ \ | |/ | | | | | | | | | | * commit '11f024ef0ab923ed8680fc35a087d576e549c849': h264: move freeing the escaped RBSP buffer to free_context() Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move freeing the escaped RBSP buffer to free_context()Anton Khirnov2015-04-291-1/+1
| | | | | | | | | | It does not logically belong in free_tables(), since it's not allocated in alloc_tables() and its size has nothing to do with the frame size.
* | Merge commit 'ee62b364be0c30cba83b5ff10a3ca8c3e866ade6'Michael Niedermayer2015-04-291-1/+0
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit 'ee62b364be0c30cba83b5ff10a3ca8c3e866ade6': h264: eliminate ff_h264_set_parameter_from_sps() Conflicts: libavcodec/h264.c libavcodec/h264.h libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: eliminate ff_h264_set_parameter_from_sps()Anton Khirnov2015-04-291-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | That function currently does two things -- reinitializing the DSP contexts and setting low_delay based on the SPS values. The former more appropriately belongs in h264_slice_header_init(), while the latter only really makes sense in decode_slice_header(). The third call to ff_h264_set_parameter_from_sps(), done immediately after parsing a new SPS, appears to serve no useful purpose, so it is just dropped. Also, drop now unneeded H264Context.cur_chroma_format_idc.
* | Merge commit '9d33bab583a82cf12286c65258a29c6888e1ff98'Michael Niedermayer2015-04-291-1/+0
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '9d33bab583a82cf12286c65258a29c6888e1ff98': h264: drop H264Context.ouputed_poc Conflicts: libavcodec/h264.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: drop H264Context.ouputed_pocAnton Khirnov2015-04-291-1/+0
| | | | | | | | It is only set, but never used for anything.
* | Merge commit '27b0e6ebfd47b0c11156c18b90fa8c571f0f60c3'Michael Niedermayer2015-04-291-1/+0
|\ \ | |/ | | | | | | | | | | * commit '27b0e6ebfd47b0c11156c18b90fa8c571f0f60c3': h264: drop needs_realloc Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: drop needs_reallocAnton Khirnov2015-04-291-1/+0
| | | | | | | | It is not needed anymore since switching to refcounted frames.
* | Merge commit '6a85dfc830f51f1f5c2d36d4182d265c1ea3ba25'Michael Niedermayer2015-04-201-2/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
| * lavc: Replace av_dlog and tprintf with internal macrosVittorio Giovara2015-04-191-1/+2
| |
* | avcodec/h264: Do not fail with randomly truncated VUIsMichael Niedermayer2015-04-101-1/+1
| | | | | | | | | | | | | | Fixes Ticket4445 Tested-by: Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/h264: use consistent argument name in MB_FIELD() macroMichael Niedermayer2015-04-081-2/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/h264: Fix race between slices where one overwrites data from the nextMichael Niedermayer2015-04-071-0/+1
| | | | | | | | | | | | | | Fixes non deterministic crash in ticket4408/fuzz2.264 Likely fixes other samples as well Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'a4d34e218f548d381e09c483e8dc6ad18a8d571c'Michael Niedermayer2015-04-041-0/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit 'a4d34e218f548d381e09c483e8dc6ad18a8d571c': h264: disable ER by default Conflicts: libavcodec/h264.c libavcodec/h264_picture.c libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: disable ER by defaultAnton Khirnov2015-04-031-0/+2
| | | | | | | | | | The way it is currently designed is fundamentally unsafe and cannot be reasonably fixed without completely rewriting it.
* | avcodec/h264: Remove bits_per_raw_sample hacksMichael Niedermayer2015-03-251-0/+1
| | | | | | | | | | | | | | | | | | Fixes assertion failure Fixes: f12c79769501ee471a5c731b8304ffcb/signal_sigabrt_7ffff6ac8cc9_3766_cov_4267830138_undemuxable_h264.ts Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/h264.h: Drop unused macroMichael Niedermayer2015-03-221-7/+0
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'c28ed1d743443e783537d279ae721be3bbdf7646'Michael Niedermayer2015-03-211-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit 'c28ed1d743443e783537d279ae721be3bbdf7646': h264: move [uv]linesize to the per-slice context Conflicts: libavcodec/h264_mb.c libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move [uv]linesize to the per-slice contextAnton Khirnov2015-03-211-1/+1
| | | | | | | | | | | | While it is a per-frame variable, it is only really used in the low-level decoding code, so it is more efficient to store it in the slice context.
* | Merge commit 'a12d3188cbec15e22070e139fa5cc541da07e2c3'Michael Niedermayer2015-03-211-2/+13
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | * commit 'a12d3188cbec15e22070e139fa5cc541da07e2c3': h264: use a smaller struct for the ref lists Conflicts: libavcodec/h264_direct.c libavcodec/h264_mb.c libavcodec/h264_picture.c libavcodec/h264_refs.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: use a smaller struct for the ref listsAnton Khirnov2015-03-211-2/+13
| | | | | | | | | | | | There is no need to store a whole H264Picture, with a full AVFrame embedded in it. This should allow getting rid of the embedded AVFrame later.
* | Merge commit '5bf3c0fa49afd5bbf43aa841ff78007d72c80736'Michael Niedermayer2015-03-211-2/+0
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '5bf3c0fa49afd5bbf43aa841ff78007d72c80736': h264: drop the now unused per-slice H264Contexts Conflicts: libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: drop the now unused per-slice H264ContextsAnton Khirnov2015-03-211-2/+0
| |
* | Merge commit '51d8725a6e4c7f989d6f0f38b59cb54a2d72846c'Michael Niedermayer2015-03-211-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit '51d8725a6e4c7f989d6f0f38b59cb54a2d72846c': h264: use the main H264Context as the parent for all slice contexts Conflicts: libavcodec/h264.c libavcodec/h264.h libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: use the main H264Context as the parent for all slice contextsAnton Khirnov2015-03-211-1/+1
| | | | | | | | There is now no need to have per-slice copies of the H264Context.
* | Merge commit '3178f4d33ff62243f7cdddb081db516ea34396c9'Michael Niedermayer2015-03-211-3/+5
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit '3178f4d33ff62243f7cdddb081db516ea34396c9': h264: move rbsp_buffer into the per-slice context Conflicts: libavcodec/h264.c libavcodec/h264_parser.c libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
OpenPOWER on IntegriCloud