File tree Expand file tree Collapse file tree 2 files changed +7
-1
lines changed
src/AvTranscoder/properties Expand file tree Collapse file tree 2 files changed +7
-1
lines changed Original file line number Diff line number Diff line change @@ -432,7 +432,12 @@ int VideoProperties::getLevel() const
432432
433433float VideoProperties::getFps () const
434434{
435- return av_q2d (_formatContext->streams [_streamIndex]->avg_frame_rate );
435+ if (! _formatContext)
436+ throw std::runtime_error (" unknown format context" );
437+
438+ if (_formatContext->streams [_streamIndex]->avg_frame_rate .den )
439+ return av_q2d (_formatContext->streams [_streamIndex]->avg_frame_rate );
440+ return av_q2d (av_inv_q (getTimeBase ()));
436441}
437442
438443float VideoProperties::getDuration () const
Original file line number Diff line number Diff line change @@ -64,6 +64,7 @@ class AvExport VideoProperties : public StreamProperties
6464
6565 /* *
6666 * @brief Corresponds to the 'fps' returned by ffprobe.
67+ * @note If the average framerate is not defined in the format, return the tbn.
6768 * fps = the average framerate that has come from the AVStream
6869 * tbn = the time base in AVStream that has come from the AVStream
6970 * tbc = the time base in AVCodecContext for the codec used for a particular stream
You can’t perform that action at this time.
0 commit comments