diff options
| author | Julian Scheel <julian@jusst.de> | 2008-12-23 17:36:10 +0000 |
|---|---|---|
| committer | Julian Scheel <julian@jusst.de> | 2008-12-23 17:36:10 +0000 |
| commit | caf641b1b9f0082413ef4de5372d9c19b0c7e39c (patch) | |
| tree | a95954b2fa273d600158c6a3a11bd5b09ba8dda7 /src/libvdpau/h264_parser.c | |
| parent | f06f61d118d95516bb92576c7ba1826e8eaa0d7f (diff) | |
| download | xine-lib-caf641b1b9f0082413ef4de5372d9c19b0c7e39c.tar.gz xine-lib-caf641b1b9f0082413ef4de5372d9c19b0c7e39c.tar.bz2 | |
Fix some more interlaced streams (dpb reference pic removal issues).
Diffstat (limited to 'src/libvdpau/h264_parser.c')
| -rw-r--r-- | src/libvdpau/h264_parser.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libvdpau/h264_parser.c b/src/libvdpau/h264_parser.c index 531aa6229..f7d12d322 100644 --- a/src/libvdpau/h264_parser.c +++ b/src/libvdpau/h264_parser.c @@ -311,7 +311,7 @@ void calculate_pic_order(struct nal_parser *parser) } else { - printf("FIXME: Unsupported poc_type\n"); + printf("FIXME: Unsupported poc_type: %d\n", sps->pic_order_cnt_type); } } @@ -883,10 +883,13 @@ void decode_ref_pic_marking(uint32_t memory_management_control_operation, struct decoded_picture* pic = dpb_get_picture(dpb, pic_num_x); if (pic != NULL) { if (pic->nal->slc->field_pic_flag == 0) - dpb_set_unused_ref_picture(dpb, pic_num_x); + dpb_set_unused_ref_picture_a(dpb, pic); else { - dpb_set_unused_ref_picture(dpb, pic_num_x); - printf("FIXME: We might need do delete more from the DPB...\n"); + if(!pic->top_is_reference) + dpb_set_unused_ref_picture_a(dpb, pic); + else + pic->top_is_reference = 0; + //printf("FIXME: We might need do delete more from the DPB...\n"); // FIXME: some more handling needed here?! See 8.2.5.4.1, p. 120 } } |
