Skip to content

Commit 76e9ba7

Browse files
author
Clement Champetier
committed
AvInputVideo / Audio: has a link to the video / audio codec (decoder)
1 parent f0ae2a2 commit 76e9ba7

File tree

4 files changed

+15
-15
lines changed

4 files changed

+15
-15
lines changed

src/AvTranscoder/essenceStream/AvInputAudio.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace avtranscoder
2020
AvInputAudio::AvInputAudio( AvInputStream& inputStream )
2121
: IInputEssence()
2222
, _inputStream ( &inputStream )
23-
, _codec( eCodecTypeDecoder, inputStream.getAudioCodec().getCodecId() )
23+
, _codec( &inputStream.getAudioCodec() )
2424
, _frame ( NULL )
2525
, _selectedStream( inputStream.getStreamIndex() )
2626
{
@@ -46,8 +46,8 @@ AvInputAudio::~AvInputAudio()
4646

4747
void AvInputAudio::setup()
4848
{
49-
AVCodecContext* avCodecContext = _codec.getAVCodecContext();
50-
AVCodec* avCodec = _codec.getAVCodec();
49+
AVCodecContext* avCodecContext = _codec->getAVCodecContext();
50+
AVCodec* avCodec = _codec->getAVCodec();
5151

5252
avCodecContext->channels = _inputStream->getAudioCodec().getAudioFrameDesc().getChannels();
5353

@@ -85,7 +85,7 @@ bool AvInputAudio::readNextFrame( Frame& frameBuffer )
8585
if( ! decodeNextFrame() )
8686
return false;
8787

88-
AVCodecContext* avCodecContext = _codec.getAVCodecContext();
88+
AVCodecContext* avCodecContext = _codec->getAVCodecContext();
8989

9090
size_t decodedSize = av_samples_get_buffer_size(
9191
NULL, avCodecContext->channels,
@@ -121,9 +121,9 @@ bool AvInputAudio::readNextFrame( Frame& frameBuffer, const size_t subStreamInde
121121

122122
const int output_nbChannels = 1;
123123
const int output_align = 1;
124-
size_t decodedSize = av_samples_get_buffer_size(NULL, output_nbChannels, _frame->nb_samples, _codec.getAVCodecContext()->sample_fmt, output_align);
124+
size_t decodedSize = av_samples_get_buffer_size(NULL, output_nbChannels, _frame->nb_samples, _codec->getAVCodecContext()->sample_fmt, output_align);
125125

126-
size_t nbSubStreams = _codec.getAVCodecContext()->channels;
126+
size_t nbSubStreams = _codec->getAVCodecContext()->channels;
127127
size_t bytePerSample = av_get_bytes_per_sample( (AVSampleFormat)_frame->format );
128128

129129
if( subStreamIndex > nbSubStreams - 1 )
@@ -172,7 +172,7 @@ bool AvInputAudio::decodeNextFrame()
172172
packet.data = data.getPtr();
173173
packet.size = data.getSize();
174174

175-
int ret = avcodec_decode_audio4( _codec.getAVCodecContext(), _frame, &got_frame, &packet );
175+
int ret = avcodec_decode_audio4( _codec->getAVCodecContext(), _frame, &got_frame, &packet );
176176

177177
if( ret < 0 )
178178
{

src/AvTranscoder/essenceStream/AvInputAudio.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class AvExport AvInputAudio : public IInputEssence
2626
bool decodeNextFrame();
2727

2828
AvInputStream* _inputStream; ///< Stream from which we read next frames
29-
AudioCodec _codec; ///< Audio decoder
29+
const AudioCodec* _codec; ///< Audio decoder. Has link (no ownership)
3030
AVFrame* _frame; ///< Libav object to store decoded data
3131

3232
int _selectedStream; ///< Index of the selected stream in the input file

src/AvTranscoder/essenceStream/AvInputVideo.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace avtranscoder
2020
AvInputVideo::AvInputVideo( AvInputStream& inputStream )
2121
: IInputEssence()
2222
, _inputStream ( &inputStream )
23-
, _codec( eCodecTypeDecoder, inputStream.getVideoCodec().getCodecId() )
23+
, _codec( &inputStream.getVideoCodec() )
2424
, _frame ( NULL )
2525
, _selectedStream( inputStream.getStreamIndex() )
2626
{
@@ -45,8 +45,8 @@ AvInputVideo::~AvInputVideo()
4545

4646
void AvInputVideo::setup()
4747
{
48-
AVCodecContext* avCodecContext = _codec.getAVCodecContext();
49-
AVCodec* avCodec = _codec.getAVCodec();
48+
AVCodecContext* avCodecContext = _codec->getAVCodecContext();
49+
AVCodec* avCodec = _codec->getAVCodec();
5050

5151
// if( avCodec->capabilities & CODEC_CAP_TRUNCATED )
5252
// avCodecContext->flags |= CODEC_FLAG_TRUNCATED;
@@ -92,7 +92,7 @@ bool AvInputVideo::readNextFrame( Frame& frameBuffer )
9292
packet.data = data.getPtr();
9393
packet.size = data.getSize();
9494

95-
int ret = avcodec_decode_video2( _codec.getAVCodecContext(), _frame, &got_frame, &packet );
95+
int ret = avcodec_decode_video2( _codec->getAVCodecContext(), _frame, &got_frame, &packet );
9696

9797
if( ret < 0 )
9898
{
@@ -127,12 +127,12 @@ bool AvInputVideo::readNextFrame( Frame& frameBuffer, const size_t subStreamInde
127127

128128
void AvInputVideo::flushDecoder()
129129
{
130-
avcodec_flush_buffers( _codec.getAVCodecContext() );
130+
avcodec_flush_buffers( _codec->getAVCodecContext() );
131131
}
132132

133133
void AvInputVideo::setProfile( const Profile::ProfileDesc& desc )
134134
{
135-
Context codecContext( _codec.getAVCodecContext() );
135+
Context codecContext( _codec->getAVCodecContext() );
136136

137137
for( Profile::ProfileDesc::const_iterator it = desc.begin(); it != desc.end(); ++it )
138138
{

src/AvTranscoder/essenceStream/AvInputVideo.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class AvExport AvInputVideo : public IInputEssence
3030
private:
3131

3232
AvInputStream* _inputStream; ///< Stream from which we read next frames
33-
VideoCodec _codec; ///< Video decoder
33+
const VideoCodec* _codec; ///< Video decoder. Has link (no ownership)
3434
AVFrame* _frame; ///< Libav object to store decoded data
3535

3636
int _selectedStream; ///< Index of the selected stream in the input file

0 commit comments

Comments
 (0)