Skip to content

Commit 85290f2

Browse files
author
Clement Champetier
committed
VideoProperties: fixed value of properties available when decode first gop
All properties have the same value if not found.
1 parent 94ad0ae commit 85290f2

File tree

1 file changed

+26
-14
lines changed

1 file changed

+26
-14
lines changed

src/AvTranscoder/properties/VideoProperties.cpp

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -553,31 +553,43 @@ PropertyVector& VideoProperties::fillVector(PropertyVector& data) const
553553
addProperty(data, "colorRange", &VideoProperties::getColorRange);
554554
addProperty(data, "colorPrimaries", &VideoProperties::getColorPrimaries);
555555
addProperty(data, "chromaSampleLocation", &VideoProperties::getChromaSampleLocation);
556-
addProperty(data, "interlaced ", &VideoProperties::isInterlaced);
557-
addProperty(data, "topFieldFirst", &VideoProperties::isTopFieldFirst);
558556
addProperty(data, "fieldOrder", &VideoProperties::getFieldOrder);
559557
addProperty(data, "fps", &VideoProperties::getFps);
560558
addProperty(data, "nbFrame", &VideoProperties::getNbFrames);
561559
addProperty(data, "ticksPerFrame", &VideoProperties::getTicksPerFrame);
562560
addProperty(data, "bitRate", &VideoProperties::getBitRate);
563561
addProperty(data, "maxBitRate", &VideoProperties::getMaxBitRate);
564562
addProperty(data, "minBitRate", &VideoProperties::getMinBitRate);
565-
addProperty(data, "gopSize", &VideoProperties::getGopSize);
563+
addProperty(data, "hasBFrames", &VideoProperties::hasBFrames);
564+
addProperty(data, "referencesFrames", &VideoProperties::getReferencesFrames);
566565

567-
std::stringstream gop;
568-
for(size_t frameIndex = 0; frameIndex < _gopStructure.size(); ++frameIndex)
566+
// Add properties available when decode first gop
567+
if(_levelAnalysis < eAnalyseLevelFirstGop)
569568
{
570-
gop << _gopStructure.at(frameIndex).first;
571-
gop << "(";
572-
gop << _gopStructure.at(frameIndex).second;;
573-
gop << ")";
574-
gop << " ";
569+
detail::add(data, "gopSize", detail::propertyValueIfError);
570+
detail::add(data, "gop", detail::propertyValueIfError);
571+
detail::add(data, "interlaced", detail::propertyValueIfError);
572+
detail::add(data, "topFieldFirst", detail::propertyValueIfError);
575573
}
576-
detail::add(data, "gop", gop.str());
577-
// detail::add( data, "isClosedGop", isClosedGop() );
574+
else
575+
{
576+
addProperty(data, "gopSize", &VideoProperties::getGopSize);
578577

579-
addProperty(data, "hasBFrames", &VideoProperties::hasBFrames);
580-
addProperty(data, "referencesFrames", &VideoProperties::getReferencesFrames);
578+
std::stringstream gop;
579+
for(size_t frameIndex = 0; frameIndex < _gopStructure.size(); ++frameIndex)
580+
{
581+
gop << _gopStructure.at(frameIndex).first;
582+
gop << "(";
583+
gop << _gopStructure.at(frameIndex).second;;
584+
gop << ")";
585+
gop << " ";
586+
}
587+
detail::add(data, "gop", gop.str());
588+
// detail::add( data, "isClosedGop", isClosedGop() );
589+
590+
addProperty(data, "interlaced ", &VideoProperties::isInterlaced);
591+
addProperty(data, "topFieldFirst", &VideoProperties::isTopFieldFirst);
592+
}
581593

582594
// Add properties of the pixel
583595
PropertyVector pixelProperties;

0 commit comments

Comments
 (0)