1
mirror of https://github.com/mpv-player/mpv synced 2025-04-23 12:59:51 +02:00

299 Commits

Author SHA1 Message Date
Uoti Urpala
ffc3db2239 vd_ffmpeg: fix compilation with neither VDPAU nor XvMC enabled
The get_format() function was defined under
 #if CONFIG_XVMC || CONFIG_VDPAU
but recent commit ca217f4557c3cff4f2bf33e605ce13e662e84a92 added an
unconditional reference to it, causing linking to fail with an
undefined reference if neither feature was enabled. Fix by removing
the #if, there's no reason reason why it would be needed.
2010-01-21 01:09:28 +02:00
Uoti Urpala
1ef8d887d4 vd_ffmpeg: FFmpeg-mt changed has_b_frames API, update 2010-01-20 20:32:00 +02:00
Uoti Urpala
d4159a7d88 vd_ffmpeg: move redundant info messages to MSGL_V level
Move two messages printed when using VDPAU/XvMC to MSGL_V level:
"[VD_FFMPEG] XVMC-accelerated MPEG-2.\n"
"[VD_FFMPEG] Trying pixfmt=%d.\n"

The first is redundant because this info is normally visible from the
decoder name, and it was also incorrectly printed in the VDPAU case
too. Add a different MSGL_V message for VDPAU.

Also make all these messages not translatable.
2010-01-20 17:21:39 +02:00
Uoti Urpala
ca217f4557 vd_ffmpeg: disable callbacks for threaded decoding
MPlayer's slice and direct rendering related callbacks are not safe to
call from other threads, so disable those features if more than one
decoding thread is specified. This should fix some issues when using
threaded decoding with formats other than h264 (in the h264 case the
callbacks were already disabled for other reasons).

This commit moves most of the code that sets special avctx parameters
for VDPAU and XvMC. Before that was done after avcodec_open() based on
the selected output image format; now it's done before avcodec_open()
based on the capabilities of the selected decoder. At least the code
selecting the thread count must be before avcodec_open(), and I think
there is no reason to try to keep the previous structure otherwise
either. The image format-based approach was implemented by Reimar
with the intended goal of eventually selecting between software and
VDPAU decoders under one FFmpeg decoder type. I consider that goal to
be questionable, and the approach certainly made the existing code
significantly messier for no functionality benefit.
2010-01-20 16:31:13 +02:00
Uoti Urpala
819b8f08a2 Merge svn changes up to r30236 2010-01-08 02:44:37 +02:00
Uoti Urpala
231b33a02f Merge svn changes up to r30165 2010-01-08 01:05:30 +02:00
zuxy
554231067d Avoid the error message "Unsupported PixelFormat -1" for ffh264 decoding
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30233 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-07 04:59:50 +00:00
reimar
c07dec1a4a Also pass the 4th plane for planar formats on to libavcodec.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30156 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-31 23:39:21 +00:00
Uoti Urpala
d46b86bc7c Merge svn changes up to r30136
Ignore another broken correct-pts change in 30134.
2009-12-30 00:56:10 +02:00
reimar
afc5a627d8 Support mp_image with allocated palette.
Fixes playback and a memory leak for FFmpeg codecs which use reget_buffer
with paletted data, e.g. cdgraphics.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30116 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-26 11:51:19 +00:00
Uoti Urpala
5995bc175a Merge svn changes up to r29962 2009-11-23 01:56:21 +02:00
reimar
2959f9e032 Add const to draw_slice argument to match what FFmpeg expects for draw_horiz_band.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29956 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-22 13:18:12 +00:00
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
reimar
a98091b77b Use avcodec_align_dimensions to appropriately align width and height in
get_buffer instead of reimplementing it badly.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29921 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-17 13:56:34 +00:00
diego
a63e8dce21 Map AV_LOG_VERBOSE to MSGL_V in order to avoid spurious log output.
based on a patch by On2


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29884 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-11-10 18:10:16 +00:00
Uoti Urpala
8bbb79c03a av_log callback handling overhaul
Move av_log callback handling from vd_ffmpeg.c to a new file
av_log.c and install the callback immediately when starting the
program. Main functionality improvements of the new code:

 - The old version only installed the callback when opening an FFmpeg
   video decoder. If nothing had triggered that then av_log() messages
   from other sources (libavformat, audio decoding, swscale usage)
   bypassed MPlayer's output system completely. Now the callback is
   always installed.

 - Current av_log message severity levels are handled correctly. The
   old code used MSGL_ERR for some messages that should be MSGL_V.

 - Message type is now set for libavformat contexts
   (MSGT_DEMUXER / MSGT_MUXER).

 - The old code did "mp_msg_test(type, mp_level)" before actually
   determining the type, so that it always used MSGT_FIXME. This led
   to some messages being incorrectly dropped in case the user
   had specified module-specific verbosity levels. The old check in
   question was originally motivated by performance problems when
   there were a lot of callbacks; however it's not clear whether the
   part about it skipping the type determination was intentional (most
   of the performance problems must have come from the way the
   original code used snprintf) and in my tests current FFmpeg
   libraries have not generated unreasonable amounts of callbacks
   anyway.
2009-10-31 23:59:16 +02: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
4834e21162 Make sure avctx->codec_type and codec_id are set, since libavcodec
currently requires that.
That probably is an unintended API change and should be fixed/reverted
in lavc but it hurts little to workaround here.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29709 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-23 19:21:38 +00:00
Uoti Urpala
4a36b51ea6 Merge svn changes up to r29455 2009-07-29 01:32:03 +03:00
diego
e5751ced4f Replace WORDS_BIGENDIAN by HAVE_BIGENDIAN in all internal code.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29443 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-07-26 19:53:00 +00:00
Uoti Urpala
d6c410b54c Replace libavutil internal header #includes with MPlayer copies
Change #include lines for libavutil/intreadwrite.h, libavutil/bswap.h
and libavutil/x86_cpu.h to use the MPlayer file under ffmpeg_files/
instead.
2009-07-26 06:16:43 +03:00
Uoti Urpala
a2037a2eff Merge svn changes up to r29412 2009-07-07 02:56:01 +03:00
Amar Takhar
e306174952 Translation system changes part 2: replace macros by strings
Replace all MSGTR_ macros in the source by the corresponding English
string.
2009-07-07 01:38:20 +03:00
Amar Takhar
b5972d6f14 Translation system changes part 1: wrap translated strings
Replace mp_msg() calls which have a translated string as the format
argument with mp_tmsg and add _() around all other translated strings.
2009-07-07 01:28:07 +03:00
reimar
d90d9d3d22 Switch to avcodec_decode_video2 to allow a hack that makes PNG decode correctly
again instead of in CorePNG delta mode.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29340 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-06-01 22:25:10 +00:00
Uoti Urpala
ce35ed0209 vd_ffmpeg.c: Use FFmpeg-mt compatible code for codec delay
This code to calculate codec delay should work with both with regular
FFmpeg and FFmeg-mt. This MPlayer version is not completely compatible
with current FFmpeg-mt though, since it has a build system change
which matches upstream FFmpeg but hasn't been integrated in FFmpeg-mt
yet (RUNTIME_CPUDETECT -> CONFIG_RUNTIME_CPUDETECT rename).
2009-04-30 03:54:34 +03:00
Uoti Urpala
cf9edda1d3 Merge svn changes up to r29117 2009-04-01 02:43:47 +03:00
reimar
22b2f80efb Use MP_MAX_PLANES as size of arrays passed to mpcodecs_draw_slice.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29098 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-03-29 14:15:09 +00:00
cehoyos
115bfb9762 Allow to use vdpau temporal deinterlacers with hardware accelerated decoding.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28991 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-03-18 17:02:29 +00:00
Uoti Urpala
e0172b96e3 Merge svn changes up to r28862 2009-03-07 01:04:41 +02:00
reimar
0f43db1769 Add another hack to work-around the currently completely inconsistent way in
which libavcodec sets AVCodecContext::pix_fmt.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28801 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-03-03 13:38:33 +00:00
reimar
aacd081579 10l, replace a tab that slipped in.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28767 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-03-01 09:09:49 +00:00
reimar
1002389056 Create a set_format_params function that sets all the special options needed
for XvMC/VDPAU acceleration in a single place.
This should get closer to working with selecting acceleration via pix_fmt instead
of via a special codec for each method.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28766 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-03-01 09:03:01 +00:00
Uoti Urpala
ebb541c655 Merge svn changes up to r28690 2009-02-21 17:39:30 +02:00
iive
c73f0e18bd Return PIX_FMT_NONE if the video system refuses all other formats.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28662 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-19 09:21:46 +00:00
Uoti Urpala
e46317a1db Merge svn changes up to r28655 2009-02-19 03:23:50 +02:00
reimar
0248741426 Handle mpcodecs_get_image returning NULL, FFmpeg most of the time handles
it correctly (VDPAU and probably H.264 currently don't, MPEG1/2 does etc.).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28643 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-18 07:52:17 +00:00
Uoti Urpala
186e5a998c Merge svn changes up to r28641
Convert vo_x11_border (used in vo_gl/gl2 though the vo_gl_border
macro) to use a wrapper macro in old-style VOs which do not provide a
VO object argument. Before this function had an explicit global_vo
argument in vo_gl/gl2. New vo_vdpau uses it too so use the same
mechanism as most other functions.
2009-02-18 01:45:36 +02:00
reimar
8e5edec13e Set avctx->opaque already at init instead of decode so it can be used in
get_format and get_buffer would not crash if called during avcodec_open.
Patch by Gwenole Beauchesne [gbeauchesne splitted-desktop com]


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28636 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-17 16:40:50 +00:00
diego
687655ff2f cosmetics: Remove stray empty lines.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28630 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-17 11:29:43 +00:00
cehoyos
288f25d8d9 Fix #endif comment.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28619 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-16 23:56:19 +00:00
reimar
7e9fd9351c Add support for VDPAU video out, including hardware decoding.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28617 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-16 20:58:13 +00:00
Uoti Urpala
0bf2bd91ec Merge svn changes up to r28610 2009-02-16 02:39:58 +02:00
diego
a452d22384 The AV_XVMC_RENDER_MAGIC constant was renamed to AV_XVMC_ID in FFmpeg.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28608 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-15 22:02:24 +00:00
iive
33f7ff9403 Reflect ffmpeg change of xvmc struct field to xvmc_id.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28607 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-15 20:29:29 +00:00
diego
d274cbbbb5 The xvmc_pixfmt_render structure was renamed to xvmc_pix_fmt in FFmpeg.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28603 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-15 17:49:42 +00:00
diego
0c4e65f15a The xmvc structure member magic_id was renamed to unique_id.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28601 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-15 17:35:24 +00:00
reimar
b2c338819e Remove unnecessary #if around forward declaration.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28600 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-15 17:29:00 +00:00
reimar
de96ea2e01 Restructure get_format so it can easily be extended to handle VDPAU
and hardware-acceleration selected via get_format.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28599 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-15 17:23:05 +00:00
reimar
14b1991a42 Reuse the code for the general do_dr1 case to set get_buffer/release_buffer for XvMC.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28598 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-15 16:57:08 +00:00