@@ -8,7 +8,11 @@ StreamTranscoder::StreamTranscoder( AvInputStream& stream, OutputFile& outputFil
8
8
: _stream( &stream )
9
9
, _frameBuffer( NULL )
10
10
, _inputStreamReader( NULL )
11
+ , _inputStreamVideo( NULL )
12
+ , _inputStreamAudio( NULL )
11
13
, _outputStreamWriter( NULL )
14
+ , _outputStreamVideo( NULL )
15
+ , _outputStreamAudio( NULL )
12
16
, _outputFile( &outputFile )
13
17
, _streamIndex( streamId )
14
18
, _transcodeStream( false )
@@ -19,10 +23,16 @@ StreamTranscoder::~StreamTranscoder()
19
23
{
20
24
if ( _frameBuffer )
21
25
delete _frameBuffer;
22
- if ( _inputStreamReader )
23
- delete _inputStreamReader;
24
- if ( _outputStreamWriter )
25
- delete _outputStreamWriter;
26
+
27
+ if ( _inputStreamVideo )
28
+ delete _inputStreamVideo;
29
+ if ( _inputStreamAudio )
30
+ delete _inputStreamAudio;
31
+
32
+ if ( _outputStreamVideo )
33
+ delete _outputStreamVideo;
34
+ if ( _outputStreamAudio )
35
+ delete _outputStreamAudio;
26
36
}
27
37
28
38
void StreamTranscoder::init ( const std::string& profile )
@@ -33,7 +43,8 @@ void StreamTranscoder::init( const std::string& profile )
33
43
{
34
44
case AVMEDIA_TYPE_VIDEO :
35
45
{
36
- _inputStreamReader = new InputStreamVideo ( *_stream );
46
+ _inputStreamVideo = new InputStreamVideo ( *_stream );
47
+ _inputStreamReader = _inputStreamVideo;
37
48
_inputStreamReader->setup ();
38
49
39
50
// re-wrap only, get output descriptor from input
@@ -43,18 +54,20 @@ void StreamTranscoder::init( const std::string& profile )
43
54
break ;
44
55
}
45
56
46
- OutputStreamVideo* outputStreamVideo = new OutputStreamVideo ();
47
- _outputStreamWriter = outputStreamVideo ;
57
+ _outputStreamVideo = new OutputStreamVideo ();
58
+ _outputStreamWriter = _outputStreamVideo ;
48
59
49
60
_outputStreamWriter->setProfile ( profile );
50
- _outputFile->addVideoStream ( outputStreamVideo->getVideoDesc () );
51
- _frameBuffer = new Image ( outputStreamVideo->getVideoDesc ().getImageDesc () );
61
+ _outputFile->addVideoStream ( _outputStreamVideo->getVideoDesc () );
62
+ _videoFrameBuffer = new Image ( _outputStreamVideo->getVideoDesc ().getImageDesc () );
63
+ _frameBuffer = _videoFrameBuffer;
52
64
53
65
break ;
54
66
}
55
67
case AVMEDIA_TYPE_AUDIO :
56
68
{
57
- _inputStreamReader = new InputStreamAudio ( *_stream );
69
+ _inputStreamAudio = new InputStreamAudio ( *_stream );
70
+ _inputStreamReader = _inputStreamAudio;
58
71
_inputStreamReader->setup ();
59
72
60
73
// re-wrap only, get output descriptor from input
@@ -64,12 +77,13 @@ void StreamTranscoder::init( const std::string& profile )
64
77
break ;
65
78
}
66
79
67
- OutputStreamAudio* outputStreamAudio = new OutputStreamAudio ();
68
- _outputStreamWriter = outputStreamAudio ;
80
+ _outputStreamAudio = new OutputStreamAudio ();
81
+ _outputStreamWriter = _outputStreamAudio ;
69
82
70
- outputStreamAudio->setProfile ( profile );
71
- _outputFile->addAudioStream ( outputStreamAudio->getAudioDesc () );
72
- _frameBuffer = new AudioFrame ( outputStreamAudio->getAudioDesc ().getFrameDesc () );
83
+ _outputStreamWriter->setProfile ( profile );
84
+ _outputFile->addAudioStream ( _outputStreamAudio->getAudioDesc () );
85
+ _audioFrameBuffer = new AudioFrame ( _outputStreamAudio->getAudioDesc ().getFrameDesc () );
86
+ _frameBuffer = _audioFrameBuffer;
73
87
74
88
break ;
75
89
}
0 commit comments