summaryrefslogtreecommitdiffstats
path: root/libavcodec/h264_picture.c
Commit message (Collapse)AuthorAgeFilesLines
* h264: don't sync pic_id between threads.Ronald S. Bultje2017-04-031-1/+0
| | | | | | | | | | | | | | | | This is how the ref list manager links bitstream IDs to H264Picture/Ref objects, and is local to the producer thread. There is no need for the consumer thread to know the bitstream IDs of its references in their respective producer threads. In practice, this fixes tsan warnings when running fate-h264: WARNING: ThreadSanitizer: data race (pid=19295) Read of size 4 at 0x7dbc0000e614 by main thread (mutexes: write M1914): #0 ff_h264_ref_picture src/libavcodec/h264_picture.c:112 (ffmpeg+0x0000013b3709) [..] Previous write of size 4 at 0x7dbc0000e614 by thread T2 (mutexes: write M1917): #0 build_def_list src/libavcodec/h264_refs.c:91 (ffmpeg+0x0000013b46cf)
* h264: don't write to source picture object in ff_h264_ref_picture().Ronald S. Bultje2017-03-311-1/+1
| | | | | Doing so is analogous to writing to source data in memcpy(), and causes (harmless) tsan warnings in fate-h264.
* Merge commit '9df889a5f116c1ee78c2f239e0ba599c492431aa'Clément Bœsch2016-07-291-1/+1
|\ | | | | | | | | | | | | * commit '9df889a5f116c1ee78c2f239e0ba599c492431aa': h264: rename h264.[ch] to h264dec.[ch] Merged-by: Clément Bœsch <u@pkh.me>
| * h264: rename h264.[ch] to h264dec.[ch]Anton Khirnov2016-06-211-1/+1
| | | | | | | | This is more consistent with the naming of other decoders.
* | Merge commit 'bec993381cfec72051b0d9f12ac9d9bb9c750983'Clément Bœsch2016-06-301-1/+1
|\ \ | |/ | | | | | | | | | | * commit 'bec993381cfec72051b0d9f12ac9d9bb9c750983': h264: postpone generating the implicit MMCOs Merged-by: Clément Bœsch <clement@stupeflix.com>
| * h264: postpone generating the implicit MMCOsAnton Khirnov2016-06-121-1/+1
| | | | | | | | | | | | Do it right before the MMCOs are applied to the DPB. This will allow moving the frame_start() call out of the slice header parsing, since generating the implicit MMCOs needs to be done after frame_start().
* | Merge commit '39ab2ea53121b9976a619cd545fbd3464b908696'Clément Bœsch2016-06-291-1/+1
|\ \ | |/ | | | | | | | | | | * commit '39ab2ea53121b9976a619cd545fbd3464b908696': h264: rename mmco_index to nb_mmco Merged-by: Clément Bœsch <u@pkh.me>
| * h264: rename mmco_index to nb_mmcoAnton Khirnov2016-06-121-1/+1
| | | | | | | | | | The variable stores the number of mmco entries, so the current name is misleading.
* | Merge commit '4f81f8dba735c212efae077c4fec8ad4fe53b352'Clément Bœsch2016-06-291-1/+0
|\ \ | |/ | | | | | | | | | | * commit '4f81f8dba735c212efae077c4fec8ad4fe53b352': Drop unnecessary golomb.h #includes Merged-by: Clément Bœsch <clement@stupeflix.com>
| * Drop unnecessary golomb.h #includesDiego Biurrun2016-06-081-1/+0
| |
* | Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'Clément Bœsch2016-06-211-1/+1
|\ \ | |/ | | | | | | | | | | * commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb': cosmetics: Fix spelling mistakes Merged-by: Clément Bœsch <u@pkh.me>
| * cosmetics: Fix spelling mistakesVittorio Giovara2016-05-041-1/+1
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit 'c8dcff0cdb17d0aa03ac729eba12d1a20f1f59c8'Clément Bœsch2016-06-121-4/+4
|\ \ | |/ | | | | | | | | | | * commit 'c8dcff0cdb17d0aa03ac729eba12d1a20f1f59c8': h264: factor out calculating the POC count into a separate file Merged-by: Clément Bœsch <u@pkh.me>
| * h264: factor out calculating the POC count into a separate fileAnton Khirnov2016-04-241-4/+4
| | | | | | | | This will allow decoupling the parser from the decoder.
* | avcodec/h264: Execute error concealment before marking the frame as done.Michael Niedermayer2016-02-191-41/+0
| | | | | | | | | | | | | | Fixes race condition causing artifacts Fixes Ticket4122 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavc: put remaining bits of vdpau-in-decoder under FF_API_CAP_VDPAU.Ronald S. Bultje2015-08-181-0/+4
| |
* | lavc: propagate hwaccel errorswm42015-08-061-1/+2
| | | | | | | | | | | | | | | | At least the new videotoolbox decoder does not actually set a frame if end_frame fails. This causes the API to return success and signals that a picture was decoded, even though AVFrame->data[0] is NULL. Fix this by propagating end_frame errors.
* | Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'Michael Niedermayer2015-07-271-2/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'def97856de6021965db86c25a732d78689bd6bb0': lavc: AV-prefix all codec capabilities Conflicts: cmdutils.c ffmpeg.c ffplay.c libavcodec/8svx.c libavcodec/aacenc.c libavcodec/ac3dec.c libavcodec/adpcm.c libavcodec/alac.c libavcodec/atrac3plusdec.c libavcodec/bink.c libavcodec/dnxhddec.c libavcodec/dvdec.c libavcodec/dvenc.c libavcodec/ffv1dec.c libavcodec/ffv1enc.c libavcodec/fic.c libavcodec/flacdec.c libavcodec/flacenc.c libavcodec/flvdec.c libavcodec/fraps.c libavcodec/frwu.c libavcodec/gifdec.c libavcodec/h261dec.c libavcodec/hevc.c libavcodec/iff.c libavcodec/imc.c libavcodec/libopenjpegdec.c libavcodec/libvo-aacenc.c libavcodec/libvorbisenc.c libavcodec/libvpxdec.c libavcodec/libvpxenc.c libavcodec/libx264.c libavcodec/mjpegbdec.c libavcodec/mjpegdec.c libavcodec/mpegaudiodec_float.c libavcodec/msmpeg4dec.c libavcodec/mxpegdec.c libavcodec/nvenc_h264.c libavcodec/nvenc_hevc.c libavcodec/pngdec.c libavcodec/qpeg.c libavcodec/ra288.c libavcodec/rv10.c libavcodec/s302m.c libavcodec/sp5xdec.c libavcodec/takdec.c libavcodec/tiff.c libavcodec/tta.c libavcodec/utils.c libavcodec/v210dec.c libavcodec/vp6.c libavcodec/vp9.c libavcodec/wavpack.c libavcodec/yop.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/vdpau: Re-factor pre-hwaccel helper functions into separate headerPhilip Langdale2015-05-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | h264.h and hevc.h are mutually exclusive due to defining some of the same names. As such, we need to avoid forcing h264.h to be included if we want hevc decode acceleration to be possible. However, some of the pre-hwaccel helper functions need h264.h. To avoid messy collisions, let's move the declaration of all those helpers to a separate header which we will exclude for the hevc support (which will be hwaccel-only). Signed-off-by: Philip Langdale <philipl@overt.org>
* | Merge commit 'a0f2946068c62e18cb05ac25c0df3d86077251a6'Michael Niedermayer2015-04-291-9/+9
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-6/+6
| |
* | 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.
* | avcodec/h264: Use only one ERContextMichael Niedermayer2015-04-091-0/+1
| | | | | | | | | | | | This fixes slice threads with error concealment Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'a4d34e218f548d381e09c483e8dc6ad18a8d571c'Michael Niedermayer2015-04-041-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * 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-1/+1
| | | | | | | | | | The way it is currently designed is fundamentally unsafe and cannot be reasonably fixed without completely rewriting it.
* | Merge commit 'a12d3188cbec15e22070e139fa5cc541da07e2c3'Michael Niedermayer2015-03-211-4/+7
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | * 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/+2
| | | | | | | | | | | | 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 '582683b6ac798ed2a004a4e2121b7bd47892bbfd'Michael Niedermayer2015-03-211-7/+7
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit '582683b6ac798ed2a004a4e2121b7bd47892bbfd': h264: move remaining ER stuff into the per-slice context Conflicts: libavcodec/h264.h libavcodec/h264_picture.c libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move remaining ER stuff into the per-slice contextAnton Khirnov2015-03-211-4/+4
| |
* | Merge commit '95eb35f30513e335990ad0d5dca6ddc318477291'Michael Niedermayer2015-03-211-9/+9
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '95eb35f30513e335990ad0d5dca6ddc318477291': h264: move the ref lists variables into the per-slice context Conflicts: libavcodec/h264.c libavcodec/h264.h libavcodec/h264_cabac.c libavcodec/h264_cavlc.c libavcodec/h264_direct.c libavcodec/h264_mb.c libavcodec/h264_picture.c libavcodec/h264_refs.c libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move the ref lists variables into the per-slice contextAnton Khirnov2015-03-211-3/+3
| |
* | avcodec/h264: Setup decoder to have matching reference to the EC codeMichael Niedermayer2015-02-081-0/+18
| | | | | | | | | | | | | | | | | | Also move EC ref initialization to where the EC code is called. Fixes out of array read Fixes: asan_heap-uaf_143f420_142_20110805_112659_ch0.mkv Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'ca1e36a8e4cd416142487071dbca734567bdaddf'Michael Niedermayer2014-06-201-1/+4
|\ \ | |/ | | | | | | | | | | | | | | | | * commit 'ca1e36a8e4cd416142487071dbca734567bdaddf': h264: fix build when error resilience is disabled Conflicts: libavcodec/h264_picture.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: fix build when error resilience is disabledVittorio Giovara2014-06-201-1/+4
| |
* | Merge commit '888dcd86755d37e55fd74166f6d38ad66d41db58'Michael Niedermayer2014-05-271-1/+0
|\ \ | |/ | | | | | | | | | | * commit '888dcd86755d37e55fd74166f6d38ad66d41db58': h264_picture: Remove pointless dsputil.h #include Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264_picture: Remove pointless dsputil.h #includeDiego Biurrun2014-05-271-1/+0
| |
* | avcodec/h264_picture: Fix build without error resilienceMichael Niedermayer2014-05-201-2/+2
| | | | | | | | | | Found-by: Dale Curtis <dalecurtis@chromium.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/h264: mark recovery_cnt==0 frames as keyframesMichael Niedermayer2014-05-031-0/+1
| | | | | | | | | | | | Fixes Ticket3063 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2014-03-241-14/+24
|/ | | | | | | | | | | * qatar/master: h264: Split h264 slice decoding from nal decoding Conflicts: libavcodec/Makefile libavcodec/h264.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
* h264: Split h264 slice decoding from nal decodingLuca Barbato2014-03-231-0/+200
OpenPOWER on IntegriCloud