Revision 70e0c871 libavcodec/h263dec.c
libavcodec/h263dec.c | ||
---|---|---|
32 | 32 |
#include "h263_parser.h" |
33 | 33 |
#include "mpeg4video_parser.h" |
34 | 34 |
#include "msmpeg4.h" |
35 |
#include "vdpau_internal.h" |
|
35 | 36 |
|
36 | 37 |
//#define DEBUG |
37 | 38 |
//#define PRINT_FRAME_TIME |
... | ... | |
621 | 622 |
if(MPV_frame_start(s, avctx) < 0) |
622 | 623 |
return -1; |
623 | 624 |
|
625 |
if (CONFIG_MPEG4_VDPAU_DECODER && (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)) { |
|
626 |
ff_vdpau_mpeg4_decode_picture(s, buf, buf_size); |
|
627 |
goto frame_end; |
|
628 |
} |
|
629 |
|
|
624 | 630 |
if (avctx->hwaccel) { |
625 | 631 |
if (avctx->hwaccel->start_frame(avctx, buf, buf_size) < 0) |
626 | 632 |
return -1; |
... | ... | |
695 | 701 |
intrax8_decoded: |
696 | 702 |
ff_er_frame_end(s); |
697 | 703 |
|
704 |
frame_end: |
|
698 | 705 |
if (avctx->hwaccel) { |
699 | 706 |
if (avctx->hwaccel->end_frame(avctx) < 0) |
700 | 707 |
return -1; |
... | ... | |
835 | 842 |
.long_name= NULL_IF_CONFIG_SMALL("Flash Video (FLV) / Sorenson Spark / Sorenson H.263"), |
836 | 843 |
.pix_fmts= ff_pixfmt_list_420, |
837 | 844 |
}; |
845 |
|
|
846 |
#if CONFIG_MPEG4_VDPAU_DECODER |
|
847 |
AVCodec mpeg4_vdpau_decoder = { |
|
848 |
"mpeg4_vdpau", |
|
849 |
CODEC_TYPE_VIDEO, |
|
850 |
CODEC_ID_MPEG4, |
|
851 |
sizeof(MpegEncContext), |
|
852 |
ff_h263_decode_init, |
|
853 |
NULL, |
|
854 |
ff_h263_decode_end, |
|
855 |
ff_h263_decode_frame, |
|
856 |
CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU, |
|
857 |
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 (VDPAU)"), |
|
858 |
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_VDPAU_MPEG4, PIX_FMT_NONE}, |
|
859 |
}; |
|
860 |
#endif |
Also available in: Unified diff