diff options
author | elupus <elupus@svn> | 2010-03-02 23:33:12 +0000 |
---|---|---|
committer | elupus <elupus@svn> | 2010-03-02 23:33:12 +0000 |
commit | 1bcfc043a4f74bfd2a0d28632ee9aab3f9900d4f (patch) | |
tree | 3c13596a2bb70360d188bb064bc4d0fb32387dce | |
parent | 17a6824b230f657152b9fa559457413e0e02bdb6 (diff) |
added: ffmpeg vdpau fixes for mpeg4
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@28328 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
-rw-r--r-- | xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/h263dec.c | 6 | ||||
-rw-r--r-- | xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/vdpau.c | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/h263dec.c b/xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/h263dec.c index d75904cec4..2f052ff503 100644 --- a/xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/h263dec.c +++ b/xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/h263dec.c @@ -623,12 +623,12 @@ retry: return -1; if (CONFIG_MPEG4_VDPAU_DECODER && (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)) { - ff_vdpau_mpeg4_decode_picture(s, buf, buf_size); + 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, buf, buf_size) < 0) + if (avctx->hwaccel->start_frame(avctx, s->gb.buffer, s->gb.buffer_end - s->gb.buffer) < 0) return -1; } @@ -667,6 +667,7 @@ retry: s->error_status_table[s->mb_num-1]= AC_ERROR|DC_ERROR|MV_ERROR; } +frame_end: /* divx 5.01+ bistream reorder stuff */ if(s->codec_id==CODEC_ID_MPEG4 && s->bitstream_buffer_size==0 && s->divx_packed){ int current_pos= get_bits_count(&s->gb)>>3; @@ -701,7 +702,6 @@ retry: intrax8_decoded: ff_er_frame_end(s); -frame_end: if (avctx->hwaccel) { if (avctx->hwaccel->end_frame(avctx) < 0) return -1; diff --git a/xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/vdpau.c b/xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/vdpau.c index 47e431ff1e..a6d903457e 100644 --- a/xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/vdpau.c +++ b/xbmc/cores/dvdplayer/Codecs/ffmpeg/libavcodec/vdpau.c @@ -318,6 +318,10 @@ void ff_vdpau_mpeg4_decode_picture(MpegEncContext *s, const uint8_t *buf, assert(render); /* fill VdpPictureInfoMPEG4Part2 struct */ + render->info.mpeg4.trd[0] = s->pp_time; + render->info.mpeg4.trb[0] = s->pb_time; + render->info.mpeg4.trd[1] = s->pp_field_time >> 2; + render->info.mpeg4.trb[1] = s->pb_field_time >> 2; render->info.mpeg4.vop_time_increment_resolution = s->avctx->time_base.den; render->info.mpeg4.vop_coding_type = 0; render->info.mpeg4.vop_fcode_forward = s->f_code; |