1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-02 21:12:23 +00:00
Commit Graph

237 Commits

Author SHA1 Message Date
Uoti Urpala
90bedd0b87 Make audio stream index handling saner in stream switching
The handling of audio stream numbering was handled in the stream
selection property was a total mess. The most important issue was
confusion between values used as index for demuxer->audio_streams[]
array (consistently stored in demuxer->audio->id) and values stored
in sh_audio->aid and used as "-aid N" option values. Now demuxer audio
switch control functions and demuxer_switch_audio() are supposed to
return the new value for the "-aid" option (internal MPEG demuxers
still don't; the demuxer requirement could perhaps be dropped as it
can be easily calculated afterwards). That is also the value
returned for the "switch_audio" property. The main changes are:

 - Make command.c mp_property_audio() consistently use and return the
   "-aid" values. Before it used that as input but the array index as
   output, with extra mess related to demuxer_switch_audio() return
   value. Don't modify the audio_id option field any more.

 - Make demuxer_switch_audio() always return "-aid" values (like it
   takes as input). There are two changes for this: picking this
   return value in case the demuxer doesn't support switching, and
   overriding demuxer return value (for internal MPEG demuxers).

 - Make demux_lavf return "-aid" values from DEMUXER_CTRL_SWITCH_AUDIO
   code. This isn't actually necessary because of the override part
   above.

Here's some history of the relevant behavior that I looked up:
* For most demuxers array index and "-aid" values are the same. At
  least demux_mkv, (some of?) the internal MPEG demuxers and demux_ogg
  have differed for a long time. demux_ogg doesn't matter because it
  doesn't support stream switching.
* Old code seemed to assume that demuxer_switch_audio() return value was
  array index, but this wasn't true at least for demux_mkv.
* In svn r19951 reimar mostly removed use of the return value.
* In r20162 ptt added mp_property_audio(). This set the global
  audio_id variable (-aid option value) to the return value of
  demuxer_switch_audio() and treated the global as the persistent
  value of the property, apparently assuming that it would be set to
  the "-aid" value, not array index. This was false for internal
  MPEG.
* In r30124 reimar changed the property code so that even though it
  still modified the option value it didn't use that as the value of
  the property any more; instead it incorrectly used the array index.
  This meant that for demux_mkv the return value didn't match -aid any
  more (though input still did, so setting the property and querying
  it didn't match as they used different value systems).
* In r31129 aurel made demux_lavf changes that resulted in its -aid
  and array index values no longer matching either. He didn't change
  the return value from audio switch when changing -aid, so it now
  matched array index only. The latter part didn't cause additional
  problems from r20162 though because either choice would have been
  broken anyway after r30124 as long as they weren't the same value.
2010-05-22 10:11:25 +03:00
Anton Khirnov
bc072fb7dc demux: use bstr arguments for demuxer_add_attachment() and demuxer_add_chapter() 2010-05-22 06:40:28 +03:00
Uoti Urpala
e1cd86076f Merge svn changes up to r31141 2010-05-07 22:13:35 +03:00
Uoti Urpala
eee666c3b5 Merge svn changes up to r31133 2010-05-07 21:19:53 +03:00
aurel
88b6dd6fc2 cosmetic: typo, this wasn't supposed to be plural
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31137 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-04 18:46:42 +00:00
aurel
eaff21c633 print a more detailed and more useful description of each stream with lavf
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31132 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-03 22:45:00 +00:00
aurel
c58a1d4acb 10l: correctly use video_stream instead of audio_stream in the video section
( copy&paste error :( )


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31131 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-03 22:40:00 +00:00
aurel
8be7c74c64 add ID_..._NAME to -identify for each lavf stream which has a title
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31130 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-03 22:30:06 +00:00
aurel
59058b54a7 uniformize handling of aid and vid with lavf so that it matches handling of sid
aid and vid are now 0-based, instead of being a globally unique id.
This matches the way sid is handled and the way other demuxers manage aid.
As a side effect, it slightly simplifies demux_lavf.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31129 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-03 22:19:52 +00:00
reimar
11b178be9a Continue probing even for score == AVPROBE_SCORE_MAX / 4 to match
FFmpeg's behaviour.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31111 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-01 15:38:37 +00:00
reimar
dd8db7f620 Use av_probe_input_format2 and avoid accepting detection
while the score is still low.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31110 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-01 13:50:49 +00:00
Uoti Urpala
4785c2617e Merge svn changes up to r30967 2010-04-26 17:42:20 +03:00
Uoti Urpala
7be5f14c3a demux_lavf, stream_ffmpeg: support librtmp seeks 2010-04-23 23:50:34 +03:00
Uoti Urpala
1d4d1bff82 stream_ffmpeg, demux_lavf: Use flv demuxer for rtmp streams
Use lavf's flv demuxer for rtmp/rtmps/... stream types. Letting
generic format probing handle this could work, but with the current
probing implementation it'd at least depend on not-really-guaranteed
details of the stream layer (probing different formats and then
decoding depends on seeking back in between; rtmp streams don't
support such seeking directly so would need to rely on details of
caching behavior).
2010-04-23 22:57:25 +03:00
Uoti Urpala
4583c12a2c options: move lavfdopts to option struct 2010-04-23 22:08:18 +03:00
reimar
364fb6d26f Reindent
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30947 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-22 19:39:43 +00:00
reimar
b28b15db30 Start probing with a size matching the stream buffer size so it is possible
to restart without seeking even without cache for easily detectable formats.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30946 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-22 19:38:42 +00:00
Uoti Urpala
00323c06e2 Delete things related to old translation system
Remove the help/ subdirectory, configure code to create toplevel
help_mp.h, and all the '#include "help_mp.h"' lines from .c files.
2010-03-10 03:47:14 +02:00
Uoti Urpala
13221a7165 Merge svn changes up to r30663
Conflicts:
	gui/cfg.c
	libmpcodecs/vd_dmo.c
	mplayer.c
2010-03-10 00:13:11 +02:00
Uoti Urpala
c37f09693d Merge svn changes up to r30643 2010-03-10 00:00:06 +02:00
Uoti Urpala
36e7a20e69 Merge svn changes up to r30550 2010-03-09 23:03:14 +02:00
Uoti Urpala
bc0f524909 Merge svn changes up to r30502
Conflicts:
	libswscale/rgb2rgb.c
	libswscale/rgb2rgb.h
	libswscale/swscale.c
	libvo/x11_common.c
2010-03-09 19:44:28 +02:00
reimar
1bb4898483 Print all 64 bits of seek position.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30662 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-20 11:21:51 +00:00
diego
0055441774 Add header for AVI print functions; avoids many forward declarations.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30631 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-18 00:18:50 +00:00
reimar
59d3c04b58 Dynamically increase probe size for lavf demuxer up to 2 MB.
This will read progressively more data if we still did not detect
the format. The lavfpref demuxer is unaffected to avoid hanging
for a long time in case of a slow network stream that some native
demuxer may be able to handle.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30547 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-12 20:38:29 +00:00
reimar
78ecbc1e6f Replace incorrect usage of strncpy.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30500 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-03 22:36:47 +00:00
reimar
9d9b7a1e22 Reindent
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30499 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-03 22:33:35 +00:00
reimar
8613396aa0 Add support for FFmpeg's rtsp dummy URL-with-pseudo-demuxer scheme.
ffmpeg://rtsp://... will play a rtsp stream via FFmpeg.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30498 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-03 22:32:48 +00:00
Uoti Urpala
49b80fe6b4 demux: take chapter/attachment name strings without 0-termination
Change the demuxer_add_attachment() and demuxer_add_chapter()
functions to take a length argument for various name strings, so those
strings do not need to be 0-terminated. This will make it easier to
directly pass demuxed data without first making a copy just to add
0-termination. Also allocate the struct demuxer data structures for
attachments and chapters with talloc.
2010-01-27 14:26:48 +02:00
cehoyos
ed4dbd3cbd Do not use correct-pts for mpeg-ts and matroska: It breaks PAFF samples.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30134 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-28 13:49:08 +00:00
cehoyos
d79daa2736 Revert r30100: It breaks some mov and asf samples.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30133 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-28 13:39:26 +00:00
cehoyos
468d5f2e0a Do not use correct-pts by default for demuxer lavf, it breaks all PAFF files.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30100 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-22 20:56:59 +00:00
Uoti Urpala
5995bc175a Merge svn changes up to r29962 2009-11-23 01:56:21 +02:00
reimar
af2988cbce Finally rename the STREAM_SEEK define to MP_STREAM_SEEK, there are just too many
name clashes, in particular with Windows headers (which define STREAM_SEEK as an enum type).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29962 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-22 15:18:21 +00:00
reimar
897f210bf4 av_alloc_format_context -> avformat_alloc_context
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29959 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-22 14:15:41 +00:00
reimar
054d1889ef Reuse buffer in priv context instead of allocating the 32kB probe buffer
on the stack.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29953 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-22 13:06:44 +00:00
Uoti Urpala
287b62163e Merge svn changes up to r29912 2009-11-16 07:01:46 +02:00
reimar
085f35f4b4 Allow lavf demuxer to also probe and play files < 32 kB (full probe buffer size).
Based on patch by On2.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29882 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 16:49:00 +00:00
cehoyos
419e4f684a Allow demuxer lavf to export CODEC_ID_DVB_TELETEXT.
Patch by Francesco Lavra, francescolavra interfree it


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29849 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-07 12:55:07 +00:00
reimar
1698db0726 Remove pointless and broken (e.g. does not set aid and vid) -tsprog handling
from lavf demuxer, mplayer.c makes sure IDENTIFY_PROGRAM is called with the
right arguments, and that code actually works in contrast to the one in demux_open_lavf.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29847 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-07 11:15:26 +00:00
reimar
25f0498660 Remove an empty program if the one requested by IDENTIFY_PROGRAM does not exist
instead of incorrectly claiming that the demuxer does not support programs.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29845 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-07 11:09:23 +00:00
Uoti Urpala
7fd3eb0f74 Merge svn changes up to r29752
As part of merging subtitle-in-terminal changes make
update_subtitles() only clear existing subtitles if called with the
reset argument, and not try to set new ones. Later calls should set
the needed new subtitles, and this change avoids some problems with
trying to set subtitles when mp_property_sub() in command.c gets
called from initialization code before full initialization.
2009-10-06 04:48:00 +03:00
reimar
1ad332f8a5 lavf: if seeking in the desired direction failed, also try in the opposite one,
otherwise we might end up at some random position (where lavf last ended
up while trying to build the index).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29741 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-30 08:19:49 +00:00
Uoti Urpala
e1ecc43152 Merge svn changes up to r29684 2009-09-16 22:28:12 +03:00
reimar
86ff541253 Add w64 to list of preferred lavf formats (otherwise demux_audio incorrectly
claims the Wave64 files but can not handle them).
Patch by Daniel Verkamp [daniel drv nu].


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29668 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-10 17:30:02 +00:00
reimar
cd5fa27550 Sort preferred_list alphabetically since the order does not matter otherwise.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29667 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-10 17:28:35 +00:00
reimar
873d120347 Add CODEC_ID_ADPCM_IMA_AMV to lavf codec_tag override list instead of
reimplementing that functionality.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29664 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-08 21:45:36 +00:00
reimar
64c5127103 Fix an endless loop if all programs are empty.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29660 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-08 09:08:05 +00:00
reimar
b05f2d0bdf Always register all streams from libavformat, not just those belonging to a program.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29657 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-08 08:55:05 +00:00
vitor
9d99f5bd8d Add support for lavf vqf demuxer and lavc TwinVQ decoder.
Also make lavf the default demuxer for vqf.

Ok'ed by Compn on IRC.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29655 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-07 17:20:44 +00:00