mirror of
https://github.com/Rafostar/clapper.git
synced 2025-08-29 15:22:11 +02:00
clapper: Rename "uri-list-demux" element
Move as harvest URI demuxer since it is supposed to work only with harvest data from extractable src. Also change caps media type to "text/x-uri" which is non-standard, but we have to differentiate single URI from harvest and URI list (one or more URIs).
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/* Clapper Playback Library
|
/* Clapper Playback Library
|
||||||
* Copyright (C) 2024 Rafał Dzięgiel <rafostar.github@gmail.com>
|
* Copyright (C) 2025 Rafał Dzięgiel <rafostar.github@gmail.com>
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@@ -26,12 +26,12 @@
|
|||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define CLAPPER_TYPE_URI_LIST_DEMUX (clapper_uri_list_demux_get_type())
|
#define CLAPPER_TYPE_HARVEST_URI_DEMUX (clapper_harvest_uri_demux_get_type())
|
||||||
#define CLAPPER_URI_LIST_DEMUX_CAST(obj) ((ClapperUriListDemux *)(obj))
|
#define CLAPPER_HARVEST_URI_DEMUX_CAST(obj) ((ClapperHarvestUriDemux *)(obj))
|
||||||
|
|
||||||
G_GNUC_INTERNAL
|
G_GNUC_INTERNAL
|
||||||
G_DECLARE_FINAL_TYPE (ClapperUriListDemux, clapper_uri_list_demux, CLAPPER, URI_LIST_DEMUX, ClapperUriBaseDemux)
|
G_DECLARE_FINAL_TYPE (ClapperHarvestUriDemux, clapper_harvest_uri_demux, CLAPPER, HARVEST_URI_DEMUX, ClapperUriBaseDemux)
|
||||||
|
|
||||||
GST_ELEMENT_REGISTER_DECLARE (clapperurilistdemux)
|
GST_ELEMENT_REGISTER_DECLARE (clapperharvesturidemux)
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
@@ -1,5 +1,5 @@
|
|||||||
/* Clapper Playback Library
|
/* Clapper Playback Library
|
||||||
* Copyright (C) 2024 Rafał Dzięgiel <rafostar.github@gmail.com>
|
* Copyright (C) 2025 Rafał Dzięgiel <rafostar.github@gmail.com>
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@@ -16,12 +16,12 @@
|
|||||||
* <https://www.gnu.org/licenses/>.
|
* <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "clapper-uri-list-demux-private.h"
|
#include "clapper-harvest-uri-demux-private.h"
|
||||||
|
|
||||||
#define GST_CAT_DEFAULT clapper_uri_list_demux_debug
|
#define GST_CAT_DEFAULT clapper_harvest_uri_demux_debug
|
||||||
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
|
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
|
||||||
|
|
||||||
struct _ClapperUriListDemux
|
struct _ClapperHarvestUriDemux
|
||||||
{
|
{
|
||||||
ClapperUriBaseDemux parent;
|
ClapperUriBaseDemux parent;
|
||||||
|
|
||||||
@@ -32,12 +32,12 @@ struct _ClapperUriListDemux
|
|||||||
static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
|
static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
|
||||||
GST_PAD_SINK,
|
GST_PAD_SINK,
|
||||||
GST_PAD_ALWAYS,
|
GST_PAD_ALWAYS,
|
||||||
GST_STATIC_CAPS ("text/uri-list, source=(string)clapper-harvest"));
|
GST_STATIC_CAPS ("text/x-uri, source=(string)clapper-harvest"));
|
||||||
|
|
||||||
#define parent_class clapper_uri_list_demux_parent_class
|
#define parent_class clapper_harvest_uri_demux_parent_class
|
||||||
G_DEFINE_TYPE (ClapperUriListDemux, clapper_uri_list_demux, CLAPPER_TYPE_URI_BASE_DEMUX);
|
G_DEFINE_TYPE (ClapperHarvestUriDemux, clapper_harvest_uri_demux, CLAPPER_TYPE_URI_BASE_DEMUX);
|
||||||
GST_ELEMENT_REGISTER_DEFINE (clapperurilistdemux, "clapperurilistdemux",
|
GST_ELEMENT_REGISTER_DEFINE (clapperharvesturidemux, "clapperharvesturidemux",
|
||||||
512, CLAPPER_TYPE_URI_LIST_DEMUX);
|
512, CLAPPER_TYPE_HARVEST_URI_DEMUX);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_set_property (GstObject *obj, const gchar *prop_name, gpointer value)
|
_set_property (GstObject *obj, const gchar *prop_name, gpointer value)
|
||||||
@@ -93,10 +93,10 @@ configure_deep_element (GQuark field_id, const GValue *value, GstElement *child)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clapper_uri_list_demux_deep_element_added (GstBin *bin, GstBin *sub_bin, GstElement *child)
|
clapper_harvest_uri_demux_deep_element_added (GstBin *bin, GstBin *sub_bin, GstElement *child)
|
||||||
{
|
{
|
||||||
if (GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_FLAG_SOURCE)) {
|
if (GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_FLAG_SOURCE)) {
|
||||||
ClapperUriListDemux *self = CLAPPER_URI_LIST_DEMUX_CAST (bin);
|
ClapperHarvestUriDemux *self = CLAPPER_HARVEST_URI_DEMUX_CAST (bin);
|
||||||
|
|
||||||
g_mutex_lock (&self->lock);
|
g_mutex_lock (&self->lock);
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ clapper_uri_list_demux_deep_element_added (GstBin *bin, GstBin *sub_bin, GstElem
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
clapper_uri_list_demux_process_buffer (ClapperUriBaseDemux *uri_bd,
|
clapper_harvest_uri_demux_process_buffer (ClapperUriBaseDemux *uri_bd,
|
||||||
GstBuffer *buffer, GCancellable *cancellable)
|
GstBuffer *buffer, GCancellable *cancellable)
|
||||||
{
|
{
|
||||||
GstMemory *mem = gst_buffer_peek_memory (buffer, 0);
|
GstMemory *mem = gst_buffer_peek_memory (buffer, 0);
|
||||||
@@ -127,12 +127,12 @@ clapper_uri_list_demux_process_buffer (ClapperUriBaseDemux *uri_bd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clapper_uri_list_demux_handle_custom_event (ClapperUriBaseDemux *uri_bd, GstEvent *event)
|
clapper_harvest_uri_demux_handle_custom_event (ClapperUriBaseDemux *uri_bd, GstEvent *event)
|
||||||
{
|
{
|
||||||
const GstStructure *structure = gst_event_get_structure (event);
|
const GstStructure *structure = gst_event_get_structure (event);
|
||||||
|
|
||||||
if (structure && gst_structure_has_name (structure, "http-headers")) {
|
if (structure && gst_structure_has_name (structure, "http-headers")) {
|
||||||
ClapperUriListDemux *self = CLAPPER_URI_LIST_DEMUX_CAST (uri_bd);
|
ClapperHarvestUriDemux *self = CLAPPER_HARVEST_URI_DEMUX_CAST (uri_bd);
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (self, "Received \"http-headers\" custom event");
|
GST_DEBUG_OBJECT (self, "Received \"http-headers\" custom event");
|
||||||
|
|
||||||
@@ -146,15 +146,15 @@ clapper_uri_list_demux_handle_custom_event (ClapperUriBaseDemux *uri_bd, GstEven
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clapper_uri_list_demux_init (ClapperUriListDemux *self)
|
clapper_harvest_uri_demux_init (ClapperHarvestUriDemux *self)
|
||||||
{
|
{
|
||||||
g_mutex_init (&self->lock);
|
g_mutex_init (&self->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clapper_uri_list_demux_finalize (GObject *object)
|
clapper_harvest_uri_demux_finalize (GObject *object)
|
||||||
{
|
{
|
||||||
ClapperUriListDemux *self = CLAPPER_URI_LIST_DEMUX_CAST (object);
|
ClapperHarvestUriDemux *self = CLAPPER_HARVEST_URI_DEMUX_CAST (object);
|
||||||
|
|
||||||
GST_TRACE_OBJECT (self, "Finalize");
|
GST_TRACE_OBJECT (self, "Finalize");
|
||||||
|
|
||||||
@@ -165,26 +165,26 @@ clapper_uri_list_demux_finalize (GObject *object)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clapper_uri_list_demux_class_init (ClapperUriListDemuxClass *klass)
|
clapper_harvest_uri_demux_class_init (ClapperHarvestUriDemuxClass *klass)
|
||||||
{
|
{
|
||||||
GObjectClass *gobject_class = (GObjectClass *) klass;
|
GObjectClass *gobject_class = (GObjectClass *) klass;
|
||||||
GstElementClass *gstelement_class = (GstElementClass *) klass;
|
GstElementClass *gstelement_class = (GstElementClass *) klass;
|
||||||
GstBinClass *gstbin_class = (GstBinClass *) klass;
|
GstBinClass *gstbin_class = (GstBinClass *) klass;
|
||||||
ClapperUriBaseDemuxClass *clapperuribd_class = (ClapperUriBaseDemuxClass *) klass;
|
ClapperUriBaseDemuxClass *clapperuribd_class = (ClapperUriBaseDemuxClass *) klass;
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "clapperurilistdemux", 0,
|
GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "clapperharvesturidemux", 0,
|
||||||
"Clapper URI List Demux");
|
"Clapper Harvest URI Demux");
|
||||||
|
|
||||||
gobject_class->finalize = clapper_uri_list_demux_finalize;
|
gobject_class->finalize = clapper_harvest_uri_demux_finalize;
|
||||||
|
|
||||||
gstbin_class->deep_element_added = clapper_uri_list_demux_deep_element_added;
|
gstbin_class->deep_element_added = clapper_harvest_uri_demux_deep_element_added;
|
||||||
|
|
||||||
clapperuribd_class->process_buffer = clapper_uri_list_demux_process_buffer;
|
clapperuribd_class->process_buffer = clapper_harvest_uri_demux_process_buffer;
|
||||||
clapperuribd_class->handle_custom_event = clapper_uri_list_demux_handle_custom_event;
|
clapperuribd_class->handle_custom_event = clapper_harvest_uri_demux_handle_custom_event;
|
||||||
|
|
||||||
gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
|
gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
|
||||||
|
|
||||||
gst_element_class_set_static_metadata (gstelement_class, "Clapper URI List Demux",
|
gst_element_class_set_static_metadata (gstelement_class, "Clapper Harvest URI Demux",
|
||||||
"Demuxer", "A custom demuxer for URI lists",
|
"Demuxer", "A custom demuxer for harvested URI",
|
||||||
"Rafał Dzięgiel <rafostar.github@gmail.com>");
|
"Rafał Dzięgiel <rafostar.github@gmail.com>");
|
||||||
}
|
}
|
@@ -28,8 +28,8 @@
|
|||||||
|
|
||||||
#include "clapper-plugin-private.h"
|
#include "clapper-plugin-private.h"
|
||||||
#include "clapper-extractable-src-private.h"
|
#include "clapper-extractable-src-private.h"
|
||||||
|
#include "clapper-harvest-uri-demux-private.h"
|
||||||
#include "clapper-playlist-demux-private.h"
|
#include "clapper-playlist-demux-private.h"
|
||||||
#include "clapper-uri-list-demux-private.h"
|
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
clapper_gst_plugin_init (GstPlugin *plugin)
|
clapper_gst_plugin_init (GstPlugin *plugin)
|
||||||
@@ -46,7 +46,7 @@ clapper_gst_plugin_init (GstPlugin *plugin)
|
|||||||
/* Avoid registering an URI handler without schemes */
|
/* Avoid registering an URI handler without schemes */
|
||||||
if (clapper_enhancer_proxy_list_has_proxy_with_interface (global_proxies, CLAPPER_TYPE_EXTRACTABLE)) {
|
if (clapper_enhancer_proxy_list_has_proxy_with_interface (global_proxies, CLAPPER_TYPE_EXTRACTABLE)) {
|
||||||
res &= (GST_ELEMENT_REGISTER (clapperextractablesrc, plugin)
|
res &= (GST_ELEMENT_REGISTER (clapperextractablesrc, plugin)
|
||||||
&& GST_ELEMENT_REGISTER (clapperurilistdemux, plugin));
|
&& GST_ELEMENT_REGISTER (clapperharvesturidemux, plugin));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Type find will only register if there are playlistable enhancers */
|
/* Type find will only register if there are playlistable enhancers */
|
||||||
|
@@ -163,7 +163,7 @@ clapper_sources = [
|
|||||||
'gst/clapper-extractable-src.c',
|
'gst/clapper-extractable-src.c',
|
||||||
'gst/clapper-enhancer-director.c',
|
'gst/clapper-enhancer-director.c',
|
||||||
'gst/clapper-uri-base-demux.c',
|
'gst/clapper-uri-base-demux.c',
|
||||||
'gst/clapper-uri-list-demux.c',
|
'gst/clapper-harvest-uri-demux.c',
|
||||||
'gst/clapper-playlist-demux.c',
|
'gst/clapper-playlist-demux.c',
|
||||||
'../shared/clapper-shared-utils.c',
|
'../shared/clapper-shared-utils.c',
|
||||||
]
|
]
|
||||||
|
Reference in New Issue
Block a user