Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-08all: Remove unnecessary libavcodec/internal.h inclusionsAndreas Rheinhardt
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2020-04-26lavc: Rename hwaccel.h to hwconfig.hMark Thompson
This already applied to decoders as well as hwaccels, and adding encoder support was going to make the name even more inaccurate.
2017-11-27lavc: Mark all AVHWAccel structures as constMark Thompson
2017-11-12Merge commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24'James Almer
* commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24': lavc: external hardware frame pool initialization Includes the fix from e724bdfffbd3c27aac53d1f32f20f105f37caef0 Merged-by: James Almer <jamrial@gmail.com>
2017-10-19lavc: external hardware frame pool initializationwm4
This adds a new API, which allows the API user to query the required AVHWFramesContext parameters. This also reduces code duplication across the hwaccels by introducing ff_decode_get_hw_frames_ctx(), which uses the new API function. It takes care of initializing the hw_frames_ctx if needed, and does additional error handling and API usage checking. Support for VDA and Cuvid missing. Signed-off-by: Anton Khirnov <anton@khirnov.net>
2017-03-21pthread_frame: do not run hwaccel decoding asynchronously unless it's safeAnton Khirnov
Certain hardware decoding APIs are not guaranteed to be thread-safe, so having the user access decoded hardware surfaces while the decoder is running in another thread can cause failures (this is mainly known to happen with DXVA2). For such hwaccels, only allow the decoding thread to run while the user is inside a lavc decode call (avcodec_send_packet/receive_frame). Merges Libav commit d4a91e65. Signed-off-by: wm4 <nfxjfg@googlemail.com> Tested-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-19pthread_frame: do not run hwaccel decoding asynchronously unless it's safeAnton Khirnov
Certain hardware decoding APIs are not guaranteed to be thread-safe, so having the user access decoded hardware surfaces while the decoder is running in another thread can cause failures (this is mainly known to happen with DXVA2). For such hwaccels, only allow the decoding thread to run while the user is inside a lavc decode call (avcodec_send_packet/receive_frame).
2016-08-01Merge commit 'f638b67e5790735f34620bf82025c9b9d6fc7216'James Almer
* commit 'f638b67e5790735f34620bf82025c9b9d6fc7216': h264: move the parameter set definitions to a new header file Conflicts: libavcodec/h264_parse.h libavcodec/h264_ps.c libavcodec/h264dec.h Merged-by: James Almer <jamrial@gmail.com>
2016-07-29Merge commit '9df889a5f116c1ee78c2f239e0ba599c492431aa'Clément Bœsch
* commit '9df889a5f116c1ee78c2f239e0ba599c492431aa': h264: rename h264.[ch] to h264dec.[ch] Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'Clément Bœsch
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb': cosmetics: Fix spelling mistakes Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21h264: move the parameter set definitions to a new header fileAnton Khirnov
The PS parsing code is independent from the decoder, so it makes more sense for it to have its own separate header.
2016-06-21h264: rename h264.[ch] to h264dec.[ch]Anton Khirnov
This is more consistent with the naming of other decoders.
2016-06-12Merge commit 'c8dcff0cdb17d0aa03ac729eba12d1a20f1f59c8'Clément Bœsch
* commit 'c8dcff0cdb17d0aa03ac729eba12d1a20f1f59c8': h264: factor out calculating the POC count into a separate file Merged-by: Clément Bœsch <u@pkh.me>
2016-06-12Merge commit '3176217c60ca7828712985092d9102d331ea4f3d'Clément Bœsch
* commit '3176217c60ca7828712985092d9102d331ea4f3d': h264: decouple h264_ps from the h264 decoder Main changes: - a local GetBitContext is created for the various ff_h264_decode_seq_parameter_set() attempts - just like the old code, remove_sps() is adjusted so it doesn't remove the pps. Fixes decode with Ticket #631 http://ffmpeg.org/pipermail/ffmpeg-user/attachments/20111108/dae58f17/attachment.mp4 but see next point as well. - ff_h264_update_thread_context() is updated to work even when SPS isn't set as it breaks current skip_frame code. This makes sure we can still decode the sample from ticket #631 without the need for -flags2 +chunks. (Thanks to Michael) - keep {sps,pps}_ref pointers that stay alive even when the active pps/sps get removed from the available lists (patch by michaelni with additionnal frees in ff_h264_free_context() from mateo) - added a check on sps in avpriv_h264_has_num_reorder_frames() to fix crashes with mpegts_with_dvbsubs.ts from Ticket #4074 http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket4074/mpegts_with_dvbsubs.ts - in h264_parser.c:h264_parse(), after the ff_h264_decode_extradata() is called, the pps and sps from the local parser context are updated with the pps and sps from the used h264context. This fixes fate-flv-demux. - in h264_slice.c, "PPS changed between slices" error is not triggered anymore in one condition as it makes fate-h264-xavc-4389 fails with THREADS=N (Thanks to Michael) Merged-by: Clément Bœsch <clement@stupeflix.com> Merged-by: Michael Niedermayer <michael@niedermayer.cc> Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
2016-05-04cosmetics: Fix spelling mistakesVittorio Giovara
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-04-24h264: factor out calculating the POC count into a separate fileAnton Khirnov
This will allow decoupling the parser from the decoder.
2016-04-24h264: decouple h264_ps from the h264 decoderAnton Khirnov
Make the SPS/PPS parsing independent of the H264Context, to allow decoupling the parser from the decoder. The change is modelled after the one done earlier for HEVC. Move the dequant buffers to the PPS to avoid complex checks whether they changed and an expensive copy for frame threads.
2015-04-29Merge commit 'a0f2946068c62e18cb05ac25c0df3d86077251a6'Michael Niedermayer
* 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>
2015-04-29h264: use properly allocated AVFramesAnton Khirnov
2015-03-21Merge commit '95eb35f30513e335990ad0d5dca6ddc318477291'Michael Niedermayer
* 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>
2015-03-21h264: move the ref lists variables into the per-slice contextAnton Khirnov
2014-12-27Merge commit '737d35e33408263c04d7730f5487eed0d04938ba'Michael Niedermayer
* commit '737d35e33408263c04d7730f5487eed0d04938ba': vdpau: add support for the H.264 High 4:4:4 Predictive profile Conflicts: libavcodec/vdpau_internal.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-25vdpau: add support for the H.264 High 4:4:4 Predictive profileRémi Denis-Courmont
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-12-15Merge commit '559fa0d41b5cf8f7e1ba89d1ac70e74712eb2816'Michael Niedermayer
* commit '559fa0d41b5cf8f7e1ba89d1ac70e74712eb2816': vdpau: add mapping for H.264 Constrained Baseline profile and fallback Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-15Merge commit '8502c1e9ff9c1dbb6e467630c048d098f4064021'Michael Niedermayer
* commit '8502c1e9ff9c1dbb6e467630c048d098f4064021': vdpau: add mapping for H.264 Extended profile Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-14vdpau: add mapping for H.264 Constrained Baseline profile and fallbackRémi Denis-Courmont
Old VDPAU drivers do not support this newly defined profile, so falling back to Main profile is necessary for backward binary compatibility. Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-12-14vdpau: add mapping for H.264 Extended profileRémi Denis-Courmont
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-28Merge commit '26ab504ad8d2b23535c9a0ad43bf1fd0e6aa0893'Michael Niedermayer
* commit '26ab504ad8d2b23535c9a0ad43bf1fd0e6aa0893': vdpau/h264: request MAIN rather than BASELINE VDPAU profile for CBP Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-28vdpau/h264: request MAIN rather than BASELINE VDPAU profile for CBPRémi Denis-Courmont
The H.264 Constrained Baseline Profile (CBP) is a subset of both the Main Profile and the Baseline Profile. In principles, a hardware decoder that supports either of those can decode CBP content. As it happens, Main is supported by all VDPAU drivers, and Baseline is not. So favor map CBP to MP for now. Hopefully in the future libvdpau will offer an explicit choice for CBP. This fixes bug 757. Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-06Merge commit '89ac99ba5f2dc9f69ad3bc294753930eb0b3e4a4'Michael Niedermayer
* commit '89ac99ba5f2dc9f69ad3bc294753930eb0b3e4a4': vdpau: pass codec-specific parameters from hwaccel Conflicts: libavcodec/vdpau.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06Merge commit 'fcc1022611f79c2f3aa2f392a5ce14c74be9c1d7'Michael Niedermayer
* commit 'fcc1022611f79c2f3aa2f392a5ce14c74be9c1d7': vdpau: factor out common end-of-frame handling Conflicts: libavcodec/vdpau.c libavcodec/vdpau_h264.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-05vdpau: pass codec-specific parameters from hwaccelRémi Denis-Courmont
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-10-05vdpau: factor out common end-of-frame handlingRémi Denis-Courmont
Also add error handling. Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-12Merge commit 'a871ef0cc936612bdb0e643196be72efcf0c8986'Michael Niedermayer
* commit 'a871ef0cc936612bdb0e643196be72efcf0c8986': hwaccel: Rename priv_data_size to frame_priv_data_size Conflicts: libavcodec/avcodec.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11hwaccel: Rename priv_data_size to frame_priv_data_sizeAnton Khirnov
This describes more accurately what this field is for.
2014-03-21Merge commit '7948a51b5c3d08e1a1173442a7ff72b220def303'Michael Niedermayer
* commit '7948a51b5c3d08e1a1173442a7ff72b220def303': vdpau: don't assume Picture and H264Picture are the same Conflicts: libavcodec/vdpau.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20vdpau: switch ff_vdpau_get_surface_id from Picture to AVFramewm4
This gets rid of aliasing completely unrelated structs to Picture. Fixes the remaining compilation warnings in the vdpau code. Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20vdpau: don't assume Picture and H264Picture are the samewm4
The code passed H264Picture* and Picture*, and assumed the hwaccel_picture_private field was in the same place in both structs. Somehow this happened to work in Libav, but broke in FFmpeg (and probably subtly breaks in Libav too). Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-17avcodec/vdpau: fix ff_vdpau_get_surface_id() argument after H264PictureMichael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17Merge commit 'e0c16e4e3259cf50b5bac4c23bb6e517f397c74b'Michael Niedermayer
* commit 'e0c16e4e3259cf50b5bac4c23bb6e517f397c74b': mpegvideo: move mpegvideo formats-related defines to mpegutils.h Conflicts: libavcodec/h264_cabac.c libavcodec/h264_cavlc.c libavcodec/h264_mvpred.h libavcodec/svq1enc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17Merge commit '9b749c8274f6b6f35dde2cf29b99fa4f719abf87'Michael Niedermayer
* commit '9b749c8274f6b6f35dde2cf29b99fa4f719abf87': h264: move relevant fields from Picture to H264Picture Conflicts: libavcodec/h264.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17mpegvideo: move mpegvideo formats-related defines to mpegutils.hVittorio Giovara
2014-03-17h264: move relevant fields from Picture to H264PictureVittorio Giovara
2014-01-11vdpau: restore compatibility with deprecated fields in AVVDPAUContextHendrik Leppkes
Fixes ticket #3133. Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com> Tested-by: EricV Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-11Make new VDPAU easier to use by adding context to callback.Reimar Döffinger
Using VDPAU correctly means checking for preemption and possibly regenerating the context all the time. With the current API there is no context or other user-defined pointer and thus this in not possible during decoding unless using some hack like global variables. The need to reinitialize both surfaces and even function pointers makes handling preemption even more difficult. This patch introduces a new render2 function that gets both the AVCodecContext and AVFrame in addition, in both the user can store additional opaque data. This allows even advanced approaches like keeping a "generation counter" for the surfaces so they can be regenerated on the fly and efficiently. In addition, the function has a return value that will be passed through all the way instead of being silently ignored as for the current render function. Unfortunately the HWAccel API has no way of providing API/ABI compatibility, so a currently disallowed state (render pointer being NULL) is used to extend it. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-08-06Merge commit '2852740e23f91d6775714d7cc29b9a73e1111ce0'Michael Niedermayer
* commit '2852740e23f91d6775714d7cc29b9a73e1111ce0': vdpau: store picture data in picture's rather than codec's context Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-05vdpau: store picture data in picture's rather than codec's contextRémi Denis-Courmont
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-12Merge commit '759001c534287a96dc96d1e274665feb7059145d'Michael Niedermayer
* commit '759001c534287a96dc96d1e274665feb7059145d': lavc decoders: work with refcounted frames. Anton Khirnov (1): lavc decoders: work with refcounted frames. Clément Bœsch (47): lavc/ansi: reset file lavc/ansi: re-do refcounted frame changes from Anton fraps: reset file lavc/fraps: switch to refcounted frames gifdec: reset file lavc/gifdec: switch to refcounted frames dsicinav: resolve conflicts smc: resolve conflicts zmbv: resolve conflicts rpza: resolve conflicts vble: resolve conflicts xxan: resolve conflicts targa: resolve conflicts vmnc: resolve conflicts utvideodec: resolve conflicts tscc: resolve conflicts ulti: resolve conflicts ffv1dec: resolve conflicts dnxhddec: resolve conflicts v210dec: resolve conflicts vp3: resolve conflicts vcr1: resolve conflicts v210x: resolve conflicts wavpack: resolve conflicts pngdec: fix compilation roqvideodec: resolve conflicts pictordec: resolve conflicts mdec: resolve conflicts tiertexseqv: resolve conflicts smacker: resolve conflicts vb: resolve conflicts vqavideo: resolve conflicts xl: resolve conflicts tmv: resolve conflicts vmdav: resolve conflicts truemotion1: resolve conflicts truemotion2: resolve conflicts lcldec: fix compilation libcelt_dec: fix compilation qdrw: fix compilation r210dec: fix compilation rl2: fix compilation wnv1: fix compilation yop: fix compilation tiff: resolve conflicts interplayvideo: fix compilation qpeg: resolve conflicts (FIXME/TESTME). Hendrik Leppkes (33): 012v: convert to refcounted frames 8bps: fix compilation 8svx: resolve conflicts 4xm: resolve conflicts aasc: resolve conflicts bfi: fix compilation aura: fix compilation alsdec: resolve conflicts avrndec: convert to refcounted frames avuidec: convert to refcounted frames bintext: convert to refcounted frames cavsdec: resolve conflicts brender_pix: convert to refcounted frames cinepak: resolve conflicts cinepak: avoid using AVFrame struct directly in private context cljr: fix compilation cpia: convert to refcounted frames cscd: resolve conflicts iff: resolve conflicts and do proper conversion to refcounted frames 4xm: fix reference frame handling cyuv: fix compilation dxa: fix compilation eacmv: fix compilation eamad: fix compilation eatgv: fix compilation escape124: remove unused variable. escape130: convert to refcounted frames evrcdec: convert to refcounted frames exr: convert to refcounted frames mvcdec: convert to refcounted frames paf: properly free the frame data on decode close sgirle: convert to refcounted frames lavfi/moviesrc: use refcounted frames Michael Niedermayer (56): Merge commit '759001c534287a96dc96d1e274665feb7059145d' resolve conflicts in headers motion_est: resolve conflict mpeg4videodec: fix conflicts dpcm conflict fix dpx: fix conflicts indeo3: resolve confilcts kmvc: resolve conflicts kmvc: resolve conflicts h264: resolve conflicts utils: resolve conflicts rawdec: resolve conflcits mpegvideo: resolve conflicts svq1enc: resolve conflicts mpegvideo: dont clear data, fix assertion failure on fate vsynth1 with threads pthreads: resolve conflicts frame_thread_encoder: simple compilefix not yet tested snow: update to buffer refs crytsalhd: fix compile dirac: switch to new API sonic: update to new API svq1: resolve conflict, update to new API ffwavesynth: update to new buffer API g729: update to new API indeo5: fix compile j2kdec: update to new buffer API linopencore-amr: fix compile libvorbisdec: update to new API loco: fix compile paf: update to new API proresdec: update to new API vp56: update to new api / resolve conflicts xface: convert to refcounted frames xan: fix compile&fate v408: update to ref counted buffers v308: update to ref counted buffers yuv4dec: update to ref counted buffers y41p: update to ref counted frames xbm: update to refcounted frames targa_y216: update to refcounted buffers qpeg: fix fate/crash cdxl: fix fate tscc: fix reget buffer useage targa_y216dec: fix style msmpeg4: fix fate h264: ref_picture() copy fields that have been lost too update_frame_pool: use channel field h264: Put code that prevents deadlocks back mpegvideo: dont allow last == current wmalossless: fix buffer ref messup ff_alloc_picture: free tables in case of dimension mismatches h264: fix null pointer dereference and assertion failure frame_thread_encoder: update to bufrefs ec: fix used arrays snowdec: fix off by 1 error in dimensions check h264: disallow single unpaired fields as references of frames Paul B Mahol (2): lavc/vima: convert to refcounted frames sanm: convert to refcounted frames Conflicts: libavcodec/4xm.c libavcodec/8bps.c libavcodec/8svx.c libavcodec/aasc.c libavcodec/alsdec.c libavcodec/anm.c libavcodec/ansi.c libavcodec/avs.c libavcodec/bethsoftvideo.c libavcodec/bfi.c libavcodec/c93.c libavcodec/cavsdec.c libavcodec/cdgraphics.c libavcodec/cinepak.c libavcodec/cljr.c libavcodec/cscd.c libavcodec/dnxhddec.c libavcodec/dpcm.c libavcodec/dpx.c libavcodec/dsicinav.c libavcodec/dvdec.c libavcodec/dxa.c libavcodec/eacmv.c libavcodec/eamad.c libavcodec/eatgq.c libavcodec/eatgv.c libavcodec/eatqi.c libavcodec/error_resilience.c libavcodec/escape124.c libavcodec/ffv1.h libavcodec/ffv1dec.c libavcodec/flicvideo.c libavcodec/fraps.c libavcodec/frwu.c libavcodec/g723_1.c libavcodec/gifdec.c libavcodec/h264.c libavcodec/h264.h libavcodec/h264_direct.c libavcodec/h264_loopfilter.c libavcodec/h264_refs.c libavcodec/huffyuvdec.c libavcodec/idcinvideo.c libavcodec/iff.c libavcodec/indeo2.c libavcodec/indeo3.c libavcodec/internal.h libavcodec/interplayvideo.c libavcodec/ivi_common.c libavcodec/jvdec.c libavcodec/kgv1dec.c libavcodec/kmvc.c libavcodec/lagarith.c libavcodec/libopenjpegdec.c libavcodec/mdec.c libavcodec/mimic.c libavcodec/mjpegbdec.c libavcodec/mjpegdec.c libavcodec/mmvideo.c libavcodec/motion_est.c libavcodec/motionpixels.c libavcodec/mpc7.c libavcodec/mpeg12.c libavcodec/mpeg4videodec.c libavcodec/mpegvideo.c libavcodec/mpegvideo.h libavcodec/msrle.c libavcodec/msvideo1.c libavcodec/nuv.c libavcodec/options_table.h libavcodec/pcx.c libavcodec/pictordec.c libavcodec/pngdec.c libavcodec/pnmdec.c libavcodec/pthread.c libavcodec/qpeg.c libavcodec/qtrle.c libavcodec/r210dec.c libavcodec/rawdec.c libavcodec/roqvideodec.c libavcodec/rpza.c libavcodec/smacker.c libavcodec/smc.c libavcodec/svq1dec.c libavcodec/svq1enc.c libavcodec/targa.c libavcodec/tiertexseqv.c libavcodec/tiff.c libavcodec/tmv.c libavcodec/truemotion1.c libavcodec/truemotion2.c libavcodec/tscc.c libavcodec/ulti.c libavcodec/utils.c libavcodec/utvideodec.c libavcodec/v210dec.c libavcodec/v210x.c libavcodec/vb.c libavcodec/vble.c libavcodec/vcr1.c libavcodec/vmdav.c libavcodec/vmnc.c libavcodec/vp3.c libavcodec/vp56.c libavcodec/vp56.h libavcodec/vp6.c libavcodec/vqavideo.c libavcodec/wavpack.c libavcodec/xl.c libavcodec/xxan.c libavcodec/zmbv.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-08lavc decoders: work with refcounted frames.Anton Khirnov
2013-02-17Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: h264: deMpegEncContextize Conflicts: libavcodec/dxva2_h264.c libavcodec/h264.c libavcodec/h264.h libavcodec/h264_cabac.c libavcodec/h264_cavlc.c libavcodec/h264_loopfilter.c libavcodec/h264_mb_template.c libavcodec/h264_parser.c libavcodec/h264_ps.c libavcodec/h264_refs.c libavcodec/h264_sei.c libavcodec/svq3.c Merged-by: Michael Niedermayer <michaelni@gmx.at>