- Something
- Thursday, October 20th, 2011 at 8:54:22pm MDT
- diff --git a/mythtv/libs/libmythtv/dtvrecorder.cpp b/mythtv/libs/libmythtv/dtvrecorder.cpp
- index e0a5335..f852d5f 100644
- --- a/mythtv/libs/libmythtv/dtvrecorder.cpp
- +++ b/mythtv/libs/libmythtv/dtvrecorder.cpp
- @@ -82,6 +82,10 @@ DTVRecorder::DTVRecorder(TVRec *rec) :
- memset(_stream_id, 0, sizeof(_stream_id));
- memset(_pid_status, 0, sizeof(_pid_status));
- memset(_continuity_counter, 0, sizeof(_continuity_counter));
- + pc = new ParseContext1;
- + memset(pc, 0, sizeof(struct ParseContext1));
- + s = new AVCodecParserContext;
- + memset(s, 0, sizeof(struct AVCodecParserContext));
- }
- DTVRecorder::~DTVRecorder()
- @@ -101,6 +105,12 @@ DTVRecorder::~DTVRecorder()
- delete _input_pmt;
- _input_pmt = NULL;
- }
- +
- + if (pc)
- + {
- + delete pc;
- + pc = NULL;
- + }
- }
- void DTVRecorder::SetOption(const QString &name, const QString &value)
- @@ -339,7 +349,6 @@ bool DTVRecorder::FindMPEG2Keyframes(const TSPacket* tspacket)
- // (there are others that we don't care about)
- const uint8_t *bufptr = tspacket->data() + tspacket->AFCOffset();
- const uint8_t *bufend = tspacket->data() + TSPacket::kSize;
- - int progressive_sequence = 0;
- int ext_type, bytes_left;
- int picture_structure, top_field_first, repeat_first_field, progressive_frame;
- int repeat_pict = 0;
- @@ -384,7 +393,7 @@ bool DTVRecorder::FindMPEG2Keyframes(const TSPacket* tspacket)
- case 0x1: /* sequence extension */
- if (bytes_left >= 6)
- {
- - progressive_sequence = bufptr[1] & (1 << 3);
- + pc->progressive_sequence = bufptr[1] & (1 << 3);
- }
- break;
- case 0x8: /* picture coding extension */
- @@ -399,7 +408,7 @@ bool DTVRecorder::FindMPEG2Keyframes(const TSPacket* tspacket)
- repeat_pict = 1;
- if (repeat_first_field)
- {
- - if (progressive_sequence)
- + if (pc->progressive_sequence)
- {
- if (top_field_first)
- repeat_pict = 5;
- diff --git a/mythtv/libs/libmythtv/dtvrecorder.h b/mythtv/libs/libmythtv/dtvrecorder.h
- index 25b8c7e..721a669 100644
- --- a/mythtv/libs/libmythtv/dtvrecorder.h
- +++ b/mythtv/libs/libmythtv/dtvrecorder.h
- @@ -18,6 +18,10 @@ using namespace std;
- #include "recorderbase.h"
- #include "H264Parser.h"
- +extern "C" {
- +#include "libavcodec/parser.h"
- +}
- +
- class MPEGStreamData;
- class TSPacket;
- class QTime;
- @@ -132,6 +136,10 @@ class DTVRecorder :
- unsigned int _video_bytes_remaining;
- unsigned int _other_bytes_remaining;
- + // used for storing sequence header information
- + ParseContext1 *pc;
- + AVCodecParserContext *s;
- +
- // H.264 support
- bool _pes_synced;
- bool _seen_sps;
advertising
Update the Post
Either update this post and resubmit it with changes, or make a new post.
You may also comment on this post.
Please note that information posted here will expire by default in one month. If you do not want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that are not marked to expire will be indexable by search engines. Be careful with your passwords. All illegal activities will be reported and any information will be handed over to the authorities, so be good.