}
_format_context->pb = _avio_context;
- AVDictionary* options = 0;
+ AVDictionary* options = nullptr;
int e = avformat_open_input (&_format_context, 0, 0, &options);
if (e < 0) {
throw OpenFileError (_ffmpeg_content->path(0).string(), e, OpenFileError::READ);
DCPOMATIC_DISABLE_WARNINGS
for (uint32_t i = 0; i < _format_context->nb_streams; ++i) {
- AVStream* s = _format_context->streams[i];
+ auto s = _format_context->streams[i];
if (s->codec->codec_type == AVMEDIA_TYPE_VIDEO && avcodec_find_decoder(s->codec->codec_id)) {
if (s->avg_frame_rate.num > 0 && s->avg_frame_rate.den > 0) {
/* This is definitely our video stream */
DCPOMATIC_DISABLE_WARNINGS
for (uint32_t i = 0; i < _format_context->nb_streams; ++i) {
- AVCodecContext* context = _format_context->streams[i]->codec;
+ auto context = _format_context->streams[i]->codec;
AVCodec* codec = avcodec_find_decoder (context->codec_id);
if (codec) {
- AVDictionary* options = 0;
+ AVDictionary* options = nullptr;
/* This option disables decoding of DCA frame footers in our patched version
of FFmpeg. I believe these footers are of no use to us, and they can cause
problems when FFmpeg fails to decode them (mantis #352).
FFmpeg::video_codec_context () const
{
if (!_video_stream) {
- return 0;
+ return nullptr;
}
return _format_context->streams[_video_stream.get()]->codec;
FFmpeg::subtitle_codec_context () const
{
if (!_ffmpeg_content->subtitle_stream ()) {
- return 0;
+ return nullptr;
}
return _ffmpeg_content->subtitle_stream()->stream(_format_context)->codec;
FFmpegSubtitlePeriod
FFmpeg::subtitle_period (AVSubtitle const & sub)
{
- ContentTime const packet_time = ContentTime::from_seconds (static_cast<double> (sub.pts) / AV_TIME_BASE);
+ auto const packet_time = ContentTime::from_seconds (static_cast<double> (sub.pts) / AV_TIME_BASE);
if (sub.end_display_time == static_cast<uint32_t> (-1)) {
/* End time is not known */
* in FFmpeg.
*/
ContentTime
-FFmpeg::pts_offset (vector<shared_ptr<FFmpegAudioStream> > audio_streams, optional<ContentTime> first_video, double video_frame_rate) const
+FFmpeg::pts_offset (vector<shared_ptr<FFmpegAudioStream>> audio_streams, optional<ContentTime> first_video, double video_frame_rate) const
{
/* Audio and video frame PTS values may not start with 0. We want
to fiddle them so that:
/* First, make one of them start at 0 */
- ContentTime po = ContentTime::min ();
+ auto po = ContentTime::min ();
if (first_video) {
po = - first_video.get ();
/* Now adjust so that the video pts starts on a frame */
if (first_video) {
- ContentTime const fvc = first_video.get() + po;
+ auto const fvc = first_video.get() + po;
po += fvc.ceil (video_frame_rate) - fvc;
}
unset ();
int longest = 0;
- for (map<string, Counts>::iterator i = _counts.begin(); i != _counts.end(); ++i) {
- longest = max (longest, int(i->first.length()));
+ for (auto const& i: _counts) {
+ longest = max (longest, int(i.first.length()));
}
list<pair<double, string> > sorted;
- for (map<string, Counts>::iterator i = _counts.begin(); i != _counts.end(); ++i) {
- string name = i->first + string(longest + 1 - i->first.size(), ' ');
+ for (auto const& i: _counts) {
+ string name = i.first + string(longest + 1 - i.first.size(), ' ');
char buffer[64];
- snprintf (buffer, 64, "%.4f", i->second.total_time);
+ snprintf (buffer, 64, "%.4f", i.second.total_time);
string total_time (buffer);
- sorted.push_back (make_pair(i->second.total_time, String::compose("\t%1%2 %3 %4", name, total_time, i->second.number, (i->second.total_time / i->second.number))));
+ sorted.push_back (make_pair(i.second.total_time, String::compose("\t%1%2 %3 %4", name, total_time, i.second.number, (i.second.total_time / i.second.number))));
}
sorted.sort (compare);
cout << _name << N_(":\n");
- for (list<pair<double, string> >::iterator i = sorted.begin(); i != sorted.end(); ++i) {
- cout << N_("\t") << i->second << "\n";
+ for (auto const& i: sorted) {
+ cout << N_("\t") << i.second << "\n";
}
}