summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/en/mplayer.1100
-rw-r--r--asxparser.c4
-rw-r--r--cfg-mencoder.h2
-rw-r--r--cfg-mplayer.h6
-rw-r--r--etc/codecs.conf7
-rw-r--r--get_path.c1
-rw-r--r--libao2/ao_sdl.c3
-rw-r--r--libmenu/menu.c6
-rw-r--r--libmpcodecs/ad_acm.c4
-rw-r--r--libmpcodecs/ad_faad.c2
-rw-r--r--libmpcodecs/ad_qtaudio.c5
-rw-r--r--libmpcodecs/ad_twin.c2
-rw-r--r--libmpcodecs/dec_teletext.c2
-rw-r--r--libmpcodecs/vd_ffmpeg.c14
-rw-r--r--libmpcodecs/vd_vfw.c8
-rw-r--r--libmpcodecs/ve_vfw.c2
-rw-r--r--libmpcodecs/vf_expand.c2
-rw-r--r--libmpdemux/aac_hdr.c1
-rw-r--r--libmpdemux/aac_hdr.h26
-rw-r--r--libmpdemux/asfheader.c7
-rw-r--r--libmpdemux/asfheader.h28
-rw-r--r--libmpdemux/aviheader.c15
-rw-r--r--libmpdemux/aviheader.h3
-rw-r--r--libmpdemux/aviprint.c1
-rw-r--r--libmpdemux/aviprint.h34
-rw-r--r--libmpdemux/demux_aac.c8
-rw-r--r--libmpdemux/demux_asf.c10
-rw-r--r--libmpdemux/demux_audio.c3
-rw-r--r--libmpdemux/demux_avi.c22
-rw-r--r--libmpdemux/demux_gif.c3
-rw-r--r--libmpdemux/demux_lavf.c4
-rw-r--r--libmpdemux/demux_mkv.c5
-rw-r--r--libmpdemux/demux_mov.c1
-rw-r--r--libmpdemux/demux_mov.h24
-rw-r--r--libmpdemux/demux_mpg.c12
-rw-r--r--libmpdemux/demux_ogg.c70
-rw-r--r--libmpdemux/demux_ogg.h27
-rw-r--r--libmpdemux/demux_real.c6
-rw-r--r--libmpdemux/demux_real.h28
-rw-r--r--libmpdemux/demux_realaud.c5
-rw-r--r--libmpdemux/demux_ts.c3
-rw-r--r--libmpdemux/demux_ts.h26
-rw-r--r--libmpdemux/demux_ty.c2
-rw-r--r--libmpdemux/demux_ty_osd.c1
-rw-r--r--libmpdemux/demux_ty_osd.h25
-rw-r--r--libmpdemux/demuxer.h6
-rw-r--r--libmpdemux/mp3_hdr.c2
-rw-r--r--libmpdemux/mpeg_hdr.h2
-rw-r--r--libmpdemux/ms_hdr.h2
-rw-r--r--libmpdemux/muxer_mpeg.c6
-rw-r--r--libmpdemux/parse_mp4.c3
-rw-r--r--libmpdemux/video.c3
-rw-r--r--libvo/vo_zr.c2
-rw-r--r--libvo/vo_zr.h29
-rw-r--r--loader/dmo/DMO_AudioDecoder.c2
-rw-r--r--loader/win32.c24
-rw-r--r--mencoder.c3
57 files changed, 483 insertions, 171 deletions
diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1
index bf1e2ba71f..ad544163e0 100644
--- a/DOCS/man/en/mplayer.1
+++ b/DOCS/man/en/mplayer.1
@@ -10100,8 +10100,15 @@ This is not recommended and wastes bitrate as scenecuts encoded as P-frames
are just as big as I-frames, but do not reset the "keyint counter".
.
.TP
+.B (no)intra_refresh
+Periodic intra block refresh instead of keyframes (default: disabled).
+This option disables IDR-frames, and, instead, uses a moving vertical bar
+of intra-coded blocks. This reduces compression efficiency but benefits
+low-latency streaming and resilience to packet loss.
+.
+.TP
.B frameref=<1\-16>
-Number of previous frames used as predictors in B- and P-frames (default: 1).
+Number of previous frames used as predictors in B- and P-frames (default: 3).
This is effective in anime, but in live-action material the improvements
usually drop off very rapidly above 6 or so reference frames.
This has no effect on decoding speed, but does increase the memory needed for
@@ -10110,7 +10117,7 @@ Some decoders can only handle a maximum of 15 reference frames.
.
.TP
.B bframes=<0\-16>
-maximum number of consecutive B-frames between I- and P-frames (default: 0)
+maximum number of consecutive B-frames between I- and P-frames (default: 3)
.
.TP
.B (no)b_adapt
@@ -10186,6 +10193,20 @@ maximum value by which the quantizer may be incremented/decremented between
frames (default: 4)
.
.TP
+.B (no)mbtree
+Enable macroblock tree ratecontrol (default: enabled).
+Use a large lookahead to track temporal propagation of data and weight quality
+accordingly.
+In multi-pass mode, this writes to a separate stats file named
+<passlogfile>.mbtree.
+.
+.TP
+.B rc_lookahead=<0\-250>
+Adjust the mbtree lookahead distance (default: 40).
+Larger values will be slower and cause x264 to consume more memory, but can
+yield higher quality.
+.
+.TP
.B ratetol=<0.1\-100.0> (ABR or two pass)
allowed variance in average bitrate (no particular units) (default: 1.0)
.
@@ -10278,6 +10299,20 @@ direct_pred=none is both slower and lower quality.
.RE
.
.TP
+.B weightp
+Weighted P-frame prediction mode (default: 2).
+.PD 0
+.RSs
+.IPs 0
+disabled (fastest)
+.IPs 1
+blind mode (slightly better quality)
+.IPs 2
+smart mode (best)
+.RE
+.PD 1
+.
+.TP
.B (no)weight_b
Use weighted prediction in B-frames.
Without this option, bidirectionally predicted macroblocks give
@@ -10381,9 +10416,9 @@ SATD metric, rather than reusing vectors from the forward and backward
searches.
.IPs 6
Enables rate-distortion optimization of macroblock types in
-I- and P-frames (default).
+I- and P-frames.
.IPs 7
-Enables rate-distortion optimization of macroblock types in all frames.
+Enables rate-distortion optimization of macroblock types in all frames (default).
.IPs 8
Enables rate-distortion optimization of motion vectors and intra prediction modes in I- and P-frames.
.IPs 9
@@ -10414,9 +10449,9 @@ rate-distortion optimal quantization
.PD 0
.RSs
.IPs 0
-disabled (default)
+disabled
.IPs 1
-enabled only for the final encode
+enabled only for the final encode (default)
.IPs 2
enabled during all mode decisions (slow, requires subq>=6)
.RE
@@ -10435,6 +10470,11 @@ trellis (requires trellis, experimental) (default: 0.0)
.PD 1
.
.TP
+.B (no)psy
+Enable psychovisual optimizations that hurt PSNR and SSIM but ought to look
+better (default: enabled).
+.
+.TP
.B deadzone_inter=<0\-32>
Set the size of the inter luma quantization deadzone for non-trellis
quantization (default: 21).
@@ -10566,12 +10606,43 @@ and you have a need to set it.
.
.TP
.B threads=<0\-16>
-Spawn threads to encode in parallel on multiple CPUs (default: 1).
+Spawn threads to encode in parallel on multiple CPUs (default: 0).
This has a slight penalty to compression quality.
0 or 'auto' tells x264 to detect how many CPUs you have and pick an
appropriate number of threads.
.
.TP
+.B (no)sliced_threads
+Use slice-based threading (default: disabled).
+Unlike normal threading, this option adds no encoding latency, but is slightly
+slower and less effective at compression.
+.
+.TP
+.B slice_max_size=<0 or positive integer>
+Maximum slice size in bytes (default:0).
+A value of zero disables the maximum.
+.
+.TP
+.B slice_max_mbs=<0 or positive integer>
+Maximum slice size in number of macroblocks (default:0).
+A value of zero disables the maximum.
+.
+.TP
+.B slices=<0 or positive integer>
+Maximum number of slices per frame (default:0).
+A value of zero disables the maximum.
+.
+.TP
+.B sync_lookahead=<0\-250>
+Adjusts the size of the threaded lookahead buffer (default: 0).
+0 or 'auto' tells x264 to automatically determine buffer size.
+.
+.TP
+.B (no)deterministic
+Use only deterministic optimizations with multithreaded encoding (default:
+enabled).
+.
+.TP
.B (no)global_header
Causes SPS and PPS to appear only once, at the beginning of the bitstream
(default: disabled).
@@ -10583,6 +10654,16 @@ The default behavior causes SPS and PPS to repeat prior to each IDR frame.
Treat the video content as interlaced.
.
.TP
+.B (no)constrained_intra
+Enable constrained intra prediction (default: disabled).
+This significantly reduces compression, but is required for the base layer of
+SVC encodes.
+.
+.TP
+.B (no)aud
+Write access unit delimeters to the stream (default: disabled).
+.
+.TP
.B log=<\-1\-3>
Adjust the amount of logging info printed to the screen.
.PD 0
@@ -10624,6 +10705,11 @@ If the x264 on your system supports it, a new window will be opened during
the encoding process, in which x264 will attempt to present an overview of
how each frame gets encoded.
Each block type on the visualized movie will be colored as follows:
+.
+.TP
+.B dump_yuv=<file name>
+Dump YUV frames to the specified file.
+For debugging use.
.PD 0
.RSs
.IPs red/pink
diff --git a/asxparser.c b/asxparser.c
index 6005987d87..eea64a8835 100644
--- a/asxparser.c
+++ b/asxparser.c
@@ -34,7 +34,7 @@
////// List utils
-void
+static void
asx_list_add(void* list_ptr,void* entry){
void** list = *(void***)list_ptr;
int c = 0;
@@ -51,7 +51,7 @@ asx_list_add(void* list_ptr,void* entry){
}
-void
+static void
asx_list_remove(void* list_ptr,void* entry,ASX_FreeFunc free_func) {
void** list = *(void***)list_ptr;
int c,e = -1;
diff --git a/cfg-mencoder.h b/cfg-mencoder.h
index 4d390bfdcc..ac2ffd8e10 100644
--- a/cfg-mencoder.h
+++ b/cfg-mencoder.h
@@ -26,8 +26,6 @@
#include "cfg-common.h"
extern int sws_flags;
-int readPPOpt(void *, char *arg);
-void revertPPOpt(void *conf, char* opt);
extern char *pp_help;
extern m_option_t lameopts_conf[];
diff --git a/cfg-mplayer.h b/cfg-mplayer.h
index d8170ec9e7..962d8eb3be 100644
--- a/cfg-mplayer.h
+++ b/cfg-mplayer.h
@@ -26,6 +26,7 @@
#include <stddef.h>
#include "cfg-common.h"
+#include "libvo/vo_zr.h"
#include "options.h"
extern char *fb_mode_cfgfile;
@@ -52,14 +53,9 @@ extern int menu_fribidi_flip_commas;
extern char *unrar_executable;
-int vo_zr_parseoption(const m_option_t* conf, char *opt, char * param);
-void vo_zr_revertoption(const m_option_t* opt,char* pram);
-
extern m_option_t dxr2_opts[];
extern int sws_flags;
-int readPPOpt(void *conf, char *arg);
-void revertPPOpt(void *conf, char* opt);
extern char* pp_help;
const m_option_t vd_conf[]={
diff --git a/etc/codecs.conf b/etc/codecs.conf
index 41bc50d559..3f04ac3c3e 100644
--- a/etc/codecs.conf
+++ b/etc/codecs.conf
@@ -4031,6 +4031,13 @@ audiocodec ffwmapro
driver ffmpeg
dll "wmapro"
+audiocodec ffwmavoice
+ info "WMA Voice audio (FFmpeg)"
+ status untested
+ format 0xA
+ driver ffmpeg
+ dll "wmavoice"
+
audiocodec ffmac3
info "Macintosh Audio Compression and Expansion 3:1"
status untested
diff --git a/get_path.c b/get_path.c
index ec76f57191..4a04f9ebb7 100644
--- a/get_path.c
+++ b/get_path.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include "config.h"
#include "mp_msg.h"
#include "get_path.h"
diff --git a/libao2/ao_sdl.c b/libao2/ao_sdl.c
index 0cef28c913..69eccf07e4 100644
--- a/libao2/ao_sdl.c
+++ b/libao2/ao_sdl.c
@@ -120,7 +120,8 @@ static int control(int cmd,void *arg){
}
// SDL Callback function
-static void outputaudio(void *unused, Uint8 *stream, int len) {
+static void outputaudio(void *unused, Uint8 *stream, int len)
+{
//SDL_MixAudio(stream, read_buffer(buffers, len), len, SDL_MIX_MAXVOLUME);
//if(!full_buffers) printf("SDL: Buffer underrun!\n");
diff --git a/libmenu/menu.c b/libmenu/menu.c
index 3ba54be45c..cae17a55c9 100644
--- a/libmenu/menu.c
+++ b/libmenu/menu.c
@@ -96,7 +96,8 @@ static menu_cmd_bindings_t *cmd_bindings = NULL;
static int cmd_bindings_num = 0;
-static menu_cmd_bindings_t *get_cmd_bindings(const char *name) {
+static menu_cmd_bindings_t *get_cmd_bindings(const char *name)
+{
int i;
for (i = 0; i < cmd_bindings_num; ++i)
if (!strcasecmp(cmd_bindings[i].name, name))
@@ -735,7 +736,8 @@ int menu_text_num_lines(char* txt, int max_width) {
return l;
}
-static char* menu_text_get_next_line(char* txt, int max_width) {
+static char* menu_text_get_next_line(char* txt, int max_width)
+{
int i = 0;
render_txt(txt);
while (*txt) {
diff --git a/libmpcodecs/ad_acm.c b/libmpcodecs/ad_acm.c
index 026f7c4550..a067da7aef 100644
--- a/libmpcodecs/ad_acm.c
+++ b/libmpcodecs/ad_acm.c
@@ -23,7 +23,7 @@
#include "config.h"
#include "mp_msg.h"
#include "help_mp.h"
-
+#include "libmpdemux/aviprint.h"
#include "loader/wineacm.h"
#include "ad_internal.h"
@@ -56,8 +56,6 @@ static int init(sh_audio_t *sh_audio)
return 1;
}
-void print_wave_header(WAVEFORMATEX *h, int verbose_level);
-
static int preinit(sh_audio_t *sh_audio)
{
HRESULT ret;
diff --git a/libmpcodecs/ad_faad.c b/libmpcodecs/ad_faad.c
index f3795058ff..14fe9a6280 100644
--- a/libmpcodecs/ad_faad.c
+++ b/libmpcodecs/ad_faad.c
@@ -96,7 +96,6 @@ static int init(sh_audio_t *sh)
mp_msg(MSGT_DECAUDIO,MSGL_DBG2,"FAAD: codecdata extracted from WAVEFORMATEX\n");
}
if(!sh->codecdata_len) {
-#if 1
faacDecConfigurationPtr faac_conf;
/* Set the default object type and samplerate */
/* This is useful for RAW AAC files */
@@ -125,7 +124,6 @@ static int init(sh_audio_t *sh)
//faac_conf->defObjectType = LTP; // => MAIN, LC, SSR, LTP available.
faacDecSetConfiguration(faac_hdec, faac_conf);
-#endif
sh->a_in_buffer_len = demux_read_data(sh->ds, sh->a_in_buffer, sh->a_in_buffer_size);
pos = aac_probe(sh->a_in_buffer, sh->a_in_buffer_len);
diff --git a/libmpcodecs/ad_qtaudio.c b/libmpcodecs/ad_qtaudio.c
index 4e785ca5bf..0021d42ec1 100644
--- a/libmpcodecs/ad_qtaudio.c
+++ b/libmpcodecs/ad_qtaudio.c
@@ -118,7 +118,6 @@ static int loader_init(void)
mp_msg(MSGT_DECAUDIO,MSGL_ERR,"failed loading qtmlClient.dll\n" );
return 1;
}
-#if 1
InitializeQTML = (LPFUNC1)GetProcAddress(qtml_dll,"InitializeQTML");
if ( InitializeQTML == NULL )
{
@@ -173,7 +172,6 @@ static int loader_init(void)
mp_msg(MSGT_DECAUDIO,MSGL_ERR,"failed getting proc address SoundConverterBeginConversion\n");
return 1;
}
-#endif
mp_msg(MSGT_DECAUDIO,MSGL_DBG2,"loader_init DONE???\n");
return 0;
}
@@ -207,7 +205,6 @@ static int preinit(sh_audio_t *sh){
}
#endif
-#if 1
OutputFormatInfo.flags = InputFormatInfo.flags = 0;
OutputFormatInfo.sampleCount = InputFormatInfo.sampleCount = 0;
OutputFormatInfo.buffer = InputFormatInfo.buffer = NULL;
@@ -257,8 +254,6 @@ static int preinit(sh_audio_t *sh){
sh->i_bps=sh->wf->nAvgBytesPerSec;
//InputBufferSize*WantedBufferSize/OutputBufferSize;
-#endif
-
if(sh->format==0x3343414D){
// MACE 3:1
sh->ds->ss_div = 2*3; // 1 samples/packet
diff --git a/libmpcodecs/ad_twin.c b/libmpcodecs/ad_twin.c
index f387821a5b..823ace89dd 100644
--- a/libmpcodecs/ad_twin.c
+++ b/libmpcodecs/ad_twin.c
@@ -23,6 +23,7 @@
#include "ad_internal.h"
#include "vqf.h"
+#include "libmpdemux/aviprint.h"
#include "loader/ldt_keeper.h"
#include "loader/wine/windef.h"
#include "libaf/af_format.h"
@@ -106,7 +107,6 @@ static int load_dll( char *libname )
TvqGetNumFixedBitsPerFrame;
}
-void print_wave_header(WAVEFORMATEX *h, int verbose_level);
static int init_vqf_audio_codec(sh_audio_t *sh_audio){
WAVEFORMATEX *in_fmt=sh_audio->wf;
vqf_priv_t*priv=sh_audio->context;
diff --git a/libmpcodecs/dec_teletext.c b/libmpcodecs/dec_teletext.c
index ac12b9aa4a..36c1c76a90 100644
--- a/libmpcodecs/dec_teletext.c
+++ b/libmpcodecs/dec_teletext.c
@@ -952,7 +952,6 @@ static void render2text(tt_page* pt,FILE* f,int colored){
color=-1;bkg=-1;
fprintf(f,"|\n");
}
-#if 1
//for debug
fprintf(f,"+====================raw=================+\n");
for(i=0;i<VBI_ROWS;i++){
@@ -966,7 +965,6 @@ static void render2text(tt_page* pt,FILE* f,int colored){
fprintf(f,"%02x ",dp[i*VBI_COLUMNS+j].lng);
fprintf(f,"\n");
}
-#endif
fprintf(f,"+========================================+\n");
}
diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c
index 83fe050051..27cb4134cc 100644
--- a/libmpcodecs/vd_ffmpeg.c
+++ b/libmpcodecs/vd_ffmpeg.c
@@ -410,6 +410,7 @@ static void draw_slice(struct AVCodecContext *s,
int y, int type, int height){
sh_video_t *sh = s->opaque;
uint8_t *source[MP_MAX_PLANES]= {src->data[0] + offset[0], src->data[1] + offset[1], src->data[2] + offset[2]};
+ int strides[MP_MAX_PLANES] = {src->linesize[0], src->linesize[1], src->linesize[2]};
#if 0
int start=0, i;
int width= s->width;
@@ -433,8 +434,19 @@ static void draw_slice(struct AVCodecContext *s,
}
}else
#endif
+ if (height < 0)
+ {
+ int i;
+ height = -height;
+ y -= height;
+ for (i = 0; i < MP_MAX_PLANES; i++)
+ {
+ strides[i] = -strides[i];
+ source[i] -= strides[i];
+ }
+ }
if (y < sh->disp_h) {
- mpcodecs_draw_slice (sh, source, src->linesize, sh->disp_w, (y+height)<=sh->disp_h?height:sh->disp_h-y, 0, y);
+ mpcodecs_draw_slice (sh, source, strides, sh->disp_w, (y+height)<=sh->disp_h?height:sh->disp_h-y, 0, y);
}
}
diff --git a/libmpcodecs/vd_vfw.c b/libmpcodecs/vd_vfw.c
index e9c5304dd8..8cf7b69541 100644
--- a/libmpcodecs/vd_vfw.c
+++ b/libmpcodecs/vd_vfw.c
@@ -24,7 +24,7 @@
#include "help_mp.h"
#include "vd_internal.h"
-
+#include "libmpdemux/aviprint.h"
#include "loader/wine/driver.h"
#include "loader/wine/vfw.h"
@@ -127,7 +127,6 @@ static int control(sh_video_t *sh,int cmd,void* arg,...){
case VDCTRL_SET_PP_LEVEL:
vfw_set_postproc(sh,10*(*((int*)arg)));
return CONTROL_OK;
-#if 1
// FIXME: make this optional...
case VDCTRL_QUERY_FORMAT:
{
@@ -147,13 +146,10 @@ static int control(sh_video_t *sh,int cmd,void* arg,...){
}
return CONTROL_TRUE;
}
-#endif
}
return CONTROL_UNKNOWN;
}
-void print_video_header(BITMAPINFOHEADER *h, int verbose_level);
-
// init driver
static int init(sh_video_t *sh){
HRESULT ret;
@@ -230,7 +226,6 @@ static int init(sh_video_t *sh){
priv->o_bih->biCompression = 0;
// sanity check:
-#if 1
#ifdef BUILD_VFWEX
ret = ICDecompressQueryEx(priv->handle, sh->bih, priv->o_bih);
#else
@@ -242,7 +237,6 @@ static int init(sh_video_t *sh){
// return 0;
} else
mp_msg(MSGT_WIN32,MSGL_V,"ICDecompressQuery OK\n");
-#endif
#ifdef BUILD_VFWEX
ret = ICDecompressBeginEx(priv->handle, sh->bih, priv->o_bih);
diff --git a/libmpcodecs/ve_vfw.c b/libmpcodecs/ve_vfw.c
index c04c6936a8..201db72369 100644
--- a/libmpcodecs/ve_vfw.c
+++ b/libmpcodecs/ve_vfw.c
@@ -96,7 +96,6 @@ static BITMAPINFOHEADER* vfw_open_encoder(char *dll_name, char *compdatafile, BI
}
mp_msg(MSGT_WIN32,MSGL_INFO,"HIC: %x\n", encoder_hic);
-#if 1
{
ICINFO icinfo;
@@ -118,7 +117,6 @@ if (icinfo.dwFlags & VIDCF_QUALITYTIME)
mp_msg(MSGT_WIN32,MSGL_INFO," temp-quality");
mp_msg(MSGT_WIN32,MSGL_INFO,"\n");
}
-#endif
if(compdatafile){
if (!strncmp(compdatafile, "dialog", 6)){
diff --git a/libmpcodecs/vf_expand.c b/libmpcodecs/vf_expand.c
index e39bbeda7f..fb41464f7e 100644
--- a/libmpcodecs/vf_expand.c
+++ b/libmpcodecs/vf_expand.c
@@ -287,13 +287,11 @@ static void get_image(struct vf_instance* vf, mp_image_t *mpi){
mpi->type, mpi->flags,
FFMAX(vf->priv->exp_w, mpi->width +vf->priv->exp_x),
FFMAX(vf->priv->exp_h, mpi->height+vf->priv->exp_y));
-#if 1
if((vf->dmpi->flags & MP_IMGFLAG_DRAW_CALLBACK) &&
!(vf->dmpi->flags & MP_IMGFLAG_DIRECT)){
mp_tmsg(MSGT_VFILTER, MSGL_INFO, "Full DR not possible, trying SLICES instead!\n");
return;
}
-#endif
// set up mpi as a cropped-down image of dmpi:
if(mpi->flags&MP_IMGFLAG_PLANAR){
mpi->planes[0]=vf->dmpi->planes[0]+
diff --git a/libmpdemux/aac_hdr.c b/libmpdemux/aac_hdr.c
index 1866288349..aed06f0e28 100644
--- a/libmpdemux/aac_hdr.c
+++ b/libmpdemux/aac_hdr.c
@@ -19,6 +19,7 @@
*/
#include <stdint.h>
+#include "aac_hdr.h"
/// \param srate (out) sample rate
/// \param num (out) number of audio frames in this ADTS frame
diff --git a/libmpdemux/aac_hdr.h b/libmpdemux/aac_hdr.h
new file mode 100644
index 0000000000..be56368925
--- /dev/null
+++ b/libmpdemux/aac_hdr.h
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+#ifndef MPLAYER_AAC_HDR_H
+#define MPLAYER_AAC_HDR_H
+
+#include <stdint.h>
+
+int aac_parse_frame(uint8_t *buf, int *srate, int *num);
+
+#endif /* MPLAYER_AAC_HDR_H */
diff --git a/libmpdemux/asfheader.c b/libmpdemux/asfheader.c
index 95d5f18e7f..8096ef1240 100644
--- a/libmpdemux/asfheader.c
+++ b/libmpdemux/asfheader.c
@@ -29,12 +29,13 @@
#include "help_mp.h"
#include "stream/stream.h"
+#include "aviprint.h"
#include "demuxer.h"
#include "stheader.h"
#include "asf.h"
-
#include "asfguid.h"
+#include "asfheader.h"
typedef struct {
// must be 0 for metadata record, might be non-zero for metadata lib record
@@ -135,10 +136,6 @@ int asf_check_header(demuxer_t *demuxer){
return DEMUXER_TYPE_ASF;
}
-void print_wave_header(WAVEFORMATEX *h, int verbose_level);
-void print_video_header(BITMAPINFOHEADER *h, int verbose_level);
-
-
static int get_ext_stream_properties(char *buf, int buf_len, int stream_num, struct asf_priv* asf, int is_video)
{
int pos=0;
diff --git a/libmpdemux/asfheader.h b/libmpdemux/asfheader.h
new file mode 100644
index 0000000000..9c239f7987
--- /dev/null
+++ b/libmpdemux/asfheader.h
@@ -0,0 +1,28 @@
+/*
+ * 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 MPlaye