Skip to content

Commit 6a9eca1

Browse files
danielflores3Dan-Flores
authored andcommitted
Update C++ metadata names to match python
1 parent a60968c commit 6a9eca1

File tree

3 files changed

+37
-24
lines changed

3 files changed

+37
-24
lines changed

src/torchcodec/_core/Metadata.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ struct StreamMetadata {
2626
std::optional<AVCodecID> codecId;
2727
std::optional<std::string> codecName;
2828
std::optional<double> durationSecondsFromHeader;
29-
std::optional<double> beginStreamFromHeader;
29+
std::optional<double> beginStreamSecondsFromHeader;
3030
std::optional<int64_t> numFramesFromHeader;
3131
std::optional<int64_t> numKeyFrames;
32-
std::optional<double> averageFps;
32+
std::optional<double> averageFpsFromHeader;
3333
std::optional<double> bitRate;
3434

3535
// More accurate duration, obtained by scanning the file.

src/torchcodec/_core/SingleStreamDecoder.cpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,14 @@ void SingleStreamDecoder::initializeDecoder() {
133133
av_q2d(avStream->time_base) * avStream->duration;
134134
}
135135
if (avStream->start_time != AV_NOPTS_VALUE) {
136-
streamMetadata.beginStreamFromHeader =
136+
streamMetadata.beginStreamSecondsFromHeader =
137137
av_q2d(avStream->time_base) * avStream->start_time;
138138
}
139139

140140
if (avStream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
141141
double fps = av_q2d(avStream->r_frame_rate);
142142
if (fps > 0) {
143-
streamMetadata.averageFps = fps;
143+
streamMetadata.averageFpsFromHeader = fps;
144144
}
145145
containerMetadata_.numVideoStreams++;
146146
} else if (avStream->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
@@ -445,7 +445,7 @@ void SingleStreamDecoder::addVideoStream(
445445
containerMetadata_.allStreamMetadata[activeStreamIndex_];
446446

447447
if (seekMode_ == SeekMode::approximate &&
448-
!streamMetadata.averageFps.has_value()) {
448+
!streamMetadata.averageFpsFromHeader.has_value()) {
449449
throw std::runtime_error(
450450
"Seek mode is approximate, but stream " +
451451
std::to_string(activeStreamIndex_) +
@@ -1397,9 +1397,9 @@ int64_t SingleStreamDecoder::secondsToIndexLowerBound(double seconds) {
13971397
auto& streamMetadata =
13981398
containerMetadata_.allStreamMetadata[activeStreamIndex_];
13991399
TORCH_CHECK(
1400-
streamMetadata.averageFps.has_value(),
1400+
streamMetadata.averageFpsFromHeader.has_value(),
14011401
"Cannot use approximate mode since we couldn't find the average fps from the metadata.");
1402-
return std::floor(seconds * streamMetadata.averageFps.value());
1402+
return std::floor(seconds * streamMetadata.averageFpsFromHeader.value());
14031403
}
14041404
default:
14051405
throw std::runtime_error("Unknown SeekMode");
@@ -1424,9 +1424,9 @@ int64_t SingleStreamDecoder::secondsToIndexUpperBound(double seconds) {
14241424
auto& streamMetadata =
14251425
containerMetadata_.allStreamMetadata[activeStreamIndex_];
14261426
TORCH_CHECK(
1427-
streamMetadata.averageFps.has_value(),
1427+
streamMetadata.averageFpsFromHeader.has_value(),
14281428
"Cannot use approximate mode since we couldn't find the average fps from the metadata.");
1429-
return std::ceil(seconds * streamMetadata.averageFps.value());
1429+
return std::ceil(seconds * streamMetadata.averageFpsFromHeader.value());
14301430
}
14311431
default:
14321432
throw std::runtime_error("Unknown SeekMode");
@@ -1442,10 +1442,11 @@ int64_t SingleStreamDecoder::getPts(int64_t frameIndex) {
14421442
auto& streamMetadata =
14431443
containerMetadata_.allStreamMetadata[activeStreamIndex_];
14441444
TORCH_CHECK(
1445-
streamMetadata.averageFps.has_value(),
1445+
streamMetadata.averageFpsFromHeader.has_value(),
14461446
"Cannot use approximate mode since we couldn't find the average fps from the metadata.");
14471447
return secondsToClosestPts(
1448-
frameIndex / streamMetadata.averageFps.value(), streamInfo.timeBase);
1448+
frameIndex / streamMetadata.averageFpsFromHeader.value(),
1449+
streamInfo.timeBase);
14491450
}
14501451
default:
14511452
throw std::runtime_error("Unknown SeekMode");

src/torchcodec/_core/custom_ops.cpp

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -460,14 +460,20 @@ std::string get_json_metadata(at::Tensor& decoder) {
460460
if (maybeBestVideoStreamIndex.has_value() &&
461461
videoMetadata.allStreamMetadata[*maybeBestVideoStreamIndex]
462462
.durationSecondsFromHeader.has_value()) {
463+
<<<<<<< HEAD
463464
durationSecondsFromHeader =
465+
=======
466+
durationSecondsFromHeader =
467+
>>>>>>> e932590 (Update C++ metadata names to match python)
464468
videoMetadata.allStreamMetadata[*maybeBestVideoStreamIndex]
465469
.durationSecondsFromHeader.value_or(0);
466470
} else {
467471
// Fallback to container-level duration if stream duration is not found.
468-
durationSecondsFromHeader = videoMetadata.durationSecondsFromHeader.value_or(0);
472+
durationSecondsFromHeader =
473+
videoMetadata.durationSecondsFromHeader.value_or(0);
469474
}
470-
metadataMap["durationSecondsFromHeader"] = std::to_string(durationSecondsFromHeader);
475+
metadataMap["durationSecondsFromHeader"] =
476+
std::to_string(durationSecondsFromHeader);
471477

472478
if (videoMetadata.bitRate.has_value()) {
473479
metadataMap["bitRate"] = std::to_string(videoMetadata.bitRate.value());
@@ -479,8 +485,9 @@ std::string get_json_metadata(at::Tensor& decoder) {
479485
if (streamMetadata.numFramesFromScan.has_value()) {
480486
metadataMap["numFrames"] =
481487
std::to_string(*streamMetadata.numFramesFromScan);
482-
} else if (streamMetadata.numFrames.has_value()) {
483-
metadataMap["numFrames"] = std::to_string(*streamMetadata.numFrames);
488+
} else if (streamMetadata.numFramesFromHeader.has_value()) {
489+
metadataMap["numFrames"] =
490+
std::to_string(*streamMetadata.numFramesFromHeader);
484491
}
485492
if (streamMetadata.minPtsSecondsFromScan.has_value()) {
486493
metadataMap["minPtsSecondsFromScan"] =
@@ -499,8 +506,9 @@ std::string get_json_metadata(at::Tensor& decoder) {
499506
if (streamMetadata.height.has_value()) {
500507
metadataMap["height"] = std::to_string(*streamMetadata.height);
501508
}
502-
if (streamMetadata.averageFps.has_value()) {
503-
metadataMap["averageFps"] = std::to_string(*streamMetadata.averageFps);
509+
if (streamMetadata.averageFpsFromHeader.has_value()) {
510+
metadataMap["averageFpsFromHeader"] =
511+
std::to_string(*streamMetadata.averageFpsFromHeader);
504512
}
505513
}
506514
if (videoMetadata.bestVideoStreamIndex.has_value()) {
@@ -524,7 +532,8 @@ std::string get_container_json_metadata(at::Tensor& decoder) {
524532
std::map<std::string, std::string> map;
525533

526534
if (containerMetadata.durationSecondsFromHeader.has_value()) {
527-
map["durationSecondsFromHeader"] = std::to_string(*containerMetadata.durationSecondsFromHeader);
535+
map["durationSecondsFromHeader"] =
536+
std::to_string(*containerMetadata.durationSecondsFromHeader);
528537
}
529538

530539
if (containerMetadata.bitRate.has_value()) {
@@ -563,7 +572,8 @@ std::string get_stream_json_metadata(
563572
std::map<std::string, std::string> map;
564573

565574
if (streamMetadata.durationSecondsFromHeader.has_value()) {
566-
map["durationSecondsFromHeader"] = std::to_string(*streamMetadata.durationSecondsFromHeader);
575+
map["durationSecondsFromHeader"] =
576+
std::to_string(*streamMetadata.durationSecondsFromHeader);
567577
}
568578
if (streamMetadata.bitRate.has_value()) {
569579
map["bitRate"] = std::to_string(*streamMetadata.bitRate);
@@ -573,11 +583,12 @@ std::string get_stream_json_metadata(
573583
std::to_string(*streamMetadata.numFramesFromScan);
574584
}
575585
if (streamMetadata.numFramesFromHeader.has_value()) {
576-
map["numFramesFromHeader"] = std::to_string(*streamMetadata.numFramesFromHeader);
586+
map["numFramesFromHeader"] =
587+
std::to_string(*streamMetadata.numFramesFromHeader);
577588
}
578-
if (streamMetadata.beginStreamFromHeader.has_value()) {
589+
if (streamMetadata.beginStreamSecondsFromHeader.has_value()) {
579590
map["beginStreamSecondsFromHeader"] =
580-
std::to_string(*streamMetadata.beginStreamFromHeader);
591+
std::to_string(*streamMetadata.beginStreamSecondsFromHeader);
581592
}
582593
if (streamMetadata.minPtsSecondsFromScan.has_value()) {
583594
map["minPtsSecondsFromScan"] =
@@ -596,8 +607,9 @@ std::string get_stream_json_metadata(
596607
if (streamMetadata.height.has_value()) {
597608
map["height"] = std::to_string(*streamMetadata.height);
598609
}
599-
if (streamMetadata.averageFps.has_value()) {
600-
map["averageFpsFromHeader"] = std::to_string(*streamMetadata.averageFps);
610+
if (streamMetadata.averageFpsFromHeader.has_value()) {
611+
map["averageFpsFromHeader"] =
612+
std::to_string(*streamMetadata.averageFpsFromHeader);
601613
}
602614
if (streamMetadata.sampleRate.has_value()) {
603615
map["sampleRate"] = std::to_string(*streamMetadata.sampleRate);

0 commit comments

Comments
 (0)