Age | Commit message (Collapse) | Author |
|
|
|
|
|
Currently a parsed picture was only decoded when the parser came across a
NAL unit which started a new picture (aka access unit). An end of sequence
NAL unit must be handled like the access unit delimiter NAL unit, as both
terminate the current access unit.
Handling the end of sequence NAL unit in this way fixes displaying of still
images which end in an end of seqeunce NAL unit. Otherwise they were not
decoded at all (in case of a still frame) or the second field was missing
(in case of a still image which had been coded as a pair of fields).
|
|
The referenced last_vcl_nal exists only when decoding starts at an IDR frame.
Starting anywhere else may lead to a NULL pointer access.
|
|
- only mark pictures as reference for vdpau, where actually the slice nals are used for reference
|
|
- the dpb is using two xine_lists now to manage reference pictures and pictures delayed for output
- take VUI num_reorder_frames into account to buffer just as many frames as needed
- cleanup reference counting for decoded pictures
|
|
properly skip the emulation_prevention_three_byte in the bitstream, which fixes some glitches which could happen whenever such a stuffing byte was in one of the parsed sections
|
|
|
|
When the parser was reset it did not forget about the last pts, which might cause metronom to freeze.
On flush the cached vo_frame_t was kept in case the previously decode produced a 1st field and the decoder was waiting for 2nd field now. As on flush all images are released after drawing this could point to a invalid vo_frame_t
|
|
some minor cleanups
|
|
Do not discard the parser, but reset fields that won't be valid after a decoder reset (ie seek) anymore
|
|
|
|
coded_picture replaces the abused nal_units, while nal_units are just what their name says. sps and pps are handled in buffers as the spec proposes. pic_num calculation and ref-frame marking reworked to be spec compliant
|
|
--HG--
rename : include/xine.h.in => include/xine.h
rename : src/xine-engine/osd.h => include/xine/osd.h
rename : src/xine-engine/video_out.h => include/xine/video_out.h
rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c
rename : src/libvdpau/Makefile.am => src/video_dec/libvdpau/Makefile.am
rename : src/libvdpau/bits_reader.h => src/video_dec/libvdpau/bits_reader.h
rename : src/libvdpau/dpb.c => src/video_dec/libvdpau/dpb.c
rename : src/libvdpau/dpb.h => src/video_dec/libvdpau/dpb.h
rename : src/libvdpau/h264_parser.c => src/video_dec/libvdpau/h264_parser.c
rename : src/libvdpau/h264_parser.h => src/video_dec/libvdpau/h264_parser.h
rename : src/libvdpau/nal.c => src/video_dec/libvdpau/nal.c
rename : src/libvdpau/nal.h => src/video_dec/libvdpau/nal.h
rename : src/libvdpau/vdpau_h264.c => src/video_dec/libvdpau/vdpau_h264.c
rename : src/libvdpau/vdpau_mpeg12.c => src/video_dec/libvdpau/vdpau_mpeg12.c
rename : src/libvdpau/vdpau_vc1.c => src/video_dec/libvdpau/vdpau_vc1.c
|