mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2025-02-03 07:54:44 +00:00
VC1: determine frame type from frame header as well, not only from sequence header presence
This commit is contained in:
parent
92daebd2b5
commit
e37ef5f2ca
@ -54,6 +54,12 @@ vc1::frame_t::init() {
|
||||
contains_field = false;
|
||||
}
|
||||
|
||||
bool
|
||||
vc1::frame_t::is_key()
|
||||
const {
|
||||
return contains_sequence_header || (vc1::FRAME_TYPE_I == header.frame_type);
|
||||
}
|
||||
|
||||
bool
|
||||
vc1::parse_sequence_header(const unsigned char *buf,
|
||||
int size,
|
||||
|
@ -119,6 +119,7 @@ struct frame_t {
|
||||
|
||||
frame_t();
|
||||
void init();
|
||||
bool is_key() const;
|
||||
};
|
||||
typedef std::shared_ptr<frame_t> frame_cptr;
|
||||
|
||||
|
@ -152,8 +152,7 @@ void
|
||||
vc1_video_packetizer_c::flush_frames() {
|
||||
while (m_parser.is_frame_available()) {
|
||||
vc1::frame_cptr frame = m_parser.get_frame();
|
||||
|
||||
add_packet(new packet_t(frame->data, frame->timecode, frame->duration, frame->contains_sequence_header ? -1 : m_previous_timecode));
|
||||
add_packet(new packet_t(frame->data, frame->timecode, frame->duration, frame->is_key() ? -1 : m_previous_timecode));
|
||||
|
||||
m_previous_timecode = frame->timecode;
|
||||
}
|
||||
|
@ -259,3 +259,4 @@ T_410extract_vp9:b6135380fa07f827384ad1004015d79c:passed:20131019-200643:0.03386
|
||||
T_411ui_locale_pt_PT:7378e1146862dcb96f11caa91d33c5cb-3182bfa8c7ef57b56185285fbd614c98:passed:20131026-154124:0.073196901
|
||||
T_412ui_locale_pl_PL:f84afd16653d395b33943ef722c63cfa-a4f512bdc00e1eab4d27a715174df149:passed:20131026-154845:0.077632905
|
||||
T_413memory_resize_nonfree_smaller:c1085152b4b60a197bf93d598d066924:passed:20131102-115507:0.066828215
|
||||
T_414vc1_no_sequence_headers_before_key_frames:48a03189f55b303a98332e6594f7bd31:passed:20131115-164756:0.133015738
|
||||
|
5
tests/test-414vc1_no_sequence_headers_before_key_frames.rb
Executable file
5
tests/test-414vc1_no_sequence_headers_before_key_frames.rb
Executable file
@ -0,0 +1,5 @@
|
||||
#!/usr/bin/ruby -w
|
||||
|
||||
# T_414vc1_no_sequence_headers_before_key_frames
|
||||
describe "mkvmerge / VC1, no sequence headers before key frames"
|
||||
test_merge "data/mkv/vc1-no-sequence-headers-before-key-frames.mkv"
|
Loading…
Reference in New Issue
Block a user