summaryrefslogtreecommitdiff
path: root/src/libmpeg2/decode.c
diff options
context:
space:
mode:
authorThomas Hellström <totte67@users.sourceforge.net>2004-10-12 07:40:07 +0000
committerThomas Hellström <totte67@users.sourceforge.net>2004-10-12 07:40:07 +0000
commit937f0bc598b5b91cc0a8368d6007467d0925d5f6 (patch)
treef695bc88cbbdfc8b0ea98314735b112d28c520fb /src/libmpeg2/decode.c
parent77b3e88fe2cf735c457756c8fdbe3f1c78d5ef85 (diff)
downloadxine-lib-937f0bc598b5b91cc0a8368d6007467d0925d5f6.tar.gz
xine-lib-937f0bc598b5b91cc0a8368d6007467d0925d5f6.tar.bz2
xxmc driver updates:
Updated software fallback mechanism to be compatible with post plugin deinterlacing. A decoder using the plugin can now request a software fallback format to be used if acceleration fails. Removed the software deinterlacer that was inherited from the xv plugin. Made idct/mocomp fall back to software decoding for interlaced streams, since these are not rendered correctly either with the xvmc or the xxmc plugin. CVS patchset: 7029 CVS date: 2004/10/12 07:40:07
Diffstat (limited to 'src/libmpeg2/decode.c')
-rw-r--r--src/libmpeg2/decode.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c
index 114e8bc11..c4ac7c9ba 100644
--- a/src/libmpeg2/decode.c
+++ b/src/libmpeg2/decode.c
@@ -285,7 +285,7 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code,
if (mpeg2dec->frame_format == XINE_IMGFMT_XXMC) {
xine_xxmc_t *xxmc = (xine_xxmc_t *)
picture->current_frame->accel_data;
- switch(xxmc->format) {
+ switch(picture->current_frame->format) {
case XINE_IMGFMT_XXMC:
switch(xxmc->acceleration) {
case XINE_XVMC_ACCEL_VLD:
@@ -533,7 +533,8 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code,
* Move to libmpeg2_accel.c
* int libmpeg2_accel_new_frame(mpeg2dec_t *, picture_t *)
*/
- mpeg2_xxmc_choose_coding(mpeg2dec->frame_format, picture);
+ mpeg2_xxmc_choose_coding(mpeg2dec, picture, get_aspect_ratio(mpeg2dec),
+ flags);
/*
* End of new frame accel code.
*/
@@ -549,7 +550,8 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code,
* Move to libmpeg2_accel.c
* int libmpeg2_accel_new_frame(mpeg2dec_t *, picture_t *)
*/
- mpeg2_xxmc_choose_coding(mpeg2dec->frame_format, picture);
+ mpeg2_xxmc_choose_coding(mpeg2dec, picture,
+ get_aspect_ratio(mpeg2dec), flags);
/*
* End of new frame accel code.
*/
@@ -632,7 +634,7 @@ static inline int parse_chunk (mpeg2dec_t * mpeg2dec, int code,
{
xine_xxmc_t *xxmc = (xine_xxmc_t *)
picture->current_frame->accel_data;
- switch(xxmc->format) {
+ switch(picture->current_frame->format) {
case XINE_IMGFMT_XXMC:
switch(xxmc->acceleration) {
case XINE_XVMC_ACCEL_VLD: