Commit Graph

190 Commits

Author SHA1 Message Date
Rémi Denis-Courmont
4b4eeb1113 Fix ordering of CSRC and RTP profile extension 2007-03-08 16:47:15 +00:00
Rémi Denis-Courmont
e5bd9ad90b Fix references 2007-03-06 18:56:24 +00:00
Rémi Denis-Courmont
906a3bfe40 - Fix obvious crash in TCP/RTP/AVP
- Remove an useless variable
2007-03-05 17:54:33 +00:00
Rémi Denis-Courmont
af5e5b18bd - Clean up RTP parser
- Add support for RTP padding

By the way, the MPEG-Video parser seems to ignore the MP2V specific
extra header (i.e. it passes it onto the demux instead of removing it).
Not sure if this is intended (any MPEG expert?)
2007-03-05 17:52:47 +00:00
Rémi Denis-Courmont
93c16a0b4e Simplify shutdown() portability 2007-02-26 16:54:05 +00:00
Rémi Denis-Courmont
72754868d7 Fix use of uninitialized memory with raw UDP
(seriously, you should have switched to RTP for ages though)
2007-02-19 20:35:25 +00:00
Rémi Denis-Courmont
9979fb83d4 Single service DCCP/RTP/AVP input 2007-02-14 19:59:54 +00:00
Rémi Denis-Courmont
eb14a72b31 Mark EOF in case of connection-orinted RTP transport 2007-02-13 19:51:07 +00:00
Rémi Denis-Courmont
d11f95347b 0 bytes UDP packet are legal! 2007-02-13 19:47:51 +00:00
Rémi Denis-Courmont
56c78d09b1 Fix previous commit 2007-02-12 19:50:29 +00:00
Rémi Denis-Courmont
9a62137022 Support for TCP/RTP/AVP (rtptcp://).
This is no excuse for using TCP instead of UDP/UDP-Lite when you can.
2007-02-12 19:42:40 +00:00
Rémi Denis-Courmont
64bbfe6b27 Fix out-of-bound read in RTP access
Fortunately, the harm potential of this old bug seems pretty low
2007-02-12 18:04:58 +00:00
Rémi Denis-Courmont
31456021a2 Force RTP for UDP-Lite, as we have no legacy issue (suggestion from Md) 2007-02-10 13:38:42 +00:00
Rémi Denis-Courmont
7605da8016 I *can* do it 2007-02-05 17:15:49 +00:00
Rémi Denis-Courmont
9155f25c63 Fix linking 2007-02-05 17:06:28 +00:00
Rémi Denis-Courmont
89f058543f Fix impossible out-of-bound strcmp 2007-02-05 16:49:14 +00:00
Rémi Denis-Courmont
d8ae255f3d UDP-Lite access
This is completely untested because vlc does not link at the moment :(
2007-02-05 16:32:31 +00:00
Clément Stenac
d3fe7f2879 A bit of headers cleanup
* Headers in include must contain the structures and prototypes needed
  by the plugins and should be named vlc_*.
* Headers in include/vlc must contain the structures and prototypes
  needed by external libvlc clients

* Moved and renamed some things in headers. 
   - Removed vlc_cpu.h, vlc_error.h (merged in vlc_common)
   - Removed snapshot.h (merged in vlc_vout.h)
   - Removed vlc_spu.h (merged in vlc_osd.h)
   - Removed intf_eject.h and vlc_interaction.h (merged in vlc_interface)
   - Moved all internal headers to src
   - Merged vlc_video.h and video_output.h and move private things to src
   - Removed vlc/intf.h, vlc/aout.h, vlc/vout.h, vlc/decoder.h and vlc/input.h
     (meta headers for use in modules, and often implying too large 
     dependencies)
* Removed some useless dependencies
* Unexported a bunch of functions and structures used only in src/
  (--> Still some work here)
* Finally made input_thread_t and input_source_t (mostly) private. 
  Added input_GetItem to fetch the input_item of an input_thread
* Cleaned up deprecated entries in vlc_symbols.h and bumped up symbol 
  prefix

This commit has a 99% probability of breaking the build, 0.1% of killing
your cat and 0% of getting you hot chicks.
2006-11-26 14:20:34 +00:00
Rémi Denis-Courmont
9e430e6b5b Fix warning 2006-11-04 13:56:49 +00:00
Jean-Paul Saman
f788b61890 Remove excess empty lines 2006-10-30 08:35:31 +00:00
Clément Stenac
90a4caea90 Some more demux and access code factorization 2006-07-19 09:33:41 +00:00
Christophe Mutricy
4f15591e47 Access/*: Second lecture (refs #438) 2006-03-31 23:07:01 +00:00
Clément Stenac
36a5efe8b5 Access strings (Refs:#438) 2006-03-29 13:49:40 +00:00
Jean-Paul Saman
38540559f5 Update e-mail address 2006-03-09 09:47:30 +00:00
Antoine Cellerier
2cb472dba0 FSF address change. 2006-01-12 23:10:04 +00:00
Marian Durkovic
22a94562df always go through BlockChoose(), since it assigns the correct demuxer
(otherwise e.g. MPEG2 video is mistetected as MPEG-PS)
2005-11-20 08:36:06 +00:00
Marian Durkovic
3760ad3478 don't perform prebuffering for UDP, since it causes refclock fluctuation
as large as +/- 25 msec and too frequent audio up/down sampling
2005-11-19 07:57:08 +00:00
Marian Durkovic
8ee331bf2b forwardport [13195] 2005-11-11 19:26:24 +00:00
Marian Durkovic
17b6340598 removed i_seqno from block_t ; RTP access now stores seqno in i_dts.
Closes #414
2005-10-29 18:06:58 +00:00
Marian Durkovic
24dc1822eb skip 4 bytes also for RTP payload=32 (MPV) - RFC2250 2005-10-27 12:57:14 +00:00
Marian Durkovic
4a3274fbe8 modifications for RTP reordering:
* for RTP, prebuffering is done within RTP access
 * reordering now working within this buffer
 * solves synchro problems since packet rate is preserved
2005-10-24 17:08:54 +00:00
Jean-Paul Saman
1d135a804f RTP reordering fixes. 2005-10-18 21:03:34 +00:00
Jean-Paul Saman
e75daaa6f4 reverted most of revision 12872, it didn't work after all 2005-10-17 21:41:01 +00:00
Jean-Paul Saman
eeab96f133 Several RTP reordering fixes (Thanks to Marian Durkovic for finding them) 2005-10-17 20:43:33 +00:00
Jean-Paul Saman
506e6faab0 RTP reordering in module/access/udp.c done by me with help from Marian Durkovic (md _AT_ bts _dot_ sk). Allow src/input/stream.c to handle a linked list of blocks from demuxers. 2005-10-15 22:07:55 +00:00
Laurent Aimar
47d4e675cc * input: :demux=module really force module and bypass demuxer module given
by access.
 * udp: force ts demux on payload 33 (:demux=dump will work)
2005-10-06 22:09:24 +00:00
Laurent Aimar
d4c07f8d56 * udp: Patch by Marian Durkovic:
"I've added a bit of code to the UDP/RTP input, which assures that old
 or duplicate RTP packets are trashed. When the network performs packet
 reordering, only one discontinuity happens instead of 3 before - since
 the old packet is trashed. If multiple copies of the same packet are
 received, only one is used and all the others are trashed."
2005-10-06 20:24:55 +00:00
Laurent Aimar
8546371b48 udp: support for RTP"header extension. Patch by Zohar Lorberbaum . 2005-10-06 19:39:15 +00:00
Jean-Paul Saman
6882d77323 Remove trailing whitespace 2005-09-29 14:32:54 +00:00
Christophe Massiot
7c0f0b05df * modules/access/udp.c: Disabled ts forcing on streamtype 33 because it
is autodetected (refs http://forum.videolan.org/viewtopic.php?t=10257).
2005-08-24 14:42:15 +00:00
Jean-Paul Saman
30ec47f86a Track RTP sequence numbers and mark the first MPEG2-TS packet with a transport error when a discontinuity occurs. 2005-08-08 12:25:42 +00:00
Rémi Denis-Courmont
8e916c3718 Fix typo in previous commit 2005-08-02 15:23:46 +00:00
Rémi Denis-Courmont
1b78860626 Don't reinvent strchr() 2005-08-01 17:54:14 +00:00
Rémi Denis-Courmont
fe087a3828 Make Zorglub less unhappy 2005-07-09 06:17:09 +00:00
Rémi Denis-Courmont
85b29bdc28 Copyright fixes
(da big courmischage)
2005-07-08 18:12:44 +00:00
Rémi Denis-Courmont
f1cffc8822 StopSend for UDP access 2005-06-30 18:34:43 +00:00
Christophe Massiot
17819e9b24 * modules/access/udp.c : Fixed a segfault. 2005-04-08 17:39:18 +00:00
Christophe Massiot
074d01d6e6 * modules/access/udp.c: When udp is invoked as 'rtp:', only consider RTP
packets.
2005-01-07 19:57:00 +00:00
Clément Stenac
d5eacbea63 Really fix all the set_name.
Sorry for the trouble
2004-12-16 18:58:12 +00:00
Clément Stenac
a90a19a6b0 Improvements to preferences
* Each module can declare a "human-readable short name" with set_name
* Modules are sorted by category (set_category, set_subcategory).
  Modules configs can be separated by set_section()
* Separated audio-filter and audio-visual
* Separated extraintf and control
* New command and widget : add_module_list() for comma-separated modules
* Vfilters now use "," as separator
2004-12-11 14:45:46 +00:00
Gildas Bazin
1ee2238d6c * modules/access/udp.c: force proper demuxers in rtp mode. 2004-11-27 11:45:53 +00:00
Rémi Denis-Courmont
436b59c583 net_* API update for encryption (recv / send virtualization) 2004-11-07 11:02:59 +00:00
Derk-Jan Hartman
9bfb547eac * Don't bitch anymore about not found access_demux plugins.
* Add ACCESS_SET_PRIVATE_ID_STATE to the list of every access plugin
* msg_Err -> msg_Warn for unimplemented Control queries
2004-08-31 18:32:54 +00:00
Laurent Aimar
b58037d325 * udp: unused line. 2004-08-24 20:03:15 +00:00
Gildas Bazin
a61500b244 * modules/access/udp.c: use the "ts" demux when in rtp mode (and not "ts2").
* modules/mux/mp4.c: Warning fix patch by Zoltan Nagy.
2004-08-06 13:29:18 +00:00
Laurent Aimar
2e9954d9e4 * udp: increase the mtu by *2 instead of 10%. 2004-06-06 13:53:53 +00:00
Laurent Aimar
3b6a46b8c5 * access/*: use var_* helpers.
* access/vcd/ clean up.
2004-06-06 12:51:06 +00:00
Laurent Aimar
2d64aa5c99 * udp: activate udp-auto-mtu by default. It increases the internal MTU
by 10% each time we read a packet greater or equal to the MTU.
 It should be harmless.
2004-06-04 21:59:48 +00:00
Laurent Aimar
74444e997f * udp: converted to access2 (using pf_block, so for now it may hurt a
bit the perfs as we do a memcpy in access2.c)
2004-06-04 21:51:34 +00:00
Sam Hocevar
4b9f4ff644 * Massive spelling corrections. 2004-04-27 16:35:15 +00:00
Derk-Jan Hartman
bacc1e260e * modules/demux/sgimb.c
- when we open a kasenna multicast udp stream, don't pass along to RTSP.
  - set the correct mtu for Kasenna streams.
* rest
  --mtu can now be set via :mtu playlist option.\
2004-04-21 01:46:41 +00:00
Alexis de Lattre
f73d3dd225 * ipv4.c: IGMPv3 support (IP_ADD_SOURCE_MEMBERSHIP) for Win32
* udp.c: restored the old syntax udp:server_addr@destination_addr
 * libvlc.h: updated 'vlc --help'

 To do an IGMPv3 query under Windows XP do:
 vlc udp:<source_addr>@<multicast_addr>
 Note: under previous versions of Windows, it will fail to join the group.
2004-01-31 18:02:32 +00:00
Gildas Bazin
630d42d5a3 * modules/access/*: strings review + coding style fixes. 2004-01-25 17:31:22 +00:00
Laurent Aimar
90ff5f51c3 * net: added net_OpenUDP
* udp: cleaned to use net_*
2004-01-21 10:22:31 +00:00
Sam Hocevar
3d6ee48d4a * modules/misc/dummy/renderer.c:
+ Removed evil ^Ms from the file.
  * modules/video_output/caca.c:
    + Support for new dithering modes (libcaca HEAD only).
  * modules/* src/*:
    + Grammar and spelling fixes.
    + Coding style fixes.
  * po/fr.po:
    + Spelling fixes.
    + Updated a few translations.
  * po/en_GB.po:
    + Updated a few translations.
2003-12-04 16:49:45 +00:00
Laurent Aimar
0ffc325f03 * udp: mp3/rtp is now correctly working. 2003-11-07 18:32:55 +00:00
Jean-Paul Saman
10b303ec01 Reviewed file:
- fixed border cases with peeking in the packet.
2003-10-23 14:30:26 +00:00
Gildas Bazin
dd9e6708a2 * configure.ac, modules/codec/Modules.am, modules/codec/speex.c: new speex decoder and packetizer using libspeex.
* modules/demux/ogg.c: added support for speex to the Ogg demuxer.
* modules/mux/ogg.c: added support for speex to the Ogg muxer.
* src/misc/variables.c: when creating choices object variables with inheritance enabled, automatically add the inherited value to the list of choices.
* modules/access/udp.c: use an object variable and inheritance for "udp-caching".
* src/input/input.c: disable the hack for filenames with colons on win32 because filenames can't contain colons.
2003-10-22 17:12:31 +00:00
Derk-Jan Hartman
1012982ec6 * changed debug strings to diff between unsupported RTP payload and non-rtp packet
see bug 1136
2003-08-24 16:59:35 +00:00
Laurent Aimar
0d39f13d96 * all: added a i_ttl field in network_socket_t to allow per connection ttl
setting (in fact only used by access_out/udp.c.
2003-07-31 23:44:49 +00:00
Jean-Paul Saman
986af9f1b1 When recv() returns -1 a bug is triggered inside RTPRead() and RTPChoose(). The return value of Read() is then -1. The test "if (!i_ret) return 0;" will be false and the function will continue resulting in segfault while copying from buffers that are in an undetermined state. The correct test is "if (i_ret<0) return 0;". 2003-07-23 07:37:34 +00:00
Gildas Bazin
a1e8137774 * modules/*: sanitization of the modules description strings. 2003-03-30 18:14:39 +00:00
Gildas Bazin
e56522ecee * modules/access/*: grrr... apparently I also need to reset the file descriptor set inside the loop. 2003-03-24 20:00:51 +00:00
Gildas Bazin
59e1e3d6ce * modules/access/*: don't forget to reinitialize the timeout when looping around select(). 2003-03-24 19:12:16 +00:00
Gildas Bazin
607b74b2a1 * modules/access/*: pf_read() in access modules is now blocking. We still
check regularly for p_input->b_die though. Now the demuxers can safely
   assume that pf_read() == 0 means EOF.
* ALL: got rid of the p_input->b_connected flag.
* src/input/input_ext-plugins.c, src/input/input.c: fixed the infinite loop
   of "decoder stuck" messages that sometimes happened.
* src/interface/intf_eject.c, modules/misc/network/ipv4.c: fixed compilation
   warnings.
2003-03-24 17:15:30 +00:00
Gildas Bazin
7211d64eb0 * ALL: Finally fixed the MSVC project files.
Don't include io.h on win32 when not necessary.
       A few build fixes for MSVC.

* src/misc/win32_specific.c: try to load winsock2 instead of winsock1 when
   present.
2003-03-03 14:21:08 +00:00
Sigmund Augdal Helberg
5a13b475ce * include/configuration.h: added a new flag to the configuration stucture to
indicate wether it is an "advanced" option or not. The goal with this is to
hide the user from all the strange options that very seldom needs to be
changed. added an extra argument to all the add_* macros to indicate wether
the item is advanced or not.
* src/libvlc.h: added an "show advanced options" config option default
disabled
* src/libvlc.c: the advanced options are not listed by vlc --help and
friends unless --advanced is used
* modules/gtk/preferences.c: the gtk/gnome preferences dialog don't show
advanced options unless advanced is set
all: set the advanced flag to VLC_FALSE or VLC_TRUE for all options, by
using some common sense. Please check and correct

note: All interfaces should still work like they used to, see the change in
modules/gtk/preferences.c to find out how to "hide" options.

second note: I think I've changed all the modules, but I could not test
everyone for compilation, expect some broken modules (the fix is to add ",
VLC_TRUE" as last argument to the add_* I forgot)
2003-02-20 01:52:47 +00:00
Christophe Massiot
9246efce16 Patch courtesy of gibalou :
* demux/mpeg/ts.c, demux/mpeg/system.c: Proper initialization of
i_continuity_counter,
* access/udp.c: Fixed win32 behavior when --mtu is set to a too small value,
* demux/mpeg/ts.c: Fixed detection of PAT/PMT change.
2003-02-12 13:42:43 +00:00
Marc Ariberti
4b664e9ca0 glibc 2.1 port for linupy (linux on a yopy pda)
* modules/access/*.c : added include <sys/time.h> for struct timeval
* ipv6.c : ipv6 is not fully supported under glibc2.1 (especially multicast)

VLC rulz on Yopy !
2003-02-07 23:36:55 +00:00
Christophe Massiot
9a5db9e20c * modules/access/*: Fixed compilation problems with "struct timeval". 2003-02-04 10:07:40 +00:00
Christophe Massiot
d3c3b323b7 * src/misc/darwin_specific.m: Partial attempt at fixing a memory leak,
* input: new b_connected field, allowing to correctly detect the EOF of TCP
  streams (closes #35),
* input: fixed a deadlock when opening a zero-sized file,
* input: fixed a deadlock when opening an unconnected FIFO (closes #54).
2002-12-31 01:54:36 +00:00
Christophe Massiot
feb0980067 Added RTP shortcuts to udp.c for backwards compatibility. 2002-12-30 11:49:32 +00:00
Christophe Massiot
34b7837ae5 * modules/access/udp.c: Merged the UDP and RTP plug-ins, with autodetection of RTP,
* src/misc/darwin_specific.m: if $LANG isn't set, retrieve NSUserDefaults.
2002-12-30 08:56:19 +00:00
Gildas Bazin
aa2f3524c6 * modules/access/udp.c, modules/access/rtp.c, modules/misc/network/ipv4.c: only check for
the "server-port" config variable in the access plugins. access_output plugins will now
pick a port at random, thus allowing sout to work out of the box on a localhost. (thanks
Meuuh)
2002-12-16 16:48:04 +00:00
Gildas Bazin
bd369da1d6 * src/input/input_clock.c, include/input_ext-intf.h: introduced an i_pts_delay field in
input_thread_t (initialised to DEFAULT_PTS_DELAY).
* modules/access/*: i_pts_delay is now configurable on an access module basis. The pts
delay for http and mms have been raised to 4 * DEFAULT_PTS_DELAY, which is about 1.2
seconds worth of caching.
2002-12-12 15:10:58 +00:00
Laurent Aimar
851f437fd0 * all: access plugins should not modify
p_input->stream.p_selected_area->i_tell when reading data. (It's done in
input_SplitBuffer). (But access should still set it on a "seek")
2002-12-11 20:13:50 +00:00
Sam Hocevar
df7cbb7449 * ./Makefile.am: fixed rc compilation under mingw32/cygwin.
* ./modules/access/http.c: fixed a segfault (unchecked strstr return value).
  * ./src/input/input_ext-plugins.c: removed platform-specific code and put
    it in plugins. This leads to some code duplication but I have an evil
    plan to get rid of that, too.
2002-11-12 13:57:13 +00:00
Sam Hocevar
2799d36bc8 * ALL: the build mechanism now uses automake. See HACKING for more details.
* ./mozilla/vlcplugin.cpp: javascript support for the Mozilla plugin.
  * debian/rules: the A52 module is now in a separate package.
2002-09-30 11:05:42 +00:00
Sam Hocevar
66c62b4386 * ./modules/demux/mpeg/system.c: added a helper plugin for MPEG-related
demux plugins (ps, ts, but also dvd*).
  * ./src/input/mpeg_system.c: removed MPEG-related stuff from the vlc core.
  * ./src/misc/modules.c: max recursion level is now 5.
  * ./modules/access/dvdplay/es.c: fixed a buffer overflow.
2002-08-07 00:29:37 +00:00
Sam Hocevar
19ea8feb6d * ./modules/*: moved plugins to the new tree. Yet untested builds include
waveout, directx, qnx, beos, win32, macosx, and the AltiVec modules.
  * ALL: removed mention of AC3 in favour of A52.
  * ./configure.in, ./Makefile*: modules can now be built deeper than 1
    directory. As a consequence, the build is even slower (but I'm fixing
    this) and make clean doesn't work anymore.
2002-08-04 17:23:44 +00:00