1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-19 13:51:14 +00:00
Commit Graph

63 Commits

Author SHA1 Message Date
Uoti Urpala
74b7dcc5f4 core: Add support for decoder reordering of pts values
Add a mode where libavcodec's reordered_opaque feature is used to
associate container packet timestamps with decoded frames. This should
improve behavior at least for MPEG files with interlaced h264; the
previous code does not cope well with the libavformat demuxer
producing two field packets with separate timestamps but the
libavcodec h264 decoder only producing a single output frame for those
two packets (so half the timestamps have no associated output frame).

The current libavformat mpeg demuxer seems to finally work with
interlaced h264 files and produce valid timestamps which are useful
with a mode like this.

By default MPlayer now selects between this new mode and the old one
automatically based on the number of timestamp problems they cause; by
default the new mode is used if both seem to work. The new option
-pts-association-mode can be used to force a particular mode. If
correct-pts mode is disabled this has no effect on timing.

Also remove the "EXPERIMENTAL" marker from the manpage description of
-correct-pts.
2009-11-21 20:53:10 +02:00
Uoti Urpala
c73217c07a Change libass type names to match upstream renames 2009-07-29 01:11:33 +03:00
Uoti Urpala
6d908205fb Merge svn changes up to r29304 2009-07-07 02:07:11 +03:00
diego
f077569dff Add standard license header to all files in libmpdemux.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29280 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-05-08 21:51:13 +00:00
Uoti Urpala
7180728cba stheader.h: Allow inclusion before demuxer.h
stheader.h used 'demuxer_t *' without including demuxer.h, causing
compilation to fail if demuxer.h had not been included first. Use
'struct demuxer *' instead so the type does not need to be defined.
2009-04-19 17:37:03 +03:00
Uoti Urpala
479f5e742f Merge svn changes up to r27841
Conflicts:
	mplayer.c
2008-10-28 04:12:18 +02:00
aurel
97293969b4 Factorize vobsub idx/extradata handling.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27841 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-10-27 22:51:22 +00:00
Uoti Urpala
17d3e4b36d Merge svn changes up to r27441
Conflicts:

	cfg-common-opts.h
	command.c
	configure
	input/input.c
	libmpcodecs/dec_video.c
	libmpcodecs/vd.c
	libmpdemux/stheader.h
	libvo/sub.c
	libvo/video_out.c
	libvo/vo_xv.c
	libvo/vosub_vidix.c
	libvo/x11_common.c
	libvo/x11_common.h
	mp_core.h
	mplayer.c
	stream/stream.h
2008-08-08 02:13:09 +03:00
diego
e0b1c9a6b7 Give a CONFIG_ prefix to preprocessor directives that lacked one and
change arbitrary prefixes to CONFIG_.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27429 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-08-07 12:20:50 +00:00
diego
4b141479da Start unifying names of internal preprocessor directives.
Replace all USE_ prefixes by CONFIG_ prefixes to indicate
options which are configurable.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27373 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-07-30 12:01:30 +00:00
Uoti Urpala
31db39d8ec Make video decoder description structs const
This makes the per-decoder struct vd_functions and its ->info
struct constants. Same for the mpcodecs_vd_drivers[] table of
pointers to those structs.
2008-04-25 07:16:32 +03:00
Uoti Urpala
bb679dd40a Remove global vo_flags
Move the information to struct sh_video field.
2008-04-25 07:15:07 +03:00
Uoti Urpala
342ae8d3b5 Store video decoder functions in struct sh_video field
Remove the global variable mpvdec and move the video decoder pointer
to struct sh_video field vd_driver. Audio already had a similar
ad_driver field from before.
2008-04-25 03:34:27 +03:00
Uoti Urpala
0e757bf9da Remove _s/_st suffix from some struct names
Since the names are always used after the keyword "struct" having a
suffix as in "struct demuxer_st" is almost completely pointless.
2008-04-25 03:34:22 +03:00
Uoti Urpala
c510959da5 Remove some unnecessary recursive includes
Remove some #include lines from headers, some of those removals made
possible by using incomplete struct types instead of typedefs. Include
mp_osd.h in mplayer.c and command.c after removing it from mp_core.h.
Remove "#ifdef USE_ASS" around some "struct ass_track_s *" fields
which will now compile even without ASS support.
2008-04-23 13:48:38 +03:00
Uoti Urpala
7039bc090a Add option pointer to demuxers and stheader.h structs 2008-04-23 13:41:05 +03:00
Uoti Urpala
d3d12332d6 Declare demuxer *_streams fields with proper types
Give sh_audio_t, sh_video_t and sh_sub_t which before had typedef
names only a matching struct name (without _t) too.
Change the a_streams, v_streams and s_streams demuxer fields from
void * to struct sh_audio *, struct sh_video * and struct sh_sub *.
Remove a now unnecessary cast from mplayer.c.
2008-04-23 13:41:05 +03:00
eugeni
7cc46c2e87 Support 'default' attribute for audio and subtitle tracks.
The first default track is chosen for playback if language-based selection
failes. Additionally, for audio tracks, the first one is chosen if there are
no default tracks at all.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26301 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-03-30 16:55:46 +00:00
diego
67d7fb2015 Add missing header #includes to fix 'make checkheaders'.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26175 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-03-05 23:32:01 +00:00
eugeni
85a8aa6f8e Add language info to sh_sub_t and sh_audio_t.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26114 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-02-29 17:25:33 +00:00
diego
8efb2fa21c Add MPLAYER_ prefix to multiple inclusion guards.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26061 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-02-22 09:09:46 +00:00
diego
835c654bb0 typo fix: inited --> initialized
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25994 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-02-14 14:23:55 +00:00
eugeni
18e9531401 Add extradata to sh_sub_t.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25680 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-01-11 21:45:10 +00:00
diego
fba0b66ff9 Add explanatory comments to the #endif part of multiple inclusion guards.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25563 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-31 16:15:50 +00:00
uau
a6d6f18216 Clean up some fields in stheader.h structs
sh_video_t: void *video_out: only assigned to, never read. Remove.
sh_video_t: void *vfilter: change type to struct vf_instance_s *
sh_audio_t: void *afilter: change type to struct af_stream_s *

The latter two never hold different types so there's no reason to use
void *. Maybe they were originally defined that way because the
option of using pointers to incomplete struct types was missed (the
typedefs vf_instance_t and af_stream_t would require extra headers)?


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24919 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-11-01 06:52:14 +00:00
nicodvb
1dbfe77925 added .stream_aspect to st_video_t: if non-zero and if not specified otherwise
by the user the video pipeline will use it as current aspect ratio


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24319 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-09-01 15:54:45 +00:00
diego
3e9e4acd8d Do not use leading underscores in multiple inclusion guards, they are reserved.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23709 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-07-02 22:34:45 +00:00
diego
437e32353f Consistently use filename as multiple inclusion guard.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23707 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-07-02 21:34:39 +00:00
uau
c60af33716 Move the sh_audio->delay field to mpctx->delay.
The value is related to overall a/v sync and is not used by audio
demuxers or decoders.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22506 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-03-11 06:16:14 +00:00
uau
1390d0cf93 Reorganize code to move more things out of main().
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21093 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-20 09:12:07 +00:00
reimar
48c301ddbc Move sh_sub_t to stheader.h, where all the other sh structs are defined
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20892 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-13 18:38:29 +00:00
reimar
89b0172dce Add forgotten new_sh_sub
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20889 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-13 16:18:05 +00:00
reimar
ccf75d6711 Get rid of demux_aid_vid_mismatch mess.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19546 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-08-26 19:17:04 +00:00
uau
e2727ec797 Add a new video pts tracking mode, enabled by option -correct-pts.
This mode has the following differences:
- Video timing is correct for streams with B frames, at least with some
  demuxers.
- Video filters can modify frame timestamps and insert new frames, and
  removing frames is handled better than before.
- Some things are known to break, it's not usable as the default yet.

Things should work as before when the -correct-pts option is not used.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18922 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-07-06 06:58:17 +00:00
uau
7022f65d0c Change free_sh_audio() to take demuxer and stream id as parameters
(same as new_sh_audio()) instead of sh_audio_t *, use those to remove
the pointer from demuxer->a_streams[] before freeing it.

Some demuxers use free_sh_audio() to undo the creation of an
already-allocated audio stream in case of error. These uses were unsafe
since free_sh_audio() freed the data structure but left the pointer in
demuxer->a_streams[], leading to double free later in free_demuxer()
(and perhaps use of the freed stream before that, I didn't check).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18711 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-06-14 14:05:59 +00:00
uau
c843190441 Change common pts variables from floats to doubles. Individual demuxers
should be changed later.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18310 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-04-27 11:13:21 +00:00
rtognimp
6c4d9bfe51 4 - Implement a better way to calculate current audio pts and use it for
audio decoded with ad_libvorbis, ad_ffmpeg and ad_faad.

Patch by Uoti Urpala


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18243 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-04-24 10:58:40 +00:00
corey
b4e5108496 dwStart support for mplayer.
* demux_avi sets stream_delay according to dwStart
* mplayer adjusts audio_delay according to stream_delay

3 related patches are pending, and I will apply them over the next few
days if all goes well.

As I mentioned on -dev-eng, the funny indentation is in preparation for
one of those pending patches.

See:
Date: Fri, 17 Feb 2006 00:53:28 -0800
To: mplayer-dev-eng@mplayerhq.hu
Subject: [PATCH] bframes, dwStart: individual patches


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17644 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-18 09:26:39 +00:00
hzoli
067c0482d9 Remove file-global mpadec, add ad_driver member to sh_audio_t instead.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14820 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-02-25 11:17:43 +00:00
alex
d8c3060141 removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12342 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-04-28 10:18:33 +00:00
arpi
bb56123065 fixed the well-known DVD/DVB audio delay bug :)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8966 b3059339-0415-0410-9bf9-f77b7e298cf2
2003-01-16 22:34:46 +00:00
arpi
05b4ddb729 export imagedescription for qt video codecs
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8159 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-11-11 23:46:27 +00:00
alex
7ea0933b9e dlopen() support for ad and vd
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8153 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-11-11 17:28:41 +00:00
arpi
478bb57c0a fixed comment - noticed by Alex
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8058 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-11-02 19:59:40 +00:00
arpi
74b6f07e68 A-V sync cleanup: sh_audio->timer replaced by sh_audio->delay, it contains
delay relative to sh_video->timer (or to 0 if audioonly).
It fixes ct: drifts of very long (several hours) playback.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8057 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-11-02 19:52:59 +00:00
arpi
3053a8b7f2 aufio filter layer (libaf) integration to libmpcodecs, mplayer and mencoder
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7605 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-10-05 22:55:45 +00:00
arpi
61c5a99851 wine headers cleanup
- WAVEFORMATEX & BITMAPINFOHEADER decl moved to stheader.h
- lots of useless include wine/* removed from mplayer code
- fixed few warnings


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7472 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-09-22 00:43:14 +00:00
arpi
06855fc3fb - cosmetics, reorder
- removed sh_video->image, get_sh_video()/get_sh_audio() - they are unused and confusing


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7468 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-09-21 23:23:03 +00:00
alex
d8cd6b2057 removed obsolete items
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7233 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-09-01 18:23:18 +00:00
arpi
e792742f6a vf_inited flag added
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5925 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-05-01 17:30:23 +00:00