*
* Author: Laurent Aimar <fenrir _AT_ videolan _DOT org>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
static int OpenDemux (vlc_object_t *);
static void CloseDemux(vlc_object_t *);
-#define CACHING_TEXT N_("Caching value in ms")
-#define CACHING_LONGTEXT N_(\
- "Caching value for imem streams. This " \
- "value should be set in milliseconds.")
-
#define ID_TEXT N_("ID")
#define ID_LONGTEXT N_(\
"Set the ID of the elementary stream")
set_category(CAT_INPUT)
set_subcategory(SUBCAT_INPUT_ACCESS)
- add_integer("imem-caching", DEFAULT_PTS_DELAY / 1000, NULL, CACHING_TEXT, CACHING_LONGTEXT, true)
- change_private()
- add_string ("imem-get", "0", NULL, GET_TEXT, GET_LONGTEXT, true)
+ add_string ("imem-get", "0", GET_TEXT, GET_LONGTEXT, true)
change_volatile()
- add_string ("imem-release", "0", NULL, RELEASE_TEXT, RELEASE_LONGTEXT, true)
+ add_string ("imem-release", "0", RELEASE_TEXT, RELEASE_LONGTEXT, true)
change_volatile()
- add_string ("imem-cookie", NULL, NULL, COOKIE_TEXT, COOKIE_LONGTEXT, true)
+ add_string ("imem-cookie", NULL, COOKIE_TEXT, COOKIE_LONGTEXT, true)
change_volatile()
change_safe()
- add_string ("imem-data", "0", NULL, DATA_TEXT, DATA_LONGTEXT, true)
+ add_string ("imem-data", "0", DATA_TEXT, DATA_LONGTEXT, true)
change_volatile()
- add_integer("imem-id", -1, NULL, ID_TEXT, ID_LONGTEXT, true)
+ add_integer("imem-id", -1, ID_TEXT, ID_LONGTEXT, true)
change_private()
change_safe()
- add_integer("imem-group", 0, NULL, GROUP_TEXT, GROUP_LONGTEXT, true)
+ add_integer("imem-group", 0, GROUP_TEXT, GROUP_LONGTEXT, true)
change_private()
change_safe()
- add_integer("imem-cat", 0, NULL, CAT_TEXT, CAT_LONGTEXT, true)
- change_integer_list(cat_values, cat_texts, NULL)
+ add_integer("imem-cat", 0, CAT_TEXT, CAT_LONGTEXT, true)
+ change_integer_list(cat_values, cat_texts)
change_private()
change_safe()
- add_string ("imem-codec", NULL, NULL, CODEC_TEXT, CODEC_LONGTEXT, true)
+ add_string ("imem-codec", NULL, CODEC_TEXT, CODEC_LONGTEXT, true)
change_private()
change_safe()
- add_string( "imem-language", NULL, NULL, LANGUAGE_TEXT, LANGUAGE_LONGTEXT, false)
+ add_string( "imem-language", NULL, LANGUAGE_TEXT, LANGUAGE_LONGTEXT, false)
change_private()
change_safe()
- add_integer("imem-samplerate", 0, NULL, SAMPLERATE_TEXT, SAMPLERATE_LONGTEXT, true)
+ add_integer("imem-samplerate", 0, SAMPLERATE_TEXT, SAMPLERATE_LONGTEXT, true)
change_private()
change_safe()
- add_integer("imem-channels", 0, NULL, CHANNELS_TEXT, CHANNELS_LONGTEXT, true)
+ add_integer("imem-channels", 0, CHANNELS_TEXT, CHANNELS_LONGTEXT, true)
change_private()
change_safe()
- add_integer("imem-width", 0, NULL, WIDTH_TEXT, WIDTH_LONGTEXT, true)
+ add_integer("imem-width", 0, WIDTH_TEXT, WIDTH_LONGTEXT, true)
change_private()
change_safe()
- add_integer("imem-height", 0, NULL, HEIGHT_TEXT, HEIGHT_LONGTEXT, true)
+ add_integer("imem-height", 0, HEIGHT_TEXT, HEIGHT_LONGTEXT, true)
change_private()
change_safe()
- add_string ("imem-dar", NULL, NULL, DAR_TEXT, DAR_LONGTEXT, true)
+ add_string ("imem-dar", NULL, DAR_TEXT, DAR_LONGTEXT, true)
change_private()
change_safe()
- add_string ("imem-fps", NULL, NULL, FPS_TEXT, FPS_LONGTEXT, true)
+ add_string ("imem-fps", NULL, FPS_TEXT, FPS_LONGTEXT, true)
change_private()
change_safe()
- add_integer ("imem-size", 0, NULL, SIZE_TEXT, SIZE_LONGTEXT, true)
+ add_integer ("imem-size", 0, SIZE_TEXT, SIZE_LONGTEXT, true)
change_private()
change_safe()
es_out_id_t *es;
- mtime_t pts_delay;
-
mtime_t dts;
mtime_t deadline;
sys->source.cookie ? sys->source.cookie : "(null)");
/* */
- sys->pts_delay = var_InheritInteger(object, "imem-caching") * INT64_C(1000);
sys->dts = 0;
sys->deadline = VLC_TS_INVALID;
access->pf_block = Block;
access->pf_seek = NULL;
access->p_sys = (access_sys_t*)sys;
- access->info.i_size = var_InheritInteger(object, "imem-size");
return VLC_SUCCESS;
}
*/
static int ControlAccess(access_t *access, int i_query, va_list args)
{
- imem_sys_t *sys = (imem_sys_t*)access->p_sys;
-
+ (void) access;
switch (i_query)
{
case ACCESS_CAN_SEEK:
*b = true;
return VLC_SUCCESS;
}
+ case ACCESS_GET_SIZE: {
+ uint64_t *s = va_arg(args, uint64_t *);
+ *s = var_InheritInteger(access, "imem-size");
+ return VLC_SUCCESS;
+ }
case ACCESS_GET_PTS_DELAY: {
int64_t *delay = va_arg(args, int64_t *);
- *delay = sys->pts_delay;
+ *delay = DEFAULT_PTS_DELAY; /* FIXME? */
return VLC_SUCCESS;
}
case ACCESS_SET_PAUSE_STATE:
return VLC_SUCCESS;
- case ACCESS_GET_TITLE_INFO:
- case ACCESS_SET_TITLE:
- case ACCESS_SET_SEEKPOINT:
- case ACCESS_SET_PRIVATE_ID_STATE:
- case ACCESS_GET_META:
- case ACCESS_GET_PRIVATE_ID_STATE:
- case ACCESS_GET_CONTENT_TYPE:
default:
return VLC_EGENERIC;
}
block_t *block = NULL;
if (buffer_size > 0) {
- block = block_New(access, buffer_size);
+ block = block_Alloc(buffer_size);
if (block)
memcpy(block->p_buffer, buffer, buffer_size);
}
case DEMUX_GET_PTS_DELAY: {
int64_t *delay = va_arg(args, int64_t *);
- *delay = sys->pts_delay;
+ *delay = DEFAULT_PTS_DELAY; /* FIXME? */
return VLC_SUCCESS;
}
case DEMUX_GET_POSITION: {
dts = pts;
if (buffer_size > 0) {
- block_t *block = block_New(demux, buffer_size);
+ block_t *block = block_Alloc(buffer_size);
if (block) {
block->i_dts = dts >= 0 ? (1 + dts) : VLC_TS_INVALID;
block->i_pts = pts >= 0 ? (1 + pts) : VLC_TS_INVALID;
const char *name;
int type;
} options[] = {
- { "caching", VLC_VAR_INTEGER },
{ "id", VLC_VAR_INTEGER },
{ "group", VLC_VAR_INTEGER },
{ "cat", VLC_VAR_INTEGER },