mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-01 22:21:13 +00:00
flvmux: push metadata on caps change
The metdata contains tags but also caps dependent info such as the resolution and the framerate. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4730>
This commit is contained in:
parent
3ae2904f3d
commit
0fd3c28620
2 changed files with 11 additions and 7 deletions
|
@ -519,8 +519,10 @@ gst_flv_mux_video_pad_setcaps (GstFlvMuxPad * pad, GstCaps * caps)
|
||||||
pad->info_changed = TRUE;
|
pad->info_changed = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pad->info_changed)
|
if (pad->info_changed) {
|
||||||
mux->state = GST_FLV_MUX_STATE_HEADER;
|
mux->state = GST_FLV_MUX_STATE_HEADER;
|
||||||
|
mux->new_metadata = TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (old_codec_data)
|
if (old_codec_data)
|
||||||
|
@ -704,8 +706,10 @@ gst_flv_mux_audio_pad_setcaps (GstFlvMuxPad * pad, GstCaps * caps)
|
||||||
pad->info_changed = TRUE;
|
pad->info_changed = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pad->info_changed)
|
if (pad->info_changed) {
|
||||||
mux->state = GST_FLV_MUX_STATE_HEADER;
|
mux->state = GST_FLV_MUX_STATE_HEADER;
|
||||||
|
mux->new_metadata = TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (old_codec_data)
|
if (old_codec_data)
|
||||||
|
|
|
@ -533,7 +533,7 @@ GST_START_TEST (test_video_caps_late)
|
||||||
|
|
||||||
|
|
||||||
/* push from flvmux to demux */
|
/* push from flvmux to demux */
|
||||||
fail_unless_equals_int (GST_FLOW_OK, gst_harness_sink_push_many (mux, 6));
|
fail_unless_equals_int (GST_FLOW_OK, gst_harness_sink_push_many (mux, 7));
|
||||||
|
|
||||||
/* verify we got 2x audio and 1x video buffers out of flvdemux */
|
/* verify we got 2x audio and 1x video buffers out of flvdemux */
|
||||||
gst_buffer_unref (gst_harness_pull (a_sink));
|
gst_buffer_unref (gst_harness_pull (a_sink));
|
||||||
|
@ -630,7 +630,7 @@ GST_START_TEST (test_video_caps_change_streamable)
|
||||||
gst_harness_crank_single_clock_wait (mux);
|
gst_harness_crank_single_clock_wait (mux);
|
||||||
|
|
||||||
/* push from flvmux to demux */
|
/* push from flvmux to demux */
|
||||||
fail_unless_equals_int (GST_FLOW_OK, gst_harness_sink_push_many (mux, 2));
|
fail_unless_equals_int (GST_FLOW_OK, gst_harness_sink_push_many (mux, 3));
|
||||||
|
|
||||||
/* should accept without the constraint */
|
/* should accept without the constraint */
|
||||||
while ((event = gst_harness_try_pull_event (v_sink))) {
|
while ((event = gst_harness_try_pull_event (v_sink))) {
|
||||||
|
@ -735,7 +735,7 @@ GST_START_TEST (test_audio_caps_change_streamable)
|
||||||
gst_harness_crank_single_clock_wait (mux);
|
gst_harness_crank_single_clock_wait (mux);
|
||||||
|
|
||||||
/* push from flvmux to demux */
|
/* push from flvmux to demux */
|
||||||
fail_unless_equals_int (GST_FLOW_OK, gst_harness_sink_push_many (mux, 2));
|
fail_unless_equals_int (GST_FLOW_OK, gst_harness_sink_push_many (mux, 3));
|
||||||
|
|
||||||
/* should accept without the constraint */
|
/* should accept without the constraint */
|
||||||
while ((event = gst_harness_try_pull_event (a_sink))) {
|
while ((event = gst_harness_try_pull_event (a_sink))) {
|
||||||
|
@ -820,7 +820,7 @@ GST_START_TEST (test_video_caps_change_streamable_single)
|
||||||
duration)));
|
duration)));
|
||||||
|
|
||||||
/* push from flvmux to demux */
|
/* push from flvmux to demux */
|
||||||
fail_unless_equals_int (GST_FLOW_OK, gst_harness_sink_push_many (mux, 2));
|
fail_unless_equals_int (GST_FLOW_OK, gst_harness_sink_push_many (mux, 3));
|
||||||
|
|
||||||
/* should accept without the constraint */
|
/* should accept without the constraint */
|
||||||
while ((event = gst_harness_try_pull_event (v_sink))) {
|
while ((event = gst_harness_try_pull_event (v_sink))) {
|
||||||
|
@ -906,7 +906,7 @@ GST_START_TEST (test_audio_caps_change_streamable_single)
|
||||||
base_time + duration, duration)));
|
base_time + duration, duration)));
|
||||||
|
|
||||||
/* push from flvmux to demux */
|
/* push from flvmux to demux */
|
||||||
fail_unless_equals_int (GST_FLOW_OK, gst_harness_sink_push_many (mux, 2));
|
fail_unless_equals_int (GST_FLOW_OK, gst_harness_sink_push_many (mux, 3));
|
||||||
|
|
||||||
/* should accept without the constraint */
|
/* should accept without the constraint */
|
||||||
while ((event = gst_harness_try_pull_event (a_sink))) {
|
while ((event = gst_harness_try_pull_event (a_sink))) {
|
||||||
|
|
Loading…
Reference in a new issue