1 | Index: dvbrecorder.cpp
|
---|
2 | ===================================================================
|
---|
3 | --- dvbrecorder.cpp (revision 10961)
|
---|
4 | +++ dvbrecorder.cpp (working copy)
|
---|
5 | @@ -321,6 +321,8 @@
|
---|
6 | info->isVideo = StreamID::IsVideo(stream_type);
|
---|
7 | // Add the file descriptor to the filter list
|
---|
8 | info->filter_fd = fd_tmp;
|
---|
9 | + // Set isPCR if it's a PCR only stream
|
---|
10 | + info->isPCR = (pes_type == DMX_PES_PCR);
|
---|
11 |
|
---|
12 | // If we are in legacy PES mode, initialize TS->PES converter
|
---|
13 | if (!_record_transport_stream_option)
|
---|
14 | @@ -396,7 +398,7 @@
|
---|
15 | }
|
---|
16 |
|
---|
17 | if (!_hw_decoder_option && need_pcr_pid && (_input_pmt.PCRPID != 0))
|
---|
18 | - OpenFilter(_input_pmt.PCRPID, ES_TYPE_UNKNOWN, DMX_PES_OTHER,
|
---|
19 | + OpenFilter(_input_pmt.PCRPID, ES_TYPE_UNKNOWN, DMX_PES_PCR,
|
---|
20 | (*es).Orig_Type);
|
---|
21 |
|
---|
22 |
|
---|
23 | @@ -787,7 +789,7 @@
|
---|
24 | // _after_ first keyframe iff _wait_for_keyframe_option is true
|
---|
25 | if (!info->payloadStartSeen)
|
---|
26 | {
|
---|
27 | - if (!tspacket.PayloadStart())
|
---|
28 | + if (!tspacket.PayloadStart() && !info->isPCR)
|
---|
29 | return true; // not payload start - drop packet
|
---|
30 |
|
---|
31 | VERBOSE(VB_RECORD,
|
---|
32 | Index: dvbrecorder.h
|
---|
33 | ===================================================================
|
---|
34 | --- dvbrecorder.h (revision 10961)
|
---|
35 | +++ dvbrecorder.h (working copy)
|
---|
36 | @@ -42,6 +42,8 @@
|
---|
37 | bool isEncrypted; ///< true if PID is marked as encrypted
|
---|
38 | bool payloadStartSeen; ///< true if payload start packet seen on PID
|
---|
39 |
|
---|
40 | + bool isPCR; ///< true if the stream is PCR only
|
---|
41 | +
|
---|
42 | inline void Close(void);
|
---|
43 | inline bool CheckCC(uint cc);
|
---|
44 | };
|
---|