mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 19:21:06 +00:00
{audio,video}{en,de}oder: Also copy POOL metas and make sure to copy over metas when creating subbuffers
POOL meta just means that this specific instance of the meta is related to a pool, a copy should be made when reasonable and the flag should just not be set in the copy.
This commit is contained in:
parent
844fa28c67
commit
f5eebb27a2
4 changed files with 4 additions and 24 deletions
|
@ -1193,12 +1193,7 @@ foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
|
||||||
const GstMetaInfo *info = (*meta)->info;
|
const GstMetaInfo *info = (*meta)->info;
|
||||||
gboolean do_copy = FALSE;
|
gboolean do_copy = FALSE;
|
||||||
|
|
||||||
if (GST_META_FLAG_IS_SET (*meta, GST_META_FLAG_POOLED)) {
|
if (gst_meta_api_type_has_tag (info->api, _gst_meta_tag_memory)) {
|
||||||
/* never call the transform_meta with pool private metadata */
|
|
||||||
GST_DEBUG_OBJECT (decoder, "not copying pooled metadata %s",
|
|
||||||
g_type_name (info->api));
|
|
||||||
do_copy = FALSE;
|
|
||||||
} else if (gst_meta_api_type_has_tag (info->api, _gst_meta_tag_memory)) {
|
|
||||||
/* never call the transform_meta with memory specific metadata */
|
/* never call the transform_meta with memory specific metadata */
|
||||||
GST_DEBUG_OBJECT (decoder, "not copying memory specific metadata %s",
|
GST_DEBUG_OBJECT (decoder, "not copying memory specific metadata %s",
|
||||||
g_type_name (info->api));
|
g_type_name (info->api));
|
||||||
|
|
|
@ -664,12 +664,7 @@ foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
|
||||||
const GstMetaInfo *info = (*meta)->info;
|
const GstMetaInfo *info = (*meta)->info;
|
||||||
gboolean do_copy = FALSE;
|
gboolean do_copy = FALSE;
|
||||||
|
|
||||||
if (GST_META_FLAG_IS_SET (*meta, GST_META_FLAG_POOLED)) {
|
if (gst_meta_api_type_has_tag (info->api, _gst_meta_tag_memory)) {
|
||||||
/* never call the transform_meta with pool private metadata */
|
|
||||||
GST_DEBUG_OBJECT (encoder, "not copying pooled metadata %s",
|
|
||||||
g_type_name (info->api));
|
|
||||||
do_copy = FALSE;
|
|
||||||
} else if (gst_meta_api_type_has_tag (info->api, _gst_meta_tag_memory)) {
|
|
||||||
/* never call the transform_meta with memory specific metadata */
|
/* never call the transform_meta with memory specific metadata */
|
||||||
GST_DEBUG_OBJECT (encoder, "not copying memory specific metadata %s",
|
GST_DEBUG_OBJECT (encoder, "not copying memory specific metadata %s",
|
||||||
g_type_name (info->api));
|
g_type_name (info->api));
|
||||||
|
|
|
@ -2871,12 +2871,7 @@ foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
|
||||||
const GstMetaInfo *info = (*meta)->info;
|
const GstMetaInfo *info = (*meta)->info;
|
||||||
gboolean do_copy = FALSE;
|
gboolean do_copy = FALSE;
|
||||||
|
|
||||||
if (GST_META_FLAG_IS_SET (*meta, GST_META_FLAG_POOLED)) {
|
if (gst_meta_api_type_has_tag (info->api, _gst_meta_tag_memory)) {
|
||||||
/* never call the transform_meta with pool private metadata */
|
|
||||||
GST_DEBUG_OBJECT (decoder, "not copying pooled metadata %s",
|
|
||||||
g_type_name (info->api));
|
|
||||||
do_copy = FALSE;
|
|
||||||
} else if (gst_meta_api_type_has_tag (info->api, _gst_meta_tag_memory)) {
|
|
||||||
/* never call the transform_meta with memory specific metadata */
|
/* never call the transform_meta with memory specific metadata */
|
||||||
GST_DEBUG_OBJECT (decoder, "not copying memory specific metadata %s",
|
GST_DEBUG_OBJECT (decoder, "not copying memory specific metadata %s",
|
||||||
g_type_name (info->api));
|
g_type_name (info->api));
|
||||||
|
|
|
@ -1837,12 +1837,7 @@ foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
|
||||||
const GstMetaInfo *info = (*meta)->info;
|
const GstMetaInfo *info = (*meta)->info;
|
||||||
gboolean do_copy = FALSE;
|
gboolean do_copy = FALSE;
|
||||||
|
|
||||||
if (GST_META_FLAG_IS_SET (*meta, GST_META_FLAG_POOLED)) {
|
if (gst_meta_api_type_has_tag (info->api, _gst_meta_tag_memory)) {
|
||||||
/* never call the transform_meta with pool private metadata */
|
|
||||||
GST_DEBUG_OBJECT (encoder, "not copying pooled metadata %s",
|
|
||||||
g_type_name (info->api));
|
|
||||||
do_copy = FALSE;
|
|
||||||
} else if (gst_meta_api_type_has_tag (info->api, _gst_meta_tag_memory)) {
|
|
||||||
/* never call the transform_meta with memory specific metadata */
|
/* never call the transform_meta with memory specific metadata */
|
||||||
GST_DEBUG_OBJECT (encoder, "not copying memory specific metadata %s",
|
GST_DEBUG_OBJECT (encoder, "not copying memory specific metadata %s",
|
||||||
g_type_name (info->api));
|
g_type_name (info->api));
|
||||||
|
|
Loading…
Reference in a new issue