summaryrefslogtreecommitdiff
path: root/libavcodec/vdpau_mpeg4.c
Commit message (Collapse)AuthorAge
* lavc: Rename hwaccel.h to hwconfig.hMark Thompson2020-04-26
| | | | | This already applied to decoders as well as hwaccels, and adding encoder support was going to make the name even more inaccurate.
* lavc: Mark all AVHWAccel structures as constMark Thompson2017-11-26
|
* Merge commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24'James Almer2017-11-11
|\ | | | | | | | | | | | | | | | | * commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24': lavc: external hardware frame pool initialization Includes the fix from e724bdfffbd3c27aac53d1f32f20f105f37caef0 Merged-by: James Almer <jamrial@gmail.com>
| * lavc: external hardware frame pool initializationwm42017-10-19
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * pthread_frame: do not run hwaccel decoding asynchronously unless it's safeAnton Khirnov2016-12-19
| | | | | | | | | | | | | | | | | | | | 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).
* | pthread_frame: do not run hwaccel decoding asynchronously unless it's safeAnton Khirnov2017-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge commit 'd35d0c723e3c8fc8cde76bf677f67928f5e179a8'Hendrik Leppkes2015-11-02
|\| | | | | | | | | | | | | * commit 'd35d0c723e3c8fc8cde76bf677f67928f5e179a8': vdpau: remove dysfunctional H.263 support Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * vdpau: remove dysfunctional H.263 supportRémi Denis-Courmont2015-10-30
| | | | | | | | | | | | The VDPAU API never explicitly supported H.263 in the first place. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | vdpau_mpeg4: Do not fail on unknown profile.Reimar Döffinger2014-11-05
| | | | | | | | | | | | | | | | | | This is a regression, previous code did not require users to set the profile to use VDPAU. In addition, ASP is a superset of SP, so there is not even a good reason to require it. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* | Merge commit '7ea1b3472a61de4aa4d41b571e99418e4997ad41'Michael Niedermayer2014-10-15
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '7ea1b3472a61de4aa4d41b571e99418e4997ad41': lavc: deprecate the use of AVCodecContext.time_base for decoding Conflicts: libavcodec/avcodec.h libavcodec/h264.c libavcodec/mpegvideo_parser.c libavcodec/utils.c libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lavc: deprecate the use of AVCodecContext.time_base for decodingAnton Khirnov2014-10-15
| | | | | | | | | | | | | | | | | | | | | | When decoding, this field holds the inverse of the framerate that can be written in the headers for some codecs. Using a field called 'time_base' for this is very misleading, as there are no timestamps associated with it. Furthermore, this field is used for a very different purpose during encoding. Add a new field, called 'framerate', to replace the use of time_base for decoding.
* | Merge commit '89ac99ba5f2dc9f69ad3bc294753930eb0b3e4a4'Michael Niedermayer2014-10-06
|\| | | | | | | | | | | | | | | | | | | * commit '89ac99ba5f2dc9f69ad3bc294753930eb0b3e4a4': vdpau: pass codec-specific parameters from hwaccel Conflicts: libavcodec/vdpau.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * vdpau: pass codec-specific parameters from hwaccelRémi Denis-Courmont2014-10-05
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit 'a871ef0cc936612bdb0e643196be72efcf0c8986'Michael Niedermayer2014-05-11
|\| | | | | | | | | | | | | | | | | | | * commit 'a871ef0cc936612bdb0e643196be72efcf0c8986': hwaccel: Rename priv_data_size to frame_priv_data_size Conflicts: libavcodec/avcodec.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * hwaccel: Rename priv_data_size to frame_priv_data_sizeAnton Khirnov2014-05-11
| | | | | | | | This describes more accurately what this field is for.
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2014-04-09
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: mpegvideo: operate with pointers to AVFrames instead of whole structs Conflicts: libavcodec/h261dec.c libavcodec/h263dec.c libavcodec/intrax8.c libavcodec/mpeg12enc.c libavcodec/mpegvideo.c libavcodec/mpegvideo.h libavcodec/mpegvideo_enc.c libavcodec/mpegvideo_motion.c libavcodec/mpegvideo_xvmc.c libavcodec/msmpeg4.c libavcodec/ratecontrol.c libavcodec/vaapi.c libavcodec/vc1dec.c libavcodec/vdpau_vc1.c See: fc567ac49e17151f00f31b59030cd10f952612ef Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mpegvideo: operate with pointers to AVFrames instead of whole structswm42014-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | The most interesting parts are initialization in ff_MPV_common_init() and uninitialization in ff_MPV_common_end(). ff_mpeg_unref_picture and ff_thread_release_buffer have additional NULL checks for Picture.f, because these functions can be called on uninitialized or partially initialized Pictures. NULL pointer checks are added to ff_thread_release_buffer() stub function. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
| * vdpau: switch ff_vdpau_get_surface_id from Picture to AVFramewm42014-03-20
| | | | | | | | | | | | | | | | 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>
* | Merge commit '7948a51b5c3d08e1a1173442a7ff72b220def303'Michael Niedermayer2014-03-20
|\| | | | | | | | | | | | | | | | | | | * commit '7948a51b5c3d08e1a1173442a7ff72b220def303': vdpau: don't assume Picture and H264Picture are the same Conflicts: libavcodec/vdpau.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * vdpau: don't assume Picture and H264Picture are the samewm42014-03-20
| | | | | | | | | | | | | | | | | | 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>
* | avcodec/vdpau: fix ff_vdpau_get_surface_id() argument after H264PictureMichael Niedermayer2014-03-17
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '48e139409556861c9e561ce34133891d8eecc3cf'Michael Niedermayer2013-11-30
|\| | | | | | | | | | | | | * commit '48e139409556861c9e561ce34133891d8eecc3cf': mpeg4videodec: move MpegEncContext.resync_marker into Mpeg4DecContext. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mpeg4videodec: move MpegEncContext.resync_marker into Mpeg4DecContext.Anton Khirnov2013-11-29
| |
* | Merge commit '2852740e23f91d6775714d7cc29b9a73e1111ce0'Michael Niedermayer2013-08-06
|\| | | | | | | | | | | | | * commit '2852740e23f91d6775714d7cc29b9a73e1111ce0': vdpau: store picture data in picture's rather than codec's context Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * vdpau: store picture data in picture's rather than codec's contextRémi Denis-Courmont2013-08-05
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-02-16
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
| * h264: deMpegEncContextizeAnton Khirnov2013-02-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the changes are just trivial are just trivial replacements of fields from MpegEncContext with equivalent fields in H264Context. Everything in h264* other than h264.c are those trivial changes. The nontrivial parts are: 1) extracting a simplified version of the frame management code from mpegvideo.c. We don't need last/next_picture anymore, since h264 uses its own more complex system already and those were set only to appease the mpegvideo parts. 2) some tables that need to be allocated/freed in appropriate places. 3) hwaccels -- mostly trivial replacements. for dxva, the draw_horiz_band() call is moved from ff_dxva2_common_end_frame() to per-codec end_frame() callbacks, because it's now different for h264 and MpegEncContext-based decoders. 4) svq3 -- it does not use h264 complex reference system, so I just added some very simplistic frame management instead and dropped the use of ff_h264_frame_start(). Because of this I also had to move some initialization code to svq3. Additional fixes for chroma format and bit depth changes by Janne Grunau <janne-libav@jannau.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit '200e8ac92007bc2fe30da05d3bd00ab620842a6b'Michael Niedermayer2013-01-14
|/ | | | | | | | | | | | | * commit '200e8ac92007bc2fe30da05d3bd00ab620842a6b': vdpau: Add MPEG-4 decoding via hwaccel infrastructure vdpau: Add MPEG-1/2 decoding via hwaccel infrastructure Conflicts: configure libavcodec/Makefile libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
* vdpau: Add MPEG-4 decoding via hwaccel infrastructureRémi Denis-Courmont2013-01-13
Signed-off-by: Diego Biurrun <diego@biurrun.de>