Skip to content

Commit 760d6da

Browse files
committed
New names
1 parent e3507be commit 760d6da

File tree

3 files changed

+28
-27
lines changed

3 files changed

+28
-27
lines changed

src/torchcodec/decoders/_core/FFMPEGCommon.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,22 @@
1010

1111
namespace facebook::torchcodec {
1212

13-
AVPacketHandler::AVPacketHandler() : avPacket_(av_packet_alloc()) {
13+
AutoFreedAVPacket::AutoFreedAVPacket() : avPacket_(av_packet_alloc()) {
1414
TORCH_CHECK(avPacket_ != nullptr, "Couldn't allocate avPacket.");
1515
}
16-
AVPacketHandler::~AVPacketHandler() {
16+
AutoFreedAVPacket::~AutoFreedAVPacket() {
1717
av_packet_free(&avPacket_);
1818
}
1919

20-
ReferencedAVPacket::ReferencedAVPacket(AVPacketHandler& shared)
20+
AutoUnrefedAVPacket::AutoUnrefedAVPacket(AutoFreedAVPacket& shared)
2121
: avPacket_(shared.avPacket_) {}
22-
ReferencedAVPacket::~ReferencedAVPacket() {
22+
AutoUnrefedAVPacket::~AutoUnrefedAVPacket() {
2323
av_packet_unref(avPacket_);
2424
}
25-
AVPacket* ReferencedAVPacket::get() {
25+
AVPacket* AutoUnrefedAVPacket::get() {
2626
return avPacket_;
2727
}
28-
AVPacket* ReferencedAVPacket::operator->() {
28+
AVPacket* AutoUnrefedAVPacket::operator->() {
2929
return avPacket_;
3030
}
3131

src/torchcodec/decoders/_core/FFMPEGCommon.h

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -68,39 +68,40 @@ using UniqueAVIOContext = std::
6868
using UniqueSwsContext =
6969
std::unique_ptr<SwsContext, Deleter<SwsContext, void, sws_freeContext>>;
7070

71-
// These 2 classes are meant to be used in tandem, like so:
72-
// ```
73-
// AVPacketHandler avPacketHandler;
71+
// These 2 classes share the same underlying AVPacket object. They are meant to
72+
// be used in tandem, like so:
73+
//
74+
// AutoFreedAVPacket autoFreedAVPacket; // <-- malloc for AVPacket happens here
7475
// while(...){
75-
// ReferencedAVPacket packet(avPacketHandler);
76-
// av_read_frame(..., packet.get());
77-
// }
78-
// ```
76+
// AutoUnrefedAVPacket packet(autoFreedAVPacket);
77+
// av_read_frame(..., packet.get()); <-- av_packet_ref() called by FFmpeg
78+
// } <-- av_packet_unref() called here
79+
//
7980
// This achieves a few desirable things:
80-
// - Memory allocation of the underlying AVPacket happens only once, when the
81-
// avPacketHandler created.
82-
// - av_packet_free() is called when avPacketHandler gets out of scope
81+
// - Memory allocation of the underlying AVPacket happens only once, when
82+
// autoFreedAVPacket is created.
83+
// - av_packet_free() is called when autoFreedAVPacket gets out of scope
8384
// - av_packet_unref() is automatically called when needed, i.e. at the end of
8485
// each loop iteration (or when hitting break / continue). This prevents the
8586
// risk of us forgetting to call it.
86-
class AVPacketHandler {
87-
friend class ReferencedAVPacket;
87+
class AutoFreedAVPacket {
88+
friend class AutoUnrefedAVPacket;
8889

8990
private:
9091
AVPacket* avPacket_;
9192

9293
public:
93-
AVPacketHandler();
94-
~AVPacketHandler();
94+
AutoFreedAVPacket();
95+
~AutoFreedAVPacket();
9596
};
9697

97-
class ReferencedAVPacket {
98+
class AutoUnrefedAVPacket {
9899
private:
99100
AVPacket* avPacket_;
100101

101102
public:
102-
ReferencedAVPacket(AVPacketHandler& shared);
103-
~ReferencedAVPacket();
103+
AutoUnrefedAVPacket(AutoFreedAVPacket& shared);
104+
~AutoUnrefedAVPacket();
104105
AVPacket* get();
105106
AVPacket* operator->();
106107
};

src/torchcodec/decoders/_core/VideoDecoder.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -573,9 +573,9 @@ void VideoDecoder::scanFileAndUpdateMetadataAndIndex() {
573573
return;
574574
}
575575

576-
AVPacketHandler avPacketHandler;
576+
AutoFreedAVPacket autoFreedAVPacket;
577577
while (true) {
578-
ReferencedAVPacket packet(avPacketHandler);
578+
AutoUnrefedAVPacket packet(autoFreedAVPacket);
579579

580580
// av_read_frame is a misleading name: it gets the next **packet**.
581581
int ffmpegStatus = av_read_frame(formatContext_.get(), packet.get());
@@ -806,7 +806,7 @@ VideoDecoder::RawDecodedOutput VideoDecoder::getDecodedOutputWithFilter(
806806
}
807807
// Need to get the next frame or error from PopFrame.
808808
UniqueAVFrame frame(av_frame_alloc());
809-
AVPacketHandler avPacketHandler;
809+
AutoFreedAVPacket autoFreedAVPacket;
810810
int ffmpegStatus = AVSUCCESS;
811811
bool reachedEOF = false;
812812
int frameStreamIndex = -1;
@@ -846,7 +846,7 @@ VideoDecoder::RawDecodedOutput VideoDecoder::getDecodedOutputWithFilter(
846846
// pulling frames from its internal buffers.
847847
continue;
848848
}
849-
ReferencedAVPacket packet(avPacketHandler);
849+
AutoUnrefedAVPacket packet(autoFreedAVPacket);
850850
ffmpegStatus = av_read_frame(formatContext_.get(), packet.get());
851851
decodeStats_.numPacketsRead++;
852852
if (ffmpegStatus == AVERROR_EOF) {

0 commit comments

Comments
 (0)