mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 04:22:27 +00:00
qtmux: Actually use new caps info on renegotiation
Following the previous qtmux commit, this patch tries to use the new info added to the caps to fill the 'trak' atom's fields and children atoms. This way qtmux will use the late added 'codec_data' when h264parse adds it in the following pipeline: videotestsrc num-buffers=200 ! x264enc byte-stream=true ! \ h264parse output-format=0 ! qtmux ! \ filesink location=test.mov
This commit is contained in:
parent
a5f22f03aa
commit
33bf180eaa
2 changed files with 12 additions and 4 deletions
|
@ -460,14 +460,14 @@ atom_stsd_init (AtomSTSD * stsd)
|
|||
|
||||
atom_full_init (&stsd->header, FOURCC_stsd, 0, 0, 0, flags);
|
||||
stsd->entries = NULL;
|
||||
stsd->n_entries = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
atom_stsd_clear (AtomSTSD * stsd)
|
||||
atom_stsd_remove_entries (AtomSTSD * stsd)
|
||||
{
|
||||
GList *walker;
|
||||
|
||||
atom_full_clear (&stsd->header);
|
||||
walker = stsd->entries;
|
||||
while (walker) {
|
||||
GList *aux = walker;
|
||||
|
@ -489,6 +489,14 @@ atom_stsd_clear (AtomSTSD * stsd)
|
|||
}
|
||||
g_list_free (aux);
|
||||
}
|
||||
stsd->n_entries = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
atom_stsd_clear (AtomSTSD * stsd)
|
||||
{
|
||||
atom_stsd_remove_entries (stsd);
|
||||
atom_full_clear (&stsd->header);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -3015,6 +3023,7 @@ atom_trak_set_audio_type (AtomTRAK * trak, AtomsContext * context,
|
|||
SampleTableEntryMP4A *ste;
|
||||
|
||||
atom_trak_set_audio_commons (trak, context, scale);
|
||||
atom_stsd_remove_entries (&trak->mdia.minf.stbl.stsd);
|
||||
ste = atom_trak_add_audio_entry (trak, context, entry->fourcc);
|
||||
|
||||
trak->is_video = FALSE;
|
||||
|
@ -3088,6 +3097,7 @@ atom_trak_set_video_type (AtomTRAK * trak, AtomsContext * context,
|
|||
}
|
||||
|
||||
atom_trak_set_video_commons (trak, context, scale, dwidth, dheight);
|
||||
atom_stsd_remove_entries (&trak->mdia.minf.stbl.stsd);
|
||||
ste = atom_trak_add_video_entry (trak, context, entry->fourcc);
|
||||
|
||||
trak->is_video = TRUE;
|
||||
|
|
|
@ -1759,7 +1759,6 @@ gst_qt_mux_audio_sink_set_caps (GstPad * pad, GstCaps * caps)
|
|||
GST_DEBUG_OBJECT (qtmux,
|
||||
"pad %s accepted renegotiation to %" GST_PTR_FORMAT " from %"
|
||||
GST_PTR_FORMAT, GST_PAD_NAME (pad), caps, GST_PAD_CAPS (pad));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
GST_DEBUG_OBJECT (qtmux, "%s:%s, caps=%" GST_PTR_FORMAT,
|
||||
|
@ -2038,7 +2037,6 @@ gst_qt_mux_video_sink_set_caps (GstPad * pad, GstCaps * caps)
|
|||
GST_DEBUG_OBJECT (qtmux,
|
||||
"pad %s accepted renegotiation to %" GST_PTR_FORMAT " from %"
|
||||
GST_PTR_FORMAT, GST_PAD_NAME (pad), caps, GST_PAD_CAPS (pad));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
GST_DEBUG_OBJECT (qtmux, "%s:%s, caps=%" GST_PTR_FORMAT,
|
||||
|
|
Loading…
Reference in a new issue