Skip to content

Commit 12b8944

Browse files
author
Simon Inns
authored
Merge pull request #390 from atsampson/blackfields
Fix piped TBC input with 3D chroma decoders
2 parents 9b403be + b5016ae commit 12b8944

1 file changed

Lines changed: 18 additions & 4 deletions

File tree

tools/ld-chroma-decoder/sourcefield.cpp

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,18 @@
2424

2525
#include "sourcefield.h"
2626

27+
#include <algorithm>
28+
2729
#include "sourcevideo.h"
2830

31+
// Fill a SourceField's data with a colour
32+
static void fillField(SourceField &field, quint16 colour)
33+
{
34+
quint16 *start = reinterpret_cast<quint16 *>(field.data.data());
35+
quint16 *end = start + (field.data.size() / 2);
36+
std::fill(start, end, colour);
37+
}
38+
2939
void SourceField::loadFields(SourceVideo &sourceVideo, LdDecodeMetaData &ldDecodeMetaData,
3040
qint32 firstFrameNumber, qint32 numFrames,
3141
qint32 lookBehindFrames, qint32 lookAheadFrames,
@@ -52,15 +62,19 @@ void SourceField::loadFields(SourceVideo &sourceVideo, LdDecodeMetaData &ldDecod
5262

5363
// Fetch the input metadata
5464
fields[i].field = ldDecodeMetaData.getField(firstFieldNumber);
55-
fields[i].data = sourceVideo.getVideoField(firstFieldNumber);
5665
fields[i + 1].field = ldDecodeMetaData.getField(secondFieldNumber);
57-
fields[i + 1].data = sourceVideo.getVideoField(secondFieldNumber);
5866

5967
if (useBlankFrame) {
6068
// Fill both fields with black
6169
const quint16 black = ldDecodeMetaData.getVideoParameters().black16bIre;
62-
fields[i].data.fill(black);
63-
fields[i + 1].data.fill(black);
70+
fields[i].data.resize(sourceVideo.getFieldByteLength());
71+
fields[i + 1].data.resize(sourceVideo.getFieldByteLength());
72+
fillField(fields[i], black);
73+
fillField(fields[i + 1], black);
74+
} else {
75+
// Fetch the input fields
76+
fields[i].data = sourceVideo.getVideoField(firstFieldNumber);
77+
fields[i + 1].data = sourceVideo.getVideoField(secondFieldNumber);
6478
}
6579

6680
frameNumber++;

0 commit comments

Comments
 (0)