vlc.git
13 years agoQt4 - Remove the enqueue button and regroup it under the play button, since it is...
Jean-Baptiste Kempf [Sat, 31 Mar 2007 01:17:14 +0000 (01:17 +0000)]
Qt4 - Remove the enqueue button and regroup it under the play button, since it is far less used. KEEP IT SIMPLE :D
xtophe, is that what you wanted ?
Stream() does not do anything yet.

13 years agoRepair ATI VCR2 support by using ffmpeg instead of libmpeg2
Jean-Baptiste Kempf [Fri, 30 Mar 2007 22:31:33 +0000 (22:31 +0000)]
Repair ATI VCR2 support by using ffmpeg instead of libmpeg2

13 years agoUntested RGBA blending in I420, RV24 and RV32.
Antoine Cellerier [Fri, 30 Mar 2007 17:29:41 +0000 (17:29 +0000)]
Untested RGBA blending in I420, RV24 and RV32.

13 years agoMac OS X gui: Attempt to fix compilation error.
Pierre d'Herbemont [Fri, 30 Mar 2007 14:34:51 +0000 (14:34 +0000)]
Mac OS X gui: Attempt to fix compilation error.

13 years agoFix dirac patch
Christophe Mutricy [Fri, 30 Mar 2007 14:06:09 +0000 (14:06 +0000)]
Fix dirac patch

13 years ago* Missing part of previous commit [19535].
Derk-Jan Hartman [Fri, 30 Mar 2007 13:29:15 +0000 (13:29 +0000)]
* Missing part of previous commit [19535].
  cleanup of freetype.c by Bernie Purcell

13 years ago* Patch to support basic formatting in non-SSA/USF subtitle formats
Derk-Jan Hartman [Fri, 30 Mar 2007 12:51:46 +0000 (12:51 +0000)]
* Patch to support basic formatting in non-SSA/USF subtitle formats
  Several fixes for warnings.

  by Bernie Purcell <b dot purcell at adbglobal dot com>

13 years agoLibtiff repository has changed.
Jean-Baptiste Kempf [Thu, 29 Mar 2007 23:04:38 +0000 (23:04 +0000)]
Libtiff repository has changed.

13 years agoQt4 - Cosmetics: adding a <hr /> bar in advanced. SHould it be wider ?
Jean-Baptiste Kempf [Thu, 29 Mar 2007 22:53:45 +0000 (22:53 +0000)]
Qt4 - Cosmetics: adding a <hr /> bar in advanced. SHould it be wider ?

13 years agoMake the spacing coherent with the rest of the file.
Jean-Baptiste Kempf [Thu, 29 Mar 2007 22:18:08 +0000 (22:18 +0000)]
Make the spacing coherent with the rest of the file.

13 years agoUpdate News.
Jean-Baptiste Kempf [Thu, 29 Mar 2007 21:57:15 +0000 (21:57 +0000)]
Update News.

13 years ago* qt open dialog: double click plays the selected file
Yoann Peronneau [Thu, 29 Mar 2007 21:53:33 +0000 (21:53 +0000)]
* qt open dialog: double click plays the selected file

13 years agoAdd Flash Screen Video FourCC
Jean-Baptiste Kempf [Thu, 29 Mar 2007 21:52:08 +0000 (21:52 +0000)]
Add  Flash Screen Video  FourCC

13 years agoQt4 - cosmetic.
Jean-Baptiste Kempf [Thu, 29 Mar 2007 21:25:03 +0000 (21:25 +0000)]
Qt4 - cosmetic.

13 years agoQt4 - More hotkeys.
Jean-Baptiste Kempf [Thu, 29 Mar 2007 21:19:17 +0000 (21:19 +0000)]
Qt4 - More hotkeys.

13 years ago* fix a segfault
Yoann Peronneau [Thu, 29 Mar 2007 21:17:11 +0000 (21:17 +0000)]
* fix a segfault

13 years agoShortcuts.
Jean-Baptiste Kempf [Thu, 29 Mar 2007 21:10:42 +0000 (21:10 +0000)]
Shortcuts.

13 years agodon't build the doc in all cases for dirac
Christophe Mutricy [Thu, 29 Mar 2007 21:07:56 +0000 (21:07 +0000)]
don't build the doc in all cases for dirac

13 years agoClean.
Jean-Baptiste Kempf [Thu, 29 Mar 2007 20:15:45 +0000 (20:15 +0000)]
Clean.

13 years ago* qt: don't hide the file browser on double click
Yoann Peronneau [Thu, 29 Mar 2007 20:08:25 +0000 (20:08 +0000)]
* qt: don't hide the file browser on double click

13 years agovlcshell.cpp: compile fix
Damien Fouilleul [Thu, 29 Mar 2007 08:00:16 +0000 (08:00 +0000)]
vlcshell.cpp: compile fix

13 years ago- mozilla: support for libvlc_video_redraw_rectangle() message for PAINT events and...
Damien Fouilleul [Wed, 28 Mar 2007 22:02:51 +0000 (22:02 +0000)]
- mozilla: support for libvlc_video_redraw_rectangle() message for PAINT events and misc cleanups

13 years agovoutgl.m: support for VOUT_REDRAW_RECT in agl code, also added some smarts regarding...
Damien Fouilleul [Wed, 28 Mar 2007 22:00:48 +0000 (22:00 +0000)]
voutgl.m: support for VOUT_REDRAW_RECT in agl code, also added some smarts regarding handling null clip regions, which causes video flickers on Firefox/MacOSX when scrolling a page containing the mozilla plugin

13 years ago- libvlc: new libvlc_video_redraw_rectangle() API, this allows caller to tell vout...
Damien Fouilleul [Wed, 28 Mar 2007 21:57:39 +0000 (21:57 +0000)]
- libvlc: new libvlc_video_redraw_rectangle() API, this allows caller to tell vout to redraw part of video, vout needs to implement VOUT_REDRAW_RECT message to support this

13 years agoProtect header against double inclusion
Christophe Mutricy [Wed, 28 Mar 2007 21:28:24 +0000 (21:28 +0000)]
Protect header against double inclusion

13 years ago* qt: escape key on QVLCFrame and QVLCDialog closes them
Yoann Peronneau [Wed, 28 Mar 2007 18:53:27 +0000 (18:53 +0000)]
* qt: escape key on QVLCFrame and QVLCDialog closes them

13 years ago* QT prefs: escape key closes the dialog
Yoann Peronneau [Wed, 28 Mar 2007 18:28:56 +0000 (18:28 +0000)]
* QT prefs: escape key closes the dialog

13 years agohttp Access: Make sure non-absolute relocation is handled properly in a https session...
Pierre d'Herbemont [Wed, 28 Mar 2007 17:31:28 +0000 (17:31 +0000)]
http Access: Make sure non-absolute relocation is handled properly in a https session (thanks courmish).

13 years agoLimit RTCP sending to one every five seconds as per RFC3550
Rémi Denis-Courmont [Wed, 28 Mar 2007 16:23:40 +0000 (16:23 +0000)]
Limit RTCP sending to one every five seconds as per RFC3550

13 years agohttp Access: Avoid using an empty pointer (Oops).
Pierre d'Herbemont [Wed, 28 Mar 2007 11:12:26 +0000 (11:12 +0000)]
http Access: Avoid using an empty pointer (Oops).

13 years agohttp Access: Make sure we handle redirection that don't include the server name.
Pierre d'Herbemont [Wed, 28 Mar 2007 10:26:05 +0000 (10:26 +0000)]
http Access: Make sure we handle redirection that don't include the server name.

13 years agoMac OS X gui: checkForUpdate may not run on first thread. Hence alloc an autorelease...
Pierre d'Herbemont [Tue, 27 Mar 2007 23:53:28 +0000 (23:53 +0000)]
Mac OS X gui: checkForUpdate may not run on first thread. Hence alloc an autorelease pool in checkForUpdate.

13 years agoMac OS X gui: Remove unwanted NSLog from r19508.
Pierre d'Herbemont [Tue, 27 Mar 2007 23:18:56 +0000 (23:18 +0000)]
Mac OS X gui: Remove unwanted NSLog from r19508.

13 years agoMac OS X gui: Check for update on startup.
Pierre d'Herbemont [Tue, 27 Mar 2007 23:17:37 +0000 (23:17 +0000)]
Mac OS X gui: Check for update on startup.

13 years agoMac OS X gui: Fix libvlc key handling when leaving fullscreen.
Pierre d'Herbemont [Tue, 27 Mar 2007 22:27:07 +0000 (22:27 +0000)]
Mac OS X gui: Fix libvlc key handling when leaving fullscreen.

13 years agoqt4/menu.cpp: * Work around libqt4 opening gconf
Christophe Mutricy [Tue, 27 Mar 2007 22:26:24 +0000 (22:26 +0000)]
qt4/menu.cpp:  * Work around libqt4 opening gconf
       * improve readability of macros

13 years agoQt4 - cosmetics.
Jean-Baptiste Kempf [Tue, 27 Mar 2007 22:14:10 +0000 (22:14 +0000)]
Qt4 - cosmetics.

13 years ago* qt DirectoryConfigControl: default open in selected directory
Yoann Peronneau [Tue, 27 Mar 2007 22:09:18 +0000 (22:09 +0000)]
* qt DirectoryConfigControl: default open in selected directory

13 years ago* qt: add a FontConfigControl
Yoann Peronneau [Tue, 27 Mar 2007 21:54:16 +0000 (21:54 +0000)]
* qt: add a FontConfigControl

13 years ago* use add_file instead of add_string for skins2-last - this fixes QT interface simple...
Yoann Peronneau [Tue, 27 Mar 2007 20:39:20 +0000 (20:39 +0000)]
* use add_file instead of add_string for skins2-last - this fixes QT interface simple prefs

13 years ago* qt: really implement DirectoryConfigControl
Yoann Peronneau [Tue, 27 Mar 2007 19:33:50 +0000 (19:33 +0000)]
* qt: really implement DirectoryConfigControl

13 years ago- getaddrinfo.c : cleanup replacement APIs for win32 and make sure the shim logic...
Damien Fouilleul [Tue, 27 Mar 2007 19:06:18 +0000 (19:06 +0000)]
- getaddrinfo.c : cleanup replacement APIs for win32 and make sure the shim logic only searches for real APIs only once

13 years ago- control/input.c: don't rely on exceptions to control the state of API internal...
Damien Fouilleul [Tue, 27 Mar 2007 19:01:51 +0000 (19:01 +0000)]
- control/input.c: don't rely on exceptions to control the state of API internal logic as these are optional

13 years ago* open file widget: do nothing if the user clicked on cancel
Yoann Peronneau [Tue, 27 Mar 2007 18:48:09 +0000 (18:48 +0000)]
* open file widget: do nothing if the user clicked on cancel

13 years ago* browse subtitles: do nothing if the user clicked on Cancel
Yoann Peronneau [Tue, 27 Mar 2007 18:44:02 +0000 (18:44 +0000)]
* browse subtitles: do nothing if the user clicked on Cancel

13 years ago* use freetype-rel-fontsize instead of sub-rel-fontsize
Yoann Peronneau [Mon, 26 Mar 2007 23:45:44 +0000 (23:45 +0000)]
* use freetype-rel-fontsize instead of sub-rel-fontsize

13 years ago* open dialog: set subtitle size and align options
Yoann Peronneau [Mon, 26 Mar 2007 23:44:06 +0000 (23:44 +0000)]
* open dialog: set subtitle size and align options

13 years ago* build the subtitle align combo box
Yoann Peronneau [Mon, 26 Mar 2007 23:23:28 +0000 (23:23 +0000)]
* build the subtitle align combo box

13 years ago* build the subtitle size combo box, instead of hardcoded list
Yoann Peronneau [Mon, 26 Mar 2007 23:17:57 +0000 (23:17 +0000)]
* build the subtitle size combo box, instead of hardcoded list

13 years agoContrib - Dirac ; MacOS-X patch.
Jean-Baptiste Kempf [Mon, 26 Mar 2007 22:47:04 +0000 (22:47 +0000)]
Contrib - Dirac ; MacOS-X patch.

13 years agoContribs Dirac bumps from 0.5.4 to 0.6.0... Win32 patch updated
Jean-Baptiste Kempf [Mon, 26 Mar 2007 22:39:52 +0000 (22:39 +0000)]
Contribs Dirac bumps from 0.5.4 to 0.6.0... Win32 patch updated

13 years ago* open dialog: look for subtitles in the same directory as the movie
Yoann Peronneau [Mon, 26 Mar 2007 22:23:37 +0000 (22:23 +0000)]
* open dialog: look for subtitles in the same directory as the movie

13 years ago* use an int to select extension filters
Yoann Peronneau [Mon, 26 Mar 2007 21:33:00 +0000 (21:33 +0000)]
* use an int to select extension filters

13 years ago* open dialog: options like :sub-file= are now added to input (ie "use subtitles...
Yoann Peronneau [Mon, 26 Mar 2007 20:27:30 +0000 (20:27 +0000)]
* open dialog: options like :sub-file= are now added to input (ie "use subtitles" now works)

13 years ago* add a function to parse the mrl line
Yoann Peronneau [Mon, 26 Mar 2007 19:41:07 +0000 (19:41 +0000)]
* add a function to parse the mrl line

13 years ago* Use subtitles file extension filter for the "Open subtitles file" dialog.
Yoann Peronneau [Sun, 25 Mar 2007 22:21:30 +0000 (22:21 +0000)]
* Use subtitles file extension filter for the "Open subtitles file" dialog.

13 years agoEnable ffmpeg's GIF decoder for post r8520 revisions (Many thanks to Baptiste Couduri...
Antoine Cellerier [Sun, 25 Mar 2007 20:55:52 +0000 (20:55 +0000)]
Enable ffmpeg's GIF decoder for post r8520 revisions (Many thanks to Baptiste Coudurier for fixing the bug(s)).

13 years agoAllow URL parameter of arbitrary size (closes #1125)
Rémi Denis-Courmont [Sun, 25 Mar 2007 19:35:14 +0000 (19:35 +0000)]
Allow URL parameter of arbitrary size (closes #1125)

13 years agoRemove debug
Rémi Denis-Courmont [Sun, 25 Mar 2007 19:21:38 +0000 (19:21 +0000)]
Remove debug

13 years agoSplit ExtractURIValue into a research and an extract function
Rémi Denis-Courmont [Sun, 25 Mar 2007 19:21:20 +0000 (19:21 +0000)]
Split ExtractURIValue into a research and an extract function

13 years agoUpgrade dirac support to 0.6.0 (close #1129)
Laurent Aimar [Sun, 25 Mar 2007 18:46:44 +0000 (18:46 +0000)]
Upgrade dirac support to 0.6.0 (close #1129)

13 years agoRename sigset_t variables. No run-time change.
Rémi Denis-Courmont [Sun, 25 Mar 2007 18:18:32 +0000 (18:18 +0000)]
Rename sigset_t variables. No run-time change.

13 years agoAdd 2 missing calls to config_ChainDestroy().
Antoine Cellerier [Sun, 25 Mar 2007 17:05:53 +0000 (17:05 +0000)]
Add 2 missing calls to config_ChainDestroy().

13 years agoRemove last call to strchr( , ':' ) and fix a small memleak.
Antoine Cellerier [Sun, 25 Mar 2007 17:01:26 +0000 (17:01 +0000)]
Remove last call to strchr( , ':' ) and fix a small memleak.

13 years agoRemove trailing space + comment fix.
Antoine Cellerier [Sun, 25 Mar 2007 15:26:17 +0000 (15:26 +0000)]
Remove trailing space + comment fix.

13 years agoconfig chain syntax support for the image video output.
Antoine Cellerier [Sun, 25 Mar 2007 15:24:47 +0000 (15:24 +0000)]
config chain syntax support for the image video output.

13 years agoSmall fix.
Antoine Cellerier [Sun, 25 Mar 2007 15:24:29 +0000 (15:24 +0000)]
Small fix.

13 years agoAdd support for config chain option parsing.
Antoine Cellerier [Sun, 25 Mar 2007 14:48:56 +0000 (14:48 +0000)]
Add support for config chain option parsing.

13 years agoAllow using the config chain syntax for vout filters and vouts.
Antoine Cellerier [Sun, 25 Mar 2007 14:48:09 +0000 (14:48 +0000)]
Allow using the config chain syntax for vout filters and vouts.

13 years agoGestures: Fix two dead locks when changing audio track and subtitle track when there...
Pierre d'Herbemont [Sun, 25 Mar 2007 14:47:41 +0000 (14:47 +0000)]
Gestures: Fix two dead locks when changing audio track and subtitle track when there is no such track.

13 years agoGestures: The break statement here refers to the local for. Don't release the p_input...
Pierre d'Herbemont [Sun, 25 Mar 2007 14:22:47 +0000 (14:22 +0000)]
Gestures: The break statement here refers to the local for. Don't release the p_input in this case.

13 years agoRemove double ;
Antoine Cellerier [Sun, 25 Mar 2007 13:41:59 +0000 (13:41 +0000)]
Remove double ;

13 years agoWoops, forgot to remove this reference to p_libvlc_global yesterday.
Antoine Cellerier [Sun, 25 Mar 2007 13:21:06 +0000 (13:21 +0000)]
Woops, forgot to remove this reference to p_libvlc_global yesterday.

13 years agoWe want to check the main type only (& 0x00f0).
Antoine Cellerier [Sun, 25 Mar 2007 13:14:56 +0000 (13:14 +0000)]
We want to check the main type only (& 0x00f0).

13 years agolibvlc/control: make sure aout is active before attempting to use channels
Damien Fouilleul [Sun, 25 Mar 2007 12:39:43 +0000 (12:39 +0000)]
libvlc/control: make sure aout is active before attempting to use channels

13 years agoGestures: Really remove unwanted commit. (Oops).
Pierre d'Herbemont [Sun, 25 Mar 2007 12:16:55 +0000 (12:16 +0000)]
Gestures: Really remove unwanted commit. (Oops).

13 years agoGestures: Remove unwanted commit.
Pierre d'Herbemont [Sun, 25 Mar 2007 12:15:08 +0000 (12:15 +0000)]
Gestures: Remove unwanted commit.

13 years agoGestures: no need to retain p_playlist longer than really needed.
Pierre d'Herbemont [Sun, 25 Mar 2007 12:11:12 +0000 (12:11 +0000)]
Gestures: no need to retain p_playlist longer than really needed.

13 years agoGestures: Make sure we that p_playlist is valid, and correctly release p_input and...
Pierre d'Herbemont [Sun, 25 Mar 2007 12:08:36 +0000 (12:08 +0000)]
Gestures: Make sure we that p_playlist is valid, and correctly release p_input and p_playlist.

13 years ago- mozilla: added 'firefox-xpcom' to pkgconfig candidates
Damien Fouilleul [Sun, 25 Mar 2007 12:08:23 +0000 (12:08 +0000)]
- mozilla: added 'firefox-xpcom' to pkgconfig candidates

13 years agoGestures: Obtain the p_input associated with the p_playlist when needed.
Pierre d'Herbemont [Sun, 25 Mar 2007 11:50:26 +0000 (11:50 +0000)]
Gestures: Obtain the p_input associated with the p_playlist when needed.

13 years agoBlock SIGCHLD so we don't get polluted by system() in another thread[1]
Rémi Denis-Courmont [Sun, 25 Mar 2007 09:56:25 +0000 (09:56 +0000)]
Block SIGCHLD so we don't get polluted by system() in another thread[1]
(though this seem to only happen with debuggers and (?)broken OSes)

[1] system() blocks SIGCHLD, and is probably not intended for multithreading

We cannot assume that blocking calls in other libraries ignore EINTR anyway,
so the only safe approach is to block in all threads (you can unblock it in
your thread if you really want it) except the signal handling thread.

13 years agoNew gestures actions.
Jean-Baptiste Kempf [Sat, 24 Mar 2007 22:32:55 +0000 (22:32 +0000)]
New gestures actions.

13 years agoQt4 - Codec Information direct access from menu.
Jean-Baptiste Kempf [Sat, 24 Mar 2007 22:29:58 +0000 (22:29 +0000)]
Qt4 - Codec Information direct access from menu.

13 years agoCore: Prefer ANSI-C style comments over C++ comments.
Pierre d'Herbemont [Sat, 24 Mar 2007 22:28:46 +0000 (22:28 +0000)]
Core: Prefer ANSI-C style comments over C++ comments.

13 years agoGestures: Make sure we follow the locking strategy established in [19436].
Pierre d'Herbemont [Sat, 24 Mar 2007 22:21:08 +0000 (22:21 +0000)]
Gestures: Make sure we follow the locking strategy established in [19436].

13 years agoGestures: Defines p_intf->change_lock rules, and apply them.
Pierre d'Herbemont [Sat, 24 Mar 2007 21:33:30 +0000 (21:33 +0000)]
Gestures: Defines p_intf->change_lock rules, and apply them.

13 years agoGestures: Fix typo in comment.
Pierre d'Herbemont [Sat, 24 Mar 2007 20:57:23 +0000 (20:57 +0000)]
Gestures: Fix typo in comment.

13 years agoGestures: Make sure p_intf->p_sys->p_input gets released.
Pierre d'Herbemont [Sat, 24 Mar 2007 20:52:12 +0000 (20:52 +0000)]
Gestures: Make sure p_intf->p_sys->p_input gets released.

13 years agoUse the module's name as object name if none was explicitly given by the user.
Antoine Cellerier [Sat, 24 Mar 2007 20:36:57 +0000 (20:36 +0000)]
Use the module's name as object name if none was explicitly given by the user.

13 years ago * Don't call var_Get every time we have an image to process and register the variabl...
Antoine Cellerier [Sat, 24 Mar 2007 20:25:25 +0000 (20:25 +0000)]
 * Don't call var_Get every time we have an image to process and register the variables as commands.

13 years agoOops.
Antoine Cellerier [Sat, 24 Mar 2007 20:21:30 +0000 (20:21 +0000)]
Oops.

13 years agoRegister variables as callback. Don't store module specific variables in p_libvlc_glo...
Antoine Cellerier [Sat, 24 Mar 2007 18:30:39 +0000 (18:30 +0000)]
Register variables as callback. Don't store module specific variables in p_libvlc_global. They don't belong there.

13 years agoAdd new var_CreateGet<type>Command functions which set the VLC_VAR_ISCOMMAND flag.
Antoine Cellerier [Sat, 24 Mar 2007 18:29:20 +0000 (18:29 +0000)]
Add new var_CreateGet<type>Command functions which set the VLC_VAR_ISCOMMAND flag.

13 years agoif we var_Create with DOINHERIT|ISCOMMAND and ISCOMMAND isn't set on the source varia...
Antoine Cellerier [Sat, 24 Mar 2007 18:28:50 +0000 (18:28 +0000)]
if we var_Create with DOINHERIT|ISCOMMAND and ISCOMMAND isn't set on the source variable, then inherit anyway and add ISCOMMAND to the type.

13 years agoAllow using an object's psz_object_name as id for the libvlc_global commands "tree...
Antoine Cellerier [Sat, 24 Mar 2007 17:13:40 +0000 (17:13 +0000)]
Allow using an object's psz_object_name as id for the libvlc_global commands "tree" and "vars". Example use:
./vlc -I rc --sub-filter marq@test --no-audio ~/media/redefined-nintendo.mpg
vars test
(instead of "vars 376" ... or whatever the integer id is)

13 years agoTypo fix.
Antoine Cellerier [Sat, 24 Mar 2007 16:22:20 +0000 (16:22 +0000)]
Typo fix.

13 years agoAdd news about the rc command syntax change.
Antoine Cellerier [Sat, 24 Mar 2007 16:20:06 +0000 (16:20 +0000)]
Add news about the rc command syntax change.

13 years ago* Make it possible to give names to vlc objects (psz_object_name
Antoine Cellerier [Sat, 24 Mar 2007 16:02:51 +0000 (16:02 +0000)]
* Make it possible to give names to vlc objects (psz_object_name
already existed but was only used by modules as far as is know). This
is done in the module_Need function. Needed module names now have this
syntax: '<module>[@<name>]'. If the @<name> part is present, once the
needed module is found it will change p_this->psz_object_name to <name>.
In about 99% of the module_Need calls, p_this is the module's parent
object so this is ok. The remaining calls won't use this syntax so it's
ok i guess :)

* Add new vlc_object_find_name function. It works like vlc_object_find
but uses a string (name) instead of an integer (type) as its second
argument.

* Change the marq, mosaic and logo commands in rc.c. They now take the
target object's name as first argument. Example:

Launch vlc with:
./vlc -I rc --no-audio --sub-filter "marq@test{marquee=Hello}:marq@testouille{marquee=Test}" ~/media/redefined-nintendo.mpg

Then issue the following command to move the second marq:
marq-x testouille 100

(and while testing I fixed #745)

13 years agoForgot this file
Rémi Denis-Courmont [Sat, 24 Mar 2007 11:35:24 +0000 (11:35 +0000)]
Forgot this file