Skip to content

Commit

Permalink
Merge svn changes up to r30876
Browse files Browse the repository at this point in the history
  • Loading branch information
Uoti Urpala committed Mar 10, 2010
2 parents 240550b + 97ef28a commit 0269d22
Show file tree
Hide file tree
Showing 26 changed files with 828 additions and 90 deletions.
88 changes: 88 additions & 0 deletions DOCS/man/en/mplayer.1
Original file line number Diff line number Diff line change
Expand Up @@ -7480,6 +7480,48 @@ Larger radius makes for smoother gradients, but also prevents the filter
from modifying pixels near detailed regions (default: 16).
.RE
.
.TP
.B fixpts[=options]
Fixes the presentation timestamps (PTS) of the frames.
By default, the PTS passed to the next filter is dropped, but the following
options can change that:
.RSs
.IPs print
Print the incoming PTS.
.IPs fps=<fps>
Specify a frame per second value.
.IPs start=<pts>
Specify an initial value for the PTS.
.IPs autostart=<n>
Uses the
.IR n th
incoming PTS as the initial PTS.
All previous pts are kept, so setting a huge value or \-1 keeps the PTS
intact.
.IPs autofps=<n>
Uses the
.IR n th
incoming PTS after the end of autostart to determine the framerate.
.RE
.sp 1
.RS
.I EXAMPLE:
.RE
.PD 0
.RSs
.IPs "\-vf fixpts=fps=24000/1001,ass,fixpts"
Generates a new sequence of PTS, uses it for ASS subtitles, then drops it.
Generating a new sequence is useful when the timestamps are reset during the
program; this is frequent on DVDs.
Dropping it may be necessary to avoid confusing encoders.
.RE
.PD 1
.sp 1
.RS
.I NOTE:
Using this filter together with any sort of seeking (including -ss and EDLs)
may make demons fly out of your nose.
.RE
.
.
.SH "GENERAL ENCODING OPTIONS (MENCODER ONLY)"
Expand Down Expand Up @@ -10668,6 +10710,52 @@ SVC encodes.
.TP
.B (no)aud
Write access unit delimeters to the stream (default: disabled).
Enable this only if your target container format requires access unit
delimiters.
.
.TP
.B overscan=<undef|show|crop>
Include VUI overscan information in the stream (default: disabled).
See doc/vui.txt in the x264 source code for more information.
.
.TP
.B videoformat=<component|pal|ntsc|secam|mac|undef>
Include VUI video format information in the stream (default: disabled).
This is a purely informative setting for describing the original source.
See doc/vui.txt in the x264 source code for more information.
.
.TP
.B (no)fullrange
Include VUI full range information in the stream (default: disabled).
Use this option if your source video is not range limited.
See doc/vui.txt in the x264 source code for more information.
.
.TP
.B colorprim=<bt709|bt470m|bt470bg|smpte170m|smpte240m|film|undef>
Include color primaries information (default: disabled).
This can be used for color correction.
See doc/vui.txt in the x264 source code for more information.
.
.TP
.B transfer=<bt709|bt470m|bt470bg|linear|log100|log316|smpte170m|smpte240m>
Include VUI transfer characteristics information in the stream
(default: disabled).
This can be used for color correction.
See doc/vui.txt in the x264 source code for more information.
.
.TP
.B colormatrix=<bt709|fcc|bt470bg|smpte170m|smpte240m|GBR|YCgCo>
Include VUI matrix coefficients in the stream (default: disabled).
This can be used for color correction.
See doc/vui.txt in the x264 source code for more information.
.
.TP
.B chromaloc=<0-5>
Include VUI chroma sample location information in the stream (default:
disabled).
Use this option to ensure alignment of the chroma and luma planes after
color space conversions.
See doc/vui.txt in the x264 source code for more information.
.
.TP
.B log=<\-1\-3>
Expand Down
10 changes: 2 additions & 8 deletions DOCS/xml/en/faq.xml
Original file line number Diff line number Diff line change
Expand Up @@ -789,14 +789,8 @@ while seeking through RealMedia streams?
What about DVD navigation/menus?
</para></question>
<answer><para>
<application>MPlayer</application> does not support DVD menus due to serious
architectural limitations that prevent proper handling of still images and
interactive content. If you want to have fancy menus, you will have to use
another player like <application>xine</application>,
<application>VLC</application> or <application>Ogle</application>.
If you want to see DVD navigation in <application>MPlayer</application> you
will have to implement it yourself, but be aware that it is a major
undertaking.
<application>MPlayer</application> should support DVD menus nowadays.
Your mileage may vary.
</para></answer>
</qandaentry>

Expand Down
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,7 @@ SRCS_COMMON-$(WIN32DLL) += libmpcodecs/ad_acm.c \
loader/dshow/DS_VideoDecoder.c \
loader/dshow/allocator.c \
loader/dshow/cmediasample.c \
loader/dshow/graph.c \
loader/dshow/guids.c \
loader/dshow/inputpin.c \
loader/dshow/mediatype.c \
Expand Down Expand Up @@ -425,6 +426,7 @@ SRCS_COMMON = asxparser.c \
libmpcodecs/vf_field.c \
libmpcodecs/vf_fil.c \
libmpcodecs/vf_filmdint.c \
libmpcodecs/vf_fixpts.c \
libmpcodecs/vf_flip.c \
libmpcodecs/vf_format.c \
libmpcodecs/vf_framestep.c \
Expand Down
2 changes: 1 addition & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ Codecs:
--enable-jpeg enable JPEG input/output support [autodetect]
--enable-libcdio enable libcdio support [autodetect]
--enable-liblzo enable liblzo support [autodetect]
--disable-win32dll disable Win32 DLL support [enabled]
--disable-win32dll disable Win32 DLL support [autodetect]
--disable-qtx disable QuickTime codecs support [enabled]
--disable-xanim disable XAnim codecs support [enabled]
--disable-real disable RealPlayer codecs support [enabled]
Expand Down
7 changes: 7 additions & 0 deletions etc/codecs.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3677,6 +3677,13 @@ audiocodec raatrcmac
driver realaud
dll "atrc.bundle/Contents/MacOS/atrc"

audiocodec ffadpcmadx
info "FFmpeg SEGA CRI adx codec"
status working
fourcc Sadx ; internal MPlayer FourCC
driver ffmpeg
dll adpcm_adx

audiocodec ffadpcmimaamv
info "FFmpeg AMV IMA ADPCM audio"
status working
Expand Down
12 changes: 6 additions & 6 deletions libmpcodecs/vd_qtvideo.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ static OSErr (*QTNewGWorldFromPtr)(GWorldPtr *gw,
GWorldFlags flags,
void *baseAddr,
long rowBytes);
static OSErr (*NewHandleClear)(Size byteCount);
static Handle (*NewHandleClear)(Size byteCount);
#endif /* #ifndef CONFIG_QUICKTIME */

// to set/get/query special features/parameters
Expand All @@ -103,7 +103,7 @@ static int codec_initialized=0;
// init driver
static int init(sh_video_t *sh){
#ifndef CONFIG_QUICKTIME
long result = 1;
OSErr result = 1;
#endif
ComponentResult cres;
ComponentDescription desc;
Expand Down Expand Up @@ -156,7 +156,7 @@ static int init(sh_video_t *sh){

result=InitializeQTML(6+16);
// result=InitializeQTML(0);
mp_msg(MSGT_DECVIDEO,MSGL_DBG2,"InitializeQTML returned %li\n",result);
mp_msg(MSGT_DECVIDEO,MSGL_DBG2,"InitializeQTML returned %d\n",result);
// result=EnterMovies();
// printf("EnterMovies->%d\n",result);
#endif /* CONFIG_QUICKTIME */
Expand Down Expand Up @@ -305,7 +305,7 @@ static void uninit(sh_video_t *sh){

// decode a frame
static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags){
long result = 1;
OSErr result = 1;
int i;
mp_image_t* mpi;
ComponentResult cres;
Expand Down Expand Up @@ -335,7 +335,7 @@ if(!codec_initialized){
0,
mpi->planes[0],
mpi->stride[0]);
mp_msg(MSGT_DECVIDEO,MSGL_DBG2,"NewGWorldFromPtr returned:%ld\n",65536-(result&0xffff));
mp_msg(MSGT_DECVIDEO,MSGL_DBG2,"NewGWorldFromPtr returned:%d\n",result);
// if (65536-(result&0xFFFF) != 10000)
// return NULL;

Expand Down Expand Up @@ -406,7 +406,7 @@ if(!codec_initialized){

++decpar.frameNumber;

if(cres&0xFFFF){
if(cres) {
mp_msg(MSGT_DECVIDEO,MSGL_DBG2,"ImageCodecBandDecompress cres=0x%X (-0x%X) %d\n",cres,-cres,cres);
return NULL;
}
Expand Down
2 changes: 1 addition & 1 deletion libmpcodecs/ve_qtvideo.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ static OSErr (*QTNewGWorldFromPtr)(GWorldPtr *gw,
GWorldFlags flags,
void *baseAddr,
long rowBytes);
static OSErr (*NewHandleClear)(Size byteCount);
static Handle (*NewHandleClear)(Size byteCount);
static OSErr (*CompressSequenceBegin) (
ImageSequence *seqID,
PixMapHandle src,
Expand Down
2 changes: 2 additions & 0 deletions libmpcodecs/vf.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ extern const vf_info_t vf_info_yadif;
extern const vf_info_t vf_info_blackframe;
extern const vf_info_t vf_info_geq;
extern const vf_info_t vf_info_ow;
extern const vf_info_t vf_info_fixpts;

// list of available filters:
static const vf_info_t* const filter_list[]={
Expand Down Expand Up @@ -219,6 +220,7 @@ static const vf_info_t* const filter_list[]={
&vf_info_yadif,
&vf_info_blackframe,
&vf_info_ow,
&vf_info_fixpts,
NULL
};

Expand Down
137 changes: 137 additions & 0 deletions libmpcodecs/vf_fixpts.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
/*
* This file is part of MPlayer.
*
* MPlayer is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* MPlayer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with MPlayer; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>

#include "config.h"
#include "mp_msg.h"
#include "help_mp.h"

#include "img_format.h"
#include "mp_image.h"
#include "vf.h"

struct vf_priv_s {
double current;
double step;
int autostart;
int autostep;
unsigned have_step:1;
unsigned print:1;
};

static int put_image(vf_instance_t *vf, mp_image_t *src, double pts)
{
struct vf_priv_s *p = vf->priv;

if (p->print) {
if (pts == MP_NOPTS_VALUE)
mp_msg(MSGT_VFILTER, MSGL_INFO, "PTS: undef\n");
else
mp_msg(MSGT_VFILTER, MSGL_INFO, "PTS: %f\n", pts);
}
if (pts != MP_NOPTS_VALUE && p->autostart != 0) {
p->current = pts;
if (p->autostart > 0)
p->autostart--;
} else if (pts != MP_NOPTS_VALUE && p->autostep > 0) {
p->step = pts - p->current;
p->current = pts;
p->autostep--;
p->have_step = 1;
} else if (p->have_step) {
p->current += p->step;
pts = p->current;
} else {
pts = MP_NOPTS_VALUE;
}
return vf_next_put_image(vf, src, pts);
}

static void uninit(vf_instance_t *vf)
{
free(vf->priv);
}

static int parse_args(struct vf_priv_s *p, const char *args)
{
int pos;
double num, denom = 1;
int iarg;

while (*args != 0) {
pos = 0;
if (sscanf(args, "print%n", &pos) == 0 && pos > 0) {
p->print = 1;
} else if (sscanf(args, "fps=%lf%n/%lf%n", &num, &pos, &denom, &pos) >=
1 && pos > 0) {
p->step = denom / num;
p->have_step = 1;
} else if (sscanf(args, "start=%lf%n", &num, &pos) >= 1 && pos > 0) {
p->current = num;
} else if (sscanf(args, "autostart=%d%n", &iarg, &pos) == 1 && pos > 0) {
p->autostart = iarg;
} else if (sscanf(args, "autofps=%d%n", &iarg, &pos) == 1 && pos > 0) {
p->autostep = iarg;
} else {
mp_msg(MSGT_VFILTER, MSGL_FATAL,
"fixpts: unknown suboption: %s\n", args);
return 0;
}
args += pos;
if (*args == ':')
args++;
}
return 1;
}

static int open(vf_instance_t *vf, char *args)
{
struct vf_priv_s *p;
struct vf_priv_s ptmp = {
.current = 0,
.step = 0,
.autostart = 0,
.autostep = 0,
.have_step = 0,
.print = 0,
};

if (!parse_args(&ptmp, args == NULL ? "" : args))
return 0;

vf->put_image = put_image;
vf->uninit = uninit;
vf->priv = p = malloc(sizeof(struct vf_priv_s));
*p = ptmp;
p->current = -p->step;

return 1;
}

vf_info_t vf_info_fixpts = {
"Fix presentation timestamps",
"fixpts",
"Nicolas George",
"",
&open,
NULL
};
1 change: 1 addition & 0 deletions libmpdemux/mp_taglists.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

static const struct mp_AVCodecTag mp_wav_tags[] = {
{ CODEC_ID_ADPCM_4XM, MKTAG('4', 'X', 'M', 'A')},
{ CODEC_ID_ADPCM_ADX, MKTAG('S', 'a', 'd', 'x')},
{ CODEC_ID_ADPCM_EA, MKTAG('A', 'D', 'E', 'A')},
{ CODEC_ID_ADPCM_EA_MAXIS_XA, MKTAG('A', 'D', 'X', 'A')},
{ CODEC_ID_ADPCM_IMA_WS, MKTAG('A', 'I', 'W', 'S')},
Expand Down
Loading

0 comments on commit 0269d22

Please sign in to comment.