Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
578ea75a
Commit
578ea75a
authored
Jul 25, 2013
by
Rémi Denis-Courmont
Committed by
Anton Khirnov
Aug 05, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vdpau: remove old-style decoders
Signed-off-by:
Anton Khirnov
<
anton@khirnov.net
>
parent
488a0fa6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
6 additions
and
545 deletions
+6
-545
configure
configure
+0
-11
allcodecs.c
libavcodec/allcodecs.c
+0
-6
error_resilience.c
libavcodec/error_resilience.c
+0
-1
h263dec.c
libavcodec/h263dec.c
+0
-7
h264.c
libavcodec/h264.c
+1
-47
mpeg12.c
libavcodec/mpeg12.c
+0
-1
mpeg12dec.c
libavcodec/mpeg12dec.c
+3
-52
mpeg4videodec.c
libavcodec/mpeg4videodec.c
+0
-18
mpegvideo.c
libavcodec/mpegvideo.c
+0
-2
svq3.c
libavcodec/svq3.c
+0
-1
vc1dec.c
libavcodec/vc1dec.c
+2
-46
vdpau.c
libavcodec/vdpau.c
+0
-336
vdpau_internal.h
libavcodec/vdpau_internal.h
+0
-17
No files found.
configure
View file @
578ea75a
...
...
@@ -1716,14 +1716,8 @@ h264_vaapi_hwaccel_deps="vaapi"
h264_vaapi_hwaccel_select
=
"h264_decoder"
h264_vda_hwaccel_deps
=
"vda"
h264_vda_hwaccel_select
=
"h264_decoder"
h264_vdpau_decoder_deps
=
"vdpau"
h264_vdpau_decoder_select
=
"h264_decoder"
h264_vdpau_hwaccel_deps
=
"vdpau"
h264_vdpau_hwaccel_select
=
"h264_decoder"
mpeg_vdpau_decoder_deps
=
"vdpau"
mpeg_vdpau_decoder_select
=
"mpeg2video_decoder"
mpeg1_vdpau_decoder_deps
=
"vdpau"
mpeg1_vdpau_decoder_select
=
"mpeg1video_decoder"
mpeg1_vdpau_hwaccel_deps
=
"vdpau"
mpeg1_vdpau_hwaccel_select
=
"mpeg1video_decoder"
mpeg2_dxva2_hwaccel_deps
=
"dxva2"
...
...
@@ -1734,21 +1728,16 @@ mpeg2_vdpau_hwaccel_deps="vdpau"
mpeg2_vdpau_hwaccel_select
=
"mpeg2video_decoder"
mpeg4_vaapi_hwaccel_deps
=
"vaapi"
mpeg4_vaapi_hwaccel_select
=
"mpeg4_decoder"
mpeg4_vdpau_decoder_deps
=
"vdpau"
mpeg4_vdpau_decoder_select
=
"mpeg4_decoder"
mpeg4_vdpau_hwaccel_deps
=
"vdpau"
mpeg4_vdpau_hwaccel_select
=
"mpeg4_decoder"
vc1_dxva2_hwaccel_deps
=
"dxva2"
vc1_dxva2_hwaccel_select
=
"vc1_decoder"
vc1_vaapi_hwaccel_deps
=
"vaapi"
vc1_vaapi_hwaccel_select
=
"vc1_decoder"
vc1_vdpau_decoder_deps
=
"vdpau"
vc1_vdpau_decoder_select
=
"vc1_decoder"
vc1_vdpau_hwaccel_deps
=
"vdpau"
vc1_vdpau_hwaccel_select
=
"vc1_decoder"
wmv3_dxva2_hwaccel_select
=
"vc1_dxva2_hwaccel"
wmv3_vaapi_hwaccel_select
=
"vc1_vaapi_hwaccel"
wmv3_vdpau_decoder_select
=
"vc1_vdpau_decoder"
wmv3_vdpau_hwaccel_select
=
"vc1_vdpau_hwaccel"
# parsers
...
...
libavcodec/allcodecs.c
View file @
578ea75a
...
...
@@ -153,7 +153,6 @@ void avcodec_register_all(void)
REGISTER_DECODER
(
H263I
,
h263i
);
REGISTER_ENCODER
(
H263P
,
h263p
);
REGISTER_DECODER
(
H264
,
h264
);
REGISTER_DECODER
(
H264_VDPAU
,
h264_vdpau
);
REGISTER_ENCDEC
(
HUFFYUV
,
huffyuv
);
REGISTER_DECODER
(
IDCIN
,
idcin
);
REGISTER_DECODER
(
IFF_BYTERUN1
,
iff_byterun1
);
...
...
@@ -181,9 +180,6 @@ void avcodec_register_all(void)
REGISTER_ENCDEC
(
MPEG1VIDEO
,
mpeg1video
);
REGISTER_ENCDEC
(
MPEG2VIDEO
,
mpeg2video
);
REGISTER_ENCDEC
(
MPEG4
,
mpeg4
);
REGISTER_DECODER
(
MPEG4_VDPAU
,
mpeg4_vdpau
);
REGISTER_DECODER
(
MPEG_VDPAU
,
mpeg_vdpau
);
REGISTER_DECODER
(
MPEG1_VDPAU
,
mpeg1_vdpau
);
REGISTER_DECODER
(
MSA1
,
msa1
);
REGISTER_DECODER
(
MSMPEG4V1
,
msmpeg4v1
);
REGISTER_ENCDEC
(
MSMPEG4V2
,
msmpeg4v2
);
...
...
@@ -246,7 +242,6 @@ void avcodec_register_all(void)
REGISTER_DECODER
(
VB
,
vb
);
REGISTER_DECODER
(
VBLE
,
vble
);
REGISTER_DECODER
(
VC1
,
vc1
);
REGISTER_DECODER
(
VC1_VDPAU
,
vc1_vdpau
);
REGISTER_DECODER
(
VC1IMAGE
,
vc1image
);
REGISTER_DECODER
(
VCR1
,
vcr1
);
REGISTER_DECODER
(
VMDVIDEO
,
vmdvideo
);
...
...
@@ -261,7 +256,6 @@ void avcodec_register_all(void)
REGISTER_ENCDEC
(
WMV1
,
wmv1
);
REGISTER_ENCDEC
(
WMV2
,
wmv2
);
REGISTER_DECODER
(
WMV3
,
wmv3
);
REGISTER_DECODER
(
WMV3_VDPAU
,
wmv3_vdpau
);
REGISTER_DECODER
(
WMV3IMAGE
,
wmv3image
);
REGISTER_DECODER
(
WNV1
,
wnv1
);
REGISTER_DECODER
(
XAN_WC3
,
xan_wc3
);
...
...
libavcodec/error_resilience.c
View file @
578ea75a
...
...
@@ -824,7 +824,6 @@ void ff_er_frame_end(ERContext *s)
* though it should not crash if enabled. */
if
(
!
s
->
avctx
->
err_recognition
||
s
->
error_count
==
0
||
s
->
avctx
->
hwaccel
||
s
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
||
!
s
->
cur_pic
||
s
->
cur_pic
->
field_picture
||
s
->
error_count
==
3
*
s
->
mb_width
*
(
s
->
avctx
->
skip_top
+
s
->
avctx
->
skip_bottom
))
{
...
...
libavcodec/h263dec.c
View file @
578ea75a
...
...
@@ -34,7 +34,6 @@
#include "h263_parser.h"
#include "mpeg4video_parser.h"
#include "msmpeg4.h"
#include "vdpau_internal.h"
#include "thread.h"
#include "flv.h"
#include "mpeg4video.h"
...
...
@@ -624,11 +623,6 @@ retry:
if
(
!
s
->
divx_packed
&&
!
avctx
->
hwaccel
)
ff_thread_finish_setup
(
avctx
);
if
(
CONFIG_MPEG4_VDPAU_DECODER
&&
(
s
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
))
{
ff_vdpau_mpeg4_decode_picture
(
s
,
s
->
gb
.
buffer
,
s
->
gb
.
buffer_end
-
s
->
gb
.
buffer
);
goto
frame_end
;
}
if
(
avctx
->
hwaccel
)
{
if
(
avctx
->
hwaccel
->
start_frame
(
avctx
,
s
->
gb
.
buffer
,
s
->
gb
.
buffer_end
-
s
->
gb
.
buffer
)
<
0
)
return
-
1
;
...
...
@@ -673,7 +667,6 @@ retry:
}
assert
(
s
->
bitstream_buffer_size
==
0
);
frame_end
:
/* divx 5.01+ bistream reorder stuff */
if
(
s
->
codec_id
==
AV_CODEC_ID_MPEG4
&&
s
->
divx_packed
){
int
current_pos
=
get_bits_count
(
&
s
->
gb
)
>>
3
;
...
...
libavcodec/h264.c
View file @
578ea75a
...
...
@@ -43,7 +43,6 @@
#include "rectangle.h"
#include "svq3.h"
#include "thread.h"
#include "vdpau_internal.h"
// #undef NDEBUG
#include <assert.h>
...
...
@@ -2769,10 +2768,6 @@ static int field_end(H264Context *h, int in_setup)
ff_thread_report_progress
(
&
h
->
cur_pic_ptr
->
tf
,
INT_MAX
,
h
->
picture_structure
==
PICT_BOTTOM_FIELD
);
if
(
CONFIG_H264_VDPAU_DECODER
&&
h
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
ff_vdpau_h264_set_reference_frames
(
h
);
if
(
in_setup
||
!
(
avctx
->
active_thread_type
&
FF_THREAD_FRAME
))
{
if
(
!
h
->
droppable
)
{
err
=
ff_h264_execute_ref_pic_marking
(
h
,
h
->
mmco
,
h
->
mmco_index
);
...
...
@@ -2790,10 +2785,6 @@ static int field_end(H264Context *h, int in_setup)
"hardware accelerator failed to decode picture
\n
"
);
}
if
(
CONFIG_H264_VDPAU_DECODER
&&
h
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
ff_vdpau_h264_picture_complete
(
h
);
/*
* FIXME: Error handling code does not seem to support interlaced
* when slices span multiple rows
...
...
@@ -2897,13 +2888,6 @@ static int h264_set_parameter_from_sps(H264Context *h)
if
(
h
->
avctx
->
bits_per_raw_sample
!=
h
->
sps
.
bit_depth_luma
||
h
->
cur_chroma_format_idc
!=
h
->
sps
.
chroma_format_idc
)
{
if
(
h
->
avctx
->
codec
&&
h
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
&&
(
h
->
sps
.
bit_depth_luma
!=
8
||
h
->
sps
.
chroma_format_idc
>
1
))
{
av_log
(
h
->
avctx
,
AV_LOG_ERROR
,
"VDPAU decoding does not support video colorspace.
\n
"
);
return
AVERROR_INVALIDDATA
;
}
if
(
h
->
sps
.
bit_depth_luma
>=
8
&&
h
->
sps
.
bit_depth_luma
<=
10
)
{
h
->
avctx
->
bits_per_raw_sample
=
h
->
sps
.
bit_depth_luma
;
h
->
cur_chroma_format_idc
=
h
->
sps
.
chroma_format_idc
;
...
...
@@ -4310,8 +4294,7 @@ static int execute_decode_slices(H264Context *h, int context_count)
H264Context
*
hx
;
int
i
;
if
(
h
->
avctx
->
hwaccel
||
h
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
if
(
h
->
avctx
->
hwaccel
)
return
0
;
if
(
context_count
==
1
)
{
return
decode_slice
(
avctx
,
&
h
);
...
...
@@ -4503,9 +4486,6 @@ again:
if
(
h
->
avctx
->
hwaccel
&&
h
->
avctx
->
hwaccel
->
start_frame
(
h
->
avctx
,
NULL
,
0
)
<
0
)
return
-
1
;
if
(
CONFIG_H264_VDPAU_DECODER
&&
h
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
ff_vdpau_h264_picture_start
(
h
);
}
if
(
hx
->
redundant_pic_count
==
0
&&
...
...
@@ -4521,14 +4501,6 @@ again:
&
buf
[
buf_index
-
consumed
],
consumed
)
<
0
)
return
-
1
;
}
else
if
(
CONFIG_H264_VDPAU_DECODER
&&
h
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
{
ff_vdpau_add_data_chunk
(
h
->
cur_pic_ptr
->
f
.
data
[
0
],
start_code
,
sizeof
(
start_code
));
ff_vdpau_add_data_chunk
(
h
->
cur_pic_ptr
->
f
.
data
[
0
],
&
buf
[
buf_index
-
consumed
],
consumed
);
}
else
context_count
++
;
}
...
...
@@ -4809,21 +4781,3 @@ AVCodec ff_h264_decoder = {
.
update_thread_context
=
ONLY_IF_THREADS_ENABLED
(
decode_update_thread_context
),
.
profiles
=
NULL_IF_CONFIG_SMALL
(
profiles
),
};
#if CONFIG_H264_VDPAU_DECODER
AVCodec
ff_h264_vdpau_decoder
=
{
.
name
=
"h264_vdpau"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
id
=
AV_CODEC_ID_H264
,
.
priv_data_size
=
sizeof
(
H264Context
),
.
init
=
ff_h264_decode_init
,
.
close
=
h264_decode_end
,
.
decode
=
decode_frame
,
.
capabilities
=
CODEC_CAP_DR1
|
CODEC_CAP_DELAY
|
CODEC_CAP_HWACCEL_VDPAU
,
.
flush
=
flush_dpb
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)"
),
.
pix_fmts
=
(
const
enum
AVPixelFormat
[])
{
AV_PIX_FMT_VDPAU_H264
,
AV_PIX_FMT_NONE
},
.
profiles
=
NULL_IF_CONFIG_SMALL
(
profiles
),
};
#endif
libavcodec/mpeg12.c
View file @
578ea75a
...
...
@@ -35,7 +35,6 @@
#include "mpeg12data.h"
#include "mpeg12decdata.h"
#include "bytestream.h"
#include "vdpau_internal.h"
#include "xvmc_internal.h"
#include "thread.h"
...
...
libavcodec/mpeg12dec.c
View file @
578ea75a
...
...
@@ -36,7 +36,6 @@
#include "mpeg12data.h"
#include "mpeg12decdata.h"
#include "bytestream.h"
#include "vdpau_internal.h"
#include "xvmc_internal.h"
#include "thread.h"
...
...
@@ -1093,12 +1092,7 @@ static enum AVPixelFormat mpeg_get_pixelformat(AVCodecContext *avctx)
if
(
avctx
->
xvmc_acceleration
)
return
avctx
->
get_format
(
avctx
,
pixfmt_xvmc_mpg2_420
);
else
if
(
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
{
if
(
avctx
->
codec_id
==
AV_CODEC_ID_MPEG1VIDEO
)
return
AV_PIX_FMT_VDPAU_MPEG1
;
else
return
AV_PIX_FMT_VDPAU_MPEG2
;
}
else
{
else
{
if
(
s
->
chroma_format
<
2
)
return
avctx
->
get_format
(
avctx
,
mpeg12_hwaccel_pixfmt_list_420
);
else
if
(
s
->
chroma_format
==
2
)
...
...
@@ -1200,8 +1194,7 @@ static int mpeg_decode_postinit(AVCodecContext *avctx)
avctx
->
hwaccel
=
ff_find_hwaccel
(
avctx
->
codec
->
id
,
avctx
->
pix_fmt
);
// until then pix_fmt may be changed right after codec init
if
(
avctx
->
pix_fmt
==
AV_PIX_FMT_XVMC_MPEG2_IDCT
||
avctx
->
hwaccel
||
s
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
avctx
->
hwaccel
)
if
(
avctx
->
idct_algo
==
FF_IDCT_AUTO
)
avctx
->
idct_algo
=
FF_IDCT_SIMPLE
;
...
...
@@ -1961,8 +1954,7 @@ static int vcr2_init_sequence(AVCodecContext *avctx)
avctx
->
pix_fmt
=
mpeg_get_pixelformat
(
avctx
);
avctx
->
hwaccel
=
ff_find_hwaccel
(
avctx
->
codec
->
id
,
avctx
->
pix_fmt
);
if
(
avctx
->
pix_fmt
==
AV_PIX_FMT_XVMC_MPEG2_IDCT
||
avctx
->
hwaccel
||
s
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
if
(
avctx
->
pix_fmt
==
AV_PIX_FMT_XVMC_MPEG2_IDCT
||
avctx
->
hwaccel
)
if
(
avctx
->
idct_algo
==
FF_IDCT_AUTO
)
avctx
->
idct_algo
=
FF_IDCT_SIMPLE
;
...
...
@@ -2076,10 +2068,6 @@ static int decode_chunks(AVCodecContext *avctx,
s2
->
er
.
error_count
+=
s2
->
thread_context
[
i
]
->
er
.
error_count
;
}
if
((
CONFIG_MPEG_VDPAU_DECODER
||
CONFIG_MPEG1_VDPAU_DECODER
)
&&
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
ff_vdpau_mpeg_picture_complete
(
s2
,
buf
,
buf_size
,
s
->
slice_count
);
ret
=
slice_end
(
avctx
,
picture
);
if
(
ret
<
0
)
return
ret
;
...
...
@@ -2260,11 +2248,6 @@ static int decode_chunks(AVCodecContext *avctx,
return
AVERROR_INVALIDDATA
;
}
if
(
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
{
s
->
slice_count
++
;
break
;
}
if
(
HAVE_THREADS
&&
(
avctx
->
active_thread_type
&
FF_THREAD_SLICE
)
&&
!
avctx
->
hwaccel
)
{
int
threshold
=
(
s2
->
mb_height
*
s
->
slice_count
+
...
...
@@ -2450,35 +2433,3 @@ AVCodec ff_mpeg_xvmc_decoder = {
};
#endif
#if CONFIG_MPEG_VDPAU_DECODER
AVCodec
ff_mpeg_vdpau_decoder
=
{
.
name
=
"mpegvideo_vdpau"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
id
=
AV_CODEC_ID_MPEG2VIDEO
,
.
priv_data_size
=
sizeof
(
Mpeg1Context
),
.
init
=
mpeg_decode_init
,
.
close
=
mpeg_decode_end
,
.
decode
=
mpeg_decode_frame
,
.
capabilities
=
CODEC_CAP_DR1
|
CODEC_CAP_TRUNCATED
|
CODEC_CAP_HWACCEL_VDPAU
|
CODEC_CAP_DELAY
,
.
flush
=
flush
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"MPEG-1/2 video (VDPAU acceleration)"
),
};
#endif
#if CONFIG_MPEG1_VDPAU_DECODER
AVCodec
ff_mpeg1_vdpau_decoder
=
{
.
name
=
"mpeg1video_vdpau"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
id
=
AV_CODEC_ID_MPEG1VIDEO
,
.
priv_data_size
=
sizeof
(
Mpeg1Context
),
.
init
=
mpeg_decode_init
,
.
close
=
mpeg_decode_end
,
.
decode
=
mpeg_decode_frame
,
.
capabilities
=
CODEC_CAP_DR1
|
CODEC_CAP_TRUNCATED
|
CODEC_CAP_HWACCEL_VDPAU
|
CODEC_CAP_DELAY
,
.
flush
=
flush
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"MPEG-1 video (VDPAU acceleration)"
),
};
#endif
libavcodec/mpeg4videodec.c
View file @
578ea75a
...
...
@@ -2278,21 +2278,3 @@ AVCodec ff_mpeg4_decoder = {
.
profiles
=
NULL_IF_CONFIG_SMALL
(
mpeg4_video_profiles
),
.
update_thread_context
=
ONLY_IF_THREADS_ENABLED
(
ff_mpeg_update_thread_context
),
};
#if CONFIG_MPEG4_VDPAU_DECODER
AVCodec
ff_mpeg4_vdpau_decoder
=
{
.
name
=
"mpeg4_vdpau"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
id
=
AV_CODEC_ID_MPEG4
,
.
priv_data_size
=
sizeof
(
MpegEncContext
),
.
init
=
decode_init
,
.
close
=
ff_h263_decode_end
,
.
decode
=
ff_h263_decode_frame
,
.
capabilities
=
CODEC_CAP_DR1
|
CODEC_CAP_TRUNCATED
|
CODEC_CAP_DELAY
|
CODEC_CAP_HWACCEL_VDPAU
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"MPEG-4 part 2 (VDPAU)"
),
.
pix_fmts
=
(
const
enum
AVPixelFormat
[]){
AV_PIX_FMT_VDPAU_MPEG4
,
AV_PIX_FMT_NONE
},
};
#endif
libavcodec/mpegvideo.c
View file @
578ea75a
...
...
@@ -1688,7 +1688,6 @@ void ff_MPV_frame_end(MpegEncContext *s)
ff_xvmc_field_end
(
s
);
}
else
if
((
s
->
er
.
error_count
||
s
->
encoding
)
&&
!
s
->
avctx
->
hwaccel
&&
!
(
s
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
&&
s
->
unrestricted_mv
&&
s
->
current_picture
.
reference
&&
!
s
->
intra_only
&&
...
...
@@ -2212,7 +2211,6 @@ void ff_draw_horiz_band(AVCodecContext *avctx, DSPContext *dsp, Picture *cur,
}
if
(
!
avctx
->
hwaccel
&&
!
(
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
&&
draw_edges
&&
cur
->
reference
&&
!
(
avctx
->
flags
&
CODEC_FLAG_EMU_EDGE
))
{
...
...
libavcodec/svq3.c
View file @
578ea75a
...
...
@@ -52,7 +52,6 @@
#include "golomb.h"
#include "hpeldsp.h"
#include "rectangle.h"
#include "vdpau_internal.h"
#if CONFIG_ZLIB
#include <zlib.h>
...
...
libavcodec/vc1dec.c
View file @
578ea75a
...
...
@@ -38,7 +38,6 @@
#include "msmpeg4data.h"
#include "unary.h"
#include "mathops.h"
#include "vdpau_internal.h"
#undef NDEBUG
#include <assert.h>
...
...
@@ -5732,13 +5731,6 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
return
0
;
}
if
(
s
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
{
if
(
v
->
profile
<
PROFILE_ADVANCED
)
avctx
->
pix_fmt
=
AV_PIX_FMT_VDPAU_WMV3
;
else
avctx
->
pix_fmt
=
AV_PIX_FMT_VDPAU_VC1
;
}
//for advanced profile we may need to parse and unescape data
if
(
avctx
->
codec_id
==
AV_CODEC_ID_VC1
||
avctx
->
codec_id
==
AV_CODEC_ID_VC1IMAGE
)
{
int
buf_size2
=
0
;
...
...
@@ -5755,8 +5747,7 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
if
(
size
<=
0
)
continue
;
switch
(
AV_RB32
(
start
))
{
case
VC1_CODE_FRAME
:
if
(
avctx
->
hwaccel
||
s
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
if
(
avctx
->
hwaccel
)
buf_start
=
start
;
buf_size2
=
vc1_unescape_buffer
(
start
+
4
,
size
,
buf2
);
break
;
...
...
@@ -5940,10 +5931,7 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
s
->
me
.
qpel_put
=
s
->
dsp
.
put_qpel_pixels_tab
;
s
->
me
.
qpel_avg
=
s
->
dsp
.
avg_qpel_pixels_tab
;
if
((
CONFIG_VC1_VDPAU_DECODER
)
&&
s
->
avctx
->
codec
->
capabilities
&
CODEC_CAP_HWACCEL_VDPAU
)
ff_vdpau_vc1_decode_picture
(
s
,
buf_start
,
(
buf
+
buf_size
)
-
buf_start
);
else
if
(
avctx
->
hwaccel
)
{
if
(
avctx
->
hwaccel
)
{
if
(
avctx
->
hwaccel
->
start_frame
(
avctx
,
buf
,
buf_size
)
<
0
)
goto
err
;
if
(
avctx
->
hwaccel
->
decode_slice
(
avctx
,
buf_start
,
(
buf
+
buf_size
)
-
buf_start
)
<
0
)
...
...
@@ -6123,38 +6111,6 @@ AVCodec ff_wmv3_decoder = {
};
#endif
#if CONFIG_WMV3_VDPAU_DECODER
AVCodec
ff_wmv3_vdpau_decoder
=
{
.
name
=
"wmv3_vdpau"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
id
=
AV_CODEC_ID_WMV3
,
.
priv_data_size
=
sizeof
(
VC1Context
),
.
init
=
vc1_decode_init
,
.
close
=
ff_vc1_decode_end
,
.
decode
=
vc1_decode_frame
,
.
capabilities
=
CODEC_CAP_DR1
|
CODEC_CAP_DELAY
|
CODEC_CAP_HWACCEL_VDPAU
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"Windows Media Video 9 VDPAU"
),
.
pix_fmts
=
(
const
enum
AVPixelFormat
[]){
AV_PIX_FMT_VDPAU_WMV3
,
AV_PIX_FMT_NONE
},
.
profiles
=
NULL_IF_CONFIG_SMALL
(
profiles
)
};
#endif
#if CONFIG_VC1_VDPAU_DECODER
AVCodec
ff_vc1_vdpau_decoder
=
{
.
name
=
"vc1_vdpau"
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
id
=
AV_CODEC_ID_VC1
,
.
priv_data_size
=
sizeof
(
VC1Context
),
.
init
=
vc1_decode_init
,
.
close
=
ff_vc1_decode_end
,
.
decode
=
vc1_decode_frame
,
.
capabilities
=
CODEC_CAP_DR1
|
CODEC_CAP_DELAY
|
CODEC_CAP_HWACCEL_VDPAU
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"SMPTE VC-1 VDPAU"
),
.
pix_fmts
=
(
const
enum
AVPixelFormat
[]){
AV_PIX_FMT_VDPAU_VC1
,
AV_PIX_FMT_NONE
},
.
profiles
=
NULL_IF_CONFIG_SMALL
(
profiles
)
};
#endif
#if CONFIG_WMV3IMAGE_DECODER
AVCodec
ff_wmv3image_decoder
=
{
.
name
=
"wmv3image"
,
...
...
libavcodec/vdpau.c
View file @
578ea75a
This diff is collapsed.
Click to expand it.
libavcodec/vdpau_internal.h
View file @
578ea75a
...
...
@@ -40,21 +40,4 @@ int ff_vdpau_mpeg_end_frame(AVCodecContext *avctx);
int
ff_vdpau_add_buffer
(
AVCodecContext
*
avctx
,
const
uint8_t
*
buf
,
uint32_t
buf_size
);
void
ff_vdpau_add_data_chunk
(
uint8_t
*
data
,
const
uint8_t
*
buf
,
int
buf_size
);
void
ff_vdpau_mpeg_picture_complete
(
MpegEncContext
*
s
,
const
uint8_t
*
buf
,
int
buf_size
,
int
slice_count
);
void
ff_vdpau_h264_picture_start
(
H264Context
*
h
);
void
ff_vdpau_h264_set_reference_frames
(
H264Context
*
h
);
void
ff_vdpau_h264_picture_complete
(
H264Context
*
h
);
void
ff_vdpau_vc1_decode_picture
(
MpegEncContext
*
s
,
const
uint8_t
*
buf
,
int
buf_size
);
void
ff_vdpau_mpeg4_decode_picture
(
MpegEncContext
*
s
,
const
uint8_t
*
buf
,
int
buf_size
);
#endif
/* AVCODEC_VDPAU_INTERNAL_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment