Go to the documentation of this file. 1 #ifndef MYTH_CODEC_ID_H
2 #define MYTH_CODEC_ID_H
7 #include "libavcodec/avcodec.h"
293 #define codec_is_std(id) ((id) < kCodec_NORMAL_END)
294 #define codec_is_std_mpeg(id) ((id) == kCodec_MPEG1 || (id) == kCodec_MPEG2)
296 #define codec_is_drmprime(id) (((id) > kCodec_DRMPRIME_BEGIN) && \
297 ((id) < kCodec_DRMPRIME_END))
298 #define codec_is_vdpau(id) (((id) > kCodec_VDPAU_BEGIN) && \
299 ((id) < kCodec_VDPAU_END))
300 #define codec_is_vdpau_hw(id) ((codec_is_vdpau(id) && \
301 ((id) != kCodec_H263_VDPAU) && \
302 ((id) != kCodec_VP8_VDPAU) && \
303 ((id) != kCodec_VP9_VDPAU)))
304 #define codec_is_vdpau_dec(id)(((id) > kCodec_VDPAU_DEC_BEGIN) && \
305 ((id) < kCodec_VDPAU_DEC_END))
306 #define codec_is_vdpau_dechw(id) ((codec_is_vdpau_dec(id) && \
307 ((id) != kCodec_H263_VDPAU_DEC) && \
308 ((id) != kCodec_VP8_VDPAU_DEC) && \
309 ((id) != kCodec_VP9_VDPAU)))
311 #define codec_is_vaapi(id) (((id) > kCodec_VAAPI_BEGIN) && \
312 ((id) < kCodec_VAAPI_END))
313 #define codec_is_vaapi_dec(id)(((id) > kCodec_VAAPI_DEC_BEGIN) && \
314 ((id) < kCodec_VAAPI_DEC_END))
316 #define codec_is_dxva2(id) (((id) > kCodec_DXVA2_BEGIN) && \
317 ((id) < kCodec_DXVA2_END))
318 #define codec_is_dxva2_hw(id) (codec_is_dxva2(id) && \
319 (((id) == kCodec_H264_DXVA2) || \
320 ((id) == kCodec_MPEG2_DXVA2) || \
321 ((id) == kCodec_VC1_DXVA2)))
323 #define codec_is_mediacodec(id)(((id) > kCodec_MEDIACODEC_BEGIN) && \
324 ((id) < kCodec_MEDIACODEC_END))
325 #define codec_is_mediacodec_dec(id) (((id) > kCodec_MEDIACODEC_DEC_BEGIN) && \
326 ((id) < kCodec_MEDIACODEC_DEC_END))
328 #define codec_is_nvdec(id) (((id) > kCodec_NVDEC_BEGIN) && \
329 ((id) < kCodec_NVDEC_END))
330 #define codec_is_nvdec_dec(id)(((id) > kCodec_NVDEC_DEC_BEGIN) && \
331 ((id) < kCodec_NVDEC_DEC_END))
333 #define codec_is_vtb(id) (((id) > kCodec_VTB_BEGIN) && \
334 ((id) < kCodec_VTB_END))
335 #define codec_is_vtb_dec(id) (((id) > kCodec_VTB_DEC_BEGIN) && \
336 ((id) < kCodec_VTB_DEC_END))
338 #define codec_is_v4l2(id) (((id) > kCodec_V4L2_BEGIN) && ((id) < kCodec_V4L2_END))
339 #define codec_is_v4l2_dec(id) (((id) > kCodec_V4L2_DEC_BEGIN) && ((id) < kCodec_V4L2_DEC_END))
341 #define codec_is_mmal(id) (((id) > kCodec_MMAL_BEGIN) && ((id) < kCodec_MMAL_END))
342 #define codec_is_mmal_dec(id) (((id) > kCodec_MMAL_DEC_BEGIN) && ((id) < kCodec_MMAL_DEC_END))
344 #define codec_is_copyback(id) (codec_is_mediacodec_dec(id) || \
345 codec_is_vaapi_dec(id) || codec_is_nvdec_dec(id) || \
346 codec_is_vtb_dec(id) || codec_is_vdpau_dec(id) || \
347 codec_is_v4l2_dec(id) || codec_is_mmal_dec(id))
349 #define codec_sw_copy(id) (codec_is_std(id) || codec_is_copyback(id))
358 #define CODEC_IS_H264(id) (mpeg_version(id) == 5)
359 #define CODEC_IS_MPEG(id) (mpeg_version(id) && mpeg_version(id) <= 2)
360 #define CODEC_IS_FFMPEG_MPEG(id) (CODEC_IS_MPEG(id))
362 #define CODEC_IS_VDPAU(codec, enc) ((codec) && ((enc)->pix_fmt == AV_PIX_FMT_VDPAU))
364 #define CODEC_IS_VDPAU(codec) (0)
368 #define CODEC_IS_VAAPI(codec, enc) ((codec) && ((enc)->pix_fmt == AV_PIX_FMT_VAAPI))
370 #define CODEC_IS_VAAPI(codec, enc) (0)
374 #define CODEC_IS_DXVA2(codec, enc) (codec && (enc->pix_fmt == AV_PIX_FMT_DXVA2_VLD))
376 #define CODEC_IS_DXVA2(codec, enc) (0)
379 #ifdef USING_MEDIACODEC
380 #define CODEC_IS_MEDIACODEC(codec) (codec && (QString("mediacodec") == codec->wrapper_name))
382 #define CODEC_IS_MEDIACODEC(codec) (0)
385 #endif // MYTH_CODEC_ID_H
@ kCodec_AV1_MEDIACODEC_DEC
@ kCodec_WMV3_MEDIACODEC_DEC
AVCodecID myth2av_codecid(MythCodecID codec_id)
@ kCodec_H263_MEDIACODEC_DEC
@ kCodec_MPEG2_MEDIACODEC
@ kCodec_MPEG1_MEDIACODEC_DEC
@ kCodec_MPEG4_MEDIACODEC_DEC
@ kCodec_VC1_MEDIACODEC_DEC
@ kCodec_HEVC_MEDIACODEC_DEC
@ kCodec_VP8_MEDIACODEC_DEC
@ kCodec_VP9_MEDIACODEC_DEC
@ kCodec_MPEG2_MEDIACODEC_DEC
QString get_decoder_name(MythCodecID codec_id)
uint mpeg_version(int codec_id)
@ kCodec_MPEG1_MEDIACODEC
@ kCodec_MEDIACODEC_BEGIN
@ kCodec_H264_MEDIACODEC_DEC
@ kCodec_MEDIACODEC_DEC_BEGIN
QString toString(MythCodecID codecid)
@ kCodec_MEDIACODEC_DEC_END
QString get_encoding_type(MythCodecID codecid)
@ kCodec_MPEG4_MEDIACODEC