]> git.sesse.net Git - vlc/blobdiff - modules/access/imem.c
avio: remove interrupt callback for output
[vlc] / modules / access / imem.c
index b6cd5890c2bbd6a4d1aa80c53c05fd25eff4ab93..5b4b05600b052ce1ce928aa2c51f9ec4e909bed1 100644 (file)
@@ -6,19 +6,19 @@
  *
  * 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.
  *****************************************************************************/
 
 /*****************************************************************************
@@ -46,11 +46,6 @@ static void CloseAccess(vlc_object_t *);
 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")
@@ -125,56 +120,54 @@ vlc_module_begin()
     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()
 
@@ -224,8 +217,6 @@ typedef struct {
 
     es_out_id_t  *es;
 
-    mtime_t      pts_delay;
-
     mtime_t      dts;
 
     mtime_t      deadline;
@@ -288,7 +279,6 @@ static int OpenCommon(vlc_object_t *object, imem_sys_t **sys_ptr, const char *ps
             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;
 
@@ -319,7 +309,6 @@ static int OpenAccess(vlc_object_t *object)
     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;
 }
@@ -339,8 +328,7 @@ static void CloseAccess(vlc_object_t *object)
  */
 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:
@@ -355,21 +343,19 @@ static int ControlAccess(access_t *access, int i_query, va_list args)
         *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;
     }
@@ -395,7 +381,7 @@ static block_t *Block(access_t *access)
 
     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);
     }
@@ -533,7 +519,7 @@ static int ControlDemux(demux_t *demux, int i_query, va_list args)
 
     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: {
@@ -595,7 +581,7 @@ static int Demux(demux_t *demux)
             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;
@@ -628,7 +614,6 @@ static void ParseMRL(vlc_object_t *object, const char *psz_path)
         const char *name;
         int        type;
     } options[] = {
-        { "caching",    VLC_VAR_INTEGER },
         { "id",         VLC_VAR_INTEGER },
         { "group",      VLC_VAR_INTEGER },
         { "cat",        VLC_VAR_INTEGER },