summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Teräs <[email protected]>2018-04-02 11:36:57 +0300
committerMichael Niedermayer <[email protected]>2018-04-04 19:09:28 +0200
commit53688b62ca96ad9a3b0e7d201caca61c79a68648 (patch)
tree238bd3f96b92714f3ad142da779a76ed44bd51cc
parent94d831f3886a7d5d207b9224cd52d11e22d0e8f1 (diff)
avformat/movenc: add rtp_hinting_needed() helper function
This is shared test and this simplifies code a bit. Follow up commit will have additional tests for this function. Signed-off-by: Timo Teräs <[email protected]> Signed-off-by: Michael Niedermayer <[email protected]>
-rw-r--r--libavformat/movenc.c30
1 files changed, 12 insertions, 18 deletions
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index ef668eccd5..bd275259ca 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -140,6 +140,13 @@ static int co64_required(const MOVTrack *track)
return 0;
}
+static int rtp_hinting_needed(const AVStream *st)
+{
+ /* Add hint tracks for each audio and video stream */
+ return st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO ||
+ st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO;
+}
+
/* Chunk offset atom */
static int mov_write_stco_tag(AVIOContext *pb, MOVTrack *track)
{
@@ -5941,14 +5948,9 @@ static int mov_init(AVFormatContext *s)
mov->chapter_track = mov->nb_streams++;
if (mov->flags & FF_MOV_FLAG_RTP_HINT) {
- /* Add hint tracks for each audio and video stream */
- for (i = 0; i < s->nb_streams; i++) {
- AVStream *st = s->streams[i];
- if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO ||
- st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
+ for (i = 0; i < s->nb_streams; i++)
+ if (rtp_hinting_needed(s->streams[i]))
mov->nb_streams++;
- }
- }
}
if ( mov->write_tmcd == -1 && (mov->mode == MODE_MOV || mov->mode == MODE_MP4)
@@ -6171,15 +6173,10 @@ static int mov_write_header(AVFormatContext *s)
nb_tracks++;
if (mov->flags & FF_MOV_FLAG_RTP_HINT) {
- /* Add hint tracks for each audio and video stream */
hint_track = nb_tracks;
- for (i = 0; i < s->nb_streams; i++) {
- AVStream *st = s->streams[i];
- if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO ||
- st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
+ for (i = 0; i < s->nb_streams; i++)
+ if (rtp_hinting_needed(s->streams[i]))
nb_tracks++;
- }
- }
}
if (mov->mode == MODE_MOV || mov->mode == MODE_MP4)
@@ -6257,11 +6254,8 @@ static int mov_write_header(AVFormatContext *s)
return ret;
if (mov->flags & FF_MOV_FLAG_RTP_HINT) {
- /* Initialize the hint tracks for each audio and video stream */
for (i = 0; i < s->nb_streams; i++) {
- AVStream *st = s->streams[i];
- if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO ||
- st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
+ if (rtp_hinting_needed(s->streams[i])) {
if ((ret = ff_mov_init_hinting(s, hint_track, i)) < 0)
return ret;
hint_track++;