throw DecodeError ("could not find stream information");
}
+ /* Find video, audio and subtitle streams and choose the first of each */
+
for (uint32_t i = 0; i < _format_context->nb_streams; ++i) {
if (_format_context->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
_video_stream = i;
}
}
+ /* Now override audio and subtitle streams with those from the Film, if it has any */
+
+ if (_fs->audio_stream() != -1) {
+ vector<Stream>::iterator i = _audio_streams.begin ();
+ while (i != _audio_streams.end() && i->id != _fs->audio_stream()) {
+ ++i;
+ }
+
+ if (i != _audio_streams.end()) {
+ _audio_stream = _fs->audio_stream ();
+ }
+ }
+
+ if (_fs->subtitle_stream() != -1) {
+ vector<Stream>::iterator i = _subtitle_streams.begin ();
+ while (i != _subtitle_streams.end() && i->id != _fs->subtitle_stream()) {
+ ++i;
+ }
+
+ if (i != _subtitle_streams.end()) {
+ _subtitle_stream = _fs->subtitle_stream ();
+ }
+ }
+
if (_video_stream < 0) {
throw DecodeError ("could not find video stream");
}