mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
Merge commit 'ca22d1dea2842fca0422dd1d2bd09e7eb2c8f118'
* commit 'ca22d1dea2842fca0422dd1d2bd09e7eb2c8f118': vdpau: add a convenience function for getting a decoder profile. Conflicts: doc/APIchanges libavcodec/vdpau.c libavcodec/vdpau.h libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
5f231d909f
@ -15,6 +15,9 @@ libavutil: 2012-10-22
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2013-11-xx - xxxxxxx - lavc 55.26.0 - vdpau.h
|
||||
Add av_vdpau_get_profile().
|
||||
|
||||
2013-11-xx - xxxxxxx - lavc 55.41.100 / 55.25.0 - avcodec.h
|
||||
lavu 52.51.100 - frame.h
|
||||
Add ITU-R BT.2020 and other not yet included values to color primaries,
|
||||
|
@ -438,4 +438,47 @@ void ff_vdpau_mpeg4_decode_picture(MpegEncContext *s, const uint8_t *buf,
|
||||
}
|
||||
#endif /* CONFIG_MPEG4_VDPAU_DECODER */
|
||||
|
||||
int av_vdpau_get_profile(AVCodecContext *avctx, VdpDecoderProfile *profile)
|
||||
{
|
||||
#define PROFILE(prof) \
|
||||
do { \
|
||||
*profile = prof; \
|
||||
return 0; \
|
||||
} while (0)
|
||||
|
||||
switch (avctx->codec_id) {
|
||||
case AV_CODEC_ID_MPEG1VIDEO: PROFILE(VDP_DECODER_PROFILE_MPEG1);
|
||||
case AV_CODEC_ID_MPEG2VIDEO:
|
||||
switch (avctx->profile) {
|
||||
case FF_PROFILE_MPEG2_MAIN: PROFILE(VDP_DECODER_PROFILE_MPEG2_MAIN);
|
||||
case FF_PROFILE_MPEG2_SIMPLE: PROFILE(VDP_DECODER_PROFILE_MPEG2_SIMPLE);
|
||||
default: return AVERROR(EINVAL);
|
||||
}
|
||||
case AV_CODEC_ID_H263: PROFILE(VDP_DECODER_PROFILE_MPEG4_PART2_ASP);
|
||||
case AV_CODEC_ID_MPEG4:
|
||||
switch (avctx->profile) {
|
||||
case FF_PROFILE_MPEG4_SIMPLE: PROFILE(VDP_DECODER_PROFILE_MPEG4_PART2_SP);
|
||||
case FF_PROFILE_MPEG4_ADVANCED_SIMPLE: PROFILE(VDP_DECODER_PROFILE_MPEG4_PART2_ASP);
|
||||
default: return AVERROR(EINVAL);
|
||||
}
|
||||
case AV_CODEC_ID_H264:
|
||||
switch (avctx->profile) {
|
||||
case FF_PROFILE_H264_CONSTRAINED_BASELINE:
|
||||
case FF_PROFILE_H264_BASELINE: PROFILE(VDP_DECODER_PROFILE_H264_BASELINE);
|
||||
case FF_PROFILE_H264_MAIN: PROFILE(VDP_DECODER_PROFILE_H264_MAIN);
|
||||
case FF_PROFILE_H264_HIGH: PROFILE(VDP_DECODER_PROFILE_H264_HIGH);
|
||||
default: return AVERROR(EINVAL);
|
||||
}
|
||||
case AV_CODEC_ID_WMV3:
|
||||
case AV_CODEC_ID_VC1:
|
||||
switch (avctx->profile) {
|
||||
case FF_PROFILE_VC1_SIMPLE: PROFILE(VDP_DECODER_PROFILE_VC1_SIMPLE);
|
||||
case FF_PROFILE_VC1_MAIN: PROFILE(VDP_DECODER_PROFILE_VC1_MAIN);
|
||||
case FF_PROFILE_VC1_ADVANCED: PROFILE(VDP_DECODER_PROFILE_VC1_ADVANCED);
|
||||
default: return AVERROR(EINVAL);
|
||||
}
|
||||
}
|
||||
return AVERROR(EINVAL);
|
||||
}
|
||||
|
||||
/* @}*/
|
||||
|
@ -53,6 +53,8 @@
|
||||
#include <vdpau/vdpau_x11.h>
|
||||
#include "libavutil/avconfig.h"
|
||||
#include "libavutil/attributes.h"
|
||||
|
||||
#include "avcodec.h"
|
||||
#include "version.h"
|
||||
|
||||
#if FF_API_BUFS_VDPAU
|
||||
@ -143,6 +145,19 @@ AVVDPAUContext *av_alloc_vdpaucontext(void);
|
||||
AVVDPAU_Render2 av_vdpau_hwaccel_get_render2(const AVVDPAUContext *);
|
||||
void av_vdpau_hwaccel_set_render2(AVVDPAUContext *, AVVDPAU_Render2);
|
||||
|
||||
/**
|
||||
* Get a decoder profile that should be used for initializing a VDPAU decoder.
|
||||
* Should be called from the AVCodecContext.get_format() callback.
|
||||
*
|
||||
* @param avctx the codec context being used for decoding the stream
|
||||
* @param profile a pointer into which the result will be written on success.
|
||||
* The contents of profile are undefined if this function returns
|
||||
* an error.
|
||||
*
|
||||
* @return 0 on success (non-negative), a negative AVERROR on failure.
|
||||
*/
|
||||
int av_vdpau_get_profile(AVCodecContext *avctx, VdpDecoderProfile *profile);
|
||||
|
||||
#if FF_API_CAP_VDPAU
|
||||
/** @brief The videoSurface is used for rendering. */
|
||||
#define FF_VDPAU_STATE_USED_FOR_RENDER 1
|
||||
|
@ -29,8 +29,8 @@
|
||||
#include "libavutil/avutil.h"
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 55
|
||||
#define LIBAVCODEC_VERSION_MINOR 41
|
||||
#define LIBAVCODEC_VERSION_MICRO 101
|
||||
#define LIBAVCODEC_VERSION_MINOR 42
|
||||
#define LIBAVCODEC_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
LIBAVCODEC_VERSION_MINOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user