diff options
author | Uoti Urpala <uau@symbol.nonexistent.invalid> | 2008-07-30 16:39:24 +0300 |
---|---|---|
committer | Uoti Urpala <uau@symbol.nonexistent.invalid> | 2008-07-30 16:39:24 +0300 |
commit | 04f3909a724a06ca5a5a3921061f2ba9fb9d8787 (patch) | |
tree | b09b4c45898be2754f156ebba16fa1054f42788d /libmpdemux | |
parent | 3a69d65f8d07c54f4c9eb2d9c89ab50e35d0a50d (diff) | |
parent | 1fdf02e6fbd896c8fcce03992ecdf36144d85714 (diff) | |
download | mpv-04f3909a724a06ca5a5a3921061f2ba9fb9d8787.tar.bz2 mpv-04f3909a724a06ca5a5a3921061f2ba9fb9d8787.tar.xz |
Merge svn changes up to r27374
Conflicts:
cfg-common-opts.h
cfg-mplayer.h
command.c
configure
libmpcodecs/dec_video.c
libmpcodecs/vd.c
libmpcodecs/vf_vo.c
libmpdemux/demuxer.h
libmpdemux/stheader.h
mp_core.h
mplayer.c
stream/stream_radio.c
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/demux_audio.c | 2 | ||||
-rw-r--r-- | libmpdemux/demux_mkv.c | 12 | ||||
-rw-r--r-- | libmpdemux/demux_mov.c | 6 | ||||
-rw-r--r-- | libmpdemux/demux_ogg.c | 39 | ||||
-rw-r--r-- | libmpdemux/demux_rtp.cpp | 4 | ||||
-rw-r--r-- | libmpdemux/demux_rtp_codec.cpp | 4 | ||||
-rw-r--r-- | libmpdemux/demux_rtp_internal.h | 2 | ||||
-rw-r--r-- | libmpdemux/demuxer.c | 18 | ||||
-rw-r--r-- | libmpdemux/extension.c | 2 | ||||
-rw-r--r-- | libmpdemux/mp_taglists.c | 2 | ||||
-rw-r--r-- | libmpdemux/muxer.c | 2 | ||||
-rw-r--r-- | libmpdemux/muxer_mpeg.c | 2 |
12 files changed, 40 insertions, 55 deletions
diff --git a/libmpdemux/demux_audio.c b/libmpdemux/demux_audio.c index 99691ecef0..57fa0d340c 100644 --- a/libmpdemux/demux_audio.c +++ b/libmpdemux/demux_audio.c @@ -685,7 +685,7 @@ static int demux_audio_control(demuxer_t *demuxer,int cmd, void *arg){ const demuxer_desc_t demuxer_desc_audio = { "Audio demuxer", "audio", - "Audio file", + "Audio only", "?", "Audio only files", DEMUXER_TYPE_AUDIO, diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c index 3bd7b64057..7352b02bff 100644 --- a/libmpdemux/demux_mkv.c +++ b/libmpdemux/demux_mkv.c @@ -32,11 +32,11 @@ #include "libavutil/common.h" -#ifdef USE_QTX_CODECS +#ifdef CONFIG_QTX_CODECS #include "loader/qtx/qtxsdk/components.h" #endif -#ifdef HAVE_ZLIB +#ifdef CONFIG_ZLIB #include <zlib.h> #endif @@ -470,7 +470,7 @@ demux_mkv_decode (mkv_track_t *track, uint8_t *src, uint8_t **dest, if (!(track->encodings[i].scope & type)) continue; -#ifdef HAVE_ZLIB +#ifdef CONFIG_ZLIB if (track->encodings[i].comp_algo == 0) { /* zlib encoded track */ @@ -718,7 +718,7 @@ demux_mkv_read_trackencodings (demuxer_t *demuxer, mkv_track_t *track) MSGTR_MPDEMUX_MKV_UnknownCompression, track->tnum, e.comp_algo); } -#ifndef HAVE_ZLIB +#ifndef CONFIG_ZLIB else if (e.comp_algo == 0) { mp_msg (MSGT_DEMUX, MSGL_WARN, @@ -1756,7 +1756,7 @@ demux_mkv_open_video (demuxer_t *demuxer, mkv_track_t *track, int vid) stream_read(demuxer->stream, dst+8, cnt); track->realmedia = 1; -#ifdef USE_QTX_CODECS +#ifdef CONFIG_QTX_CODECS } else if (track->private_size >= sizeof (ImageDescription) && !strcmp(track->codec_id, MKV_V_QUICKTIME)) @@ -1782,7 +1782,7 @@ demux_mkv_open_video (demuxer_t *demuxer, mkv_track_t *track, int vid) bih->biPlanes = 1; bih->biCompression = idesc->cType; ImageDesc = idesc; -#endif /* USE_QTX_CODECS */ +#endif /* CONFIG_QTX_CODECS */ } else diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c index c15b205774..f31285bef2 100644 --- a/libmpdemux/demux_mov.c +++ b/libmpdemux/demux_mov.c @@ -48,7 +48,7 @@ #include "qtpalette.h" #include "parse_mp4.h" // .MP4 specific stuff -#ifdef HAVE_ZLIB +#ifdef CONFIG_ZLIB #include <zlib.h> #endif @@ -1395,7 +1395,7 @@ static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak trak=NULL; break; } -#ifndef HAVE_ZLIB +#ifndef CONFIG_ZLIB case MOV_FOURCC('c','m','o','v'): { mp_msg(MSGT_DEMUX,MSGL_ERR,MSGTR_MOVcomprhdr); return; @@ -2027,7 +2027,7 @@ static demuxer_t* mov_read_header(demuxer_t* demuxer){ char2int(trak->stdata,12)==MOV_FOURCC('z','l','i','b') ){ int newlen=stream_read_dword(demuxer->stream); -#ifdef HAVE_ZLIB +#ifdef CONFIG_ZLIB // unzip: z_stream zstrm; int zret; diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c index 3950c2be7e..2bd996e207 100644 --- a/libmpdemux/demux_ogg.c +++ b/libmpdemux/demux_ogg.c @@ -100,6 +100,7 @@ typedef struct ogg_stream { float samplerate; /// granulpos 2 time int64_t lastpos; int32_t lastsize; + int keyframe_frequency_force; // Logical stream state ogg_stream_state stream; @@ -195,7 +196,7 @@ void demux_ogg_add_sub (ogg_stream_t* os,ogg_packet* pack) { mp_msg(MSGT_DEMUX,MSGL_DBG2,"Ogg sub lines: %d first: '%s'\n", ogg_sub.lines, ogg_sub.text[0]); -#ifdef USE_ICONV +#ifdef CONFIG_ICONV subcp_recode(&ogg_sub); #endif vo_sub = &ogg_sub; @@ -236,7 +237,7 @@ static int demux_ogg_get_page_stream(ogg_demuxer_t* ogg_d,ogg_stream_state** os } -static unsigned char* demux_ogg_read_packet(ogg_stream_t* os,ogg_packet* pack,void *context,float* pts,int* flags, int samplesize) { +static unsigned char* demux_ogg_read_packet(ogg_stream_t* os,ogg_packet* pack,float* pts,int* flags, int samplesize) { unsigned char* data = pack->packet; *pts = 0; @@ -273,10 +274,9 @@ static unsigned char* demux_ogg_read_packet(ogg_stream_t* os,ogg_packet* pack,vo /* header packets begin on 1-bit: thus check (*data&0x80). We don't have theora_state st, until all header packets were passed to the decoder. */ - if (context != NULL && !(*data&0x80)) + if (!(*data&0x80)) { - theora_info *thi = ((theora_struct_t*)context)->st.i; - int keyframe_granule_shift=_ilog(thi->keyframe_frequency_force-1); + int keyframe_granule_shift=_ilog(os->keyframe_frequency_force-1); int64_t iframemask = (1 << keyframe_granule_shift) - 1; if (pack->granulepos >= 0) @@ -427,7 +427,6 @@ static int demux_ogg_add_packet(demux_stream_t* ds,ogg_stream_t* os,int id,ogg_p unsigned char* data; float pts = 0; int flags = 0; - void *context = NULL; int samplesize = 1; // If packet is an comment header then we try to get comments at first @@ -468,12 +467,9 @@ static int demux_ogg_add_packet(demux_stream_t* ds,ogg_stream_t* os,int id,ogg_p // For vorbis packet the packet is the data, for other codec we must jump // the header if(ds == d->audio && ((sh_audio_t*)ds->sh)->format == FOURCC_VORBIS) { - context = ((sh_audio_t *)ds->sh)->context; samplesize = ((sh_audio_t *)ds->sh)->samplesize; } - if (ds == d->video && ((sh_audio_t*)ds->sh)->format == FOURCC_THEORA) - context = ((sh_video_t *)ds->sh)->context; - data = demux_ogg_read_packet(os,pack,context,&pts,&flags,samplesize); + data = demux_ogg_read_packet(os,pack,&pts,&flags,samplesize); if (!data) return 0; @@ -504,7 +500,6 @@ void demux_ogg_scan_stream(demuxer_t* demuxer) { ogg_stream_t* os; ogg_packet op; int np,sid,p,samplesize=1; - void *context = NULL; off_t pos, last_pos; pos = last_pos = demuxer->movi_start; @@ -520,15 +515,10 @@ void demux_ogg_scan_stream(demuxer_t* demuxer) { // Get the serial number of the stream we use if(demuxer->video->id >= 0) { sid = demuxer->video->id; - /* demux_ogg_read_packet needs decoder context for Theora streams */ - if (((sh_video_t*)demuxer->video->sh)->format == FOURCC_THEORA) - context = ((sh_video_t*)demuxer->video->sh)->context; } else if(demuxer->audio->id >= 0) { sid = demuxer->audio->id; - /* demux_ogg_read_packet needs decoder context for Vorbis streams */ if(((sh_audio_t*)demuxer->audio->sh)->format == FOURCC_VORBIS) { - context = ((sh_audio_t*)demuxer->audio->sh)->context; samplesize = ((sh_audio_t*)demuxer->audio->sh)->samplesize; } } @@ -566,7 +556,7 @@ void demux_ogg_scan_stream(demuxer_t* demuxer) { while(ogg_stream_packetout(oss,&op) == 1) { float pts; int flags; - demux_ogg_read_packet(os,&op,context,&pts,&flags,samplesize); + demux_ogg_read_packet(os,&op,&pts,&flags,samplesize); if(op.granulepos >= 0) ogg_d->final_granulepos = op.granulepos; if(index_mode == 2 && (flags || (os->vorbis && op.granulepos >= 0))) { if (ogg_d->num_syncpoint > SIZE_MAX / sizeof(ogg_syncpoint_t) - 1) break; @@ -755,7 +745,7 @@ int demux_ogg_open(demuxer_t* demuxer) { sh_audio_t* sh_a; sh_video_t* sh_v; -#ifdef USE_ICONV +#ifdef CONFIG_ICONV subcp_open(NULL); #endif @@ -865,7 +855,6 @@ int demux_ogg_open(demuxer_t* demuxer) { { sh_v = new_sh_video_vid(demuxer,ogg_d->num_sub, n_video); - sh_v->context = NULL; sh_v->bih = calloc(1,sizeof(BITMAPINFOHEADER)); sh_v->bih->biSize=sizeof(BITMAPINFOHEADER); sh_v->bih->biCompression= sh_v->format = FOURCC_THEORA; @@ -881,6 +870,7 @@ int demux_ogg_open(demuxer_t* demuxer) { sh_v->bih->biWidth*sh_v->bih->biHeight); ogg_d->subs[ogg_d->num_sub].samplerate = sh_v->fps; ogg_d->subs[ogg_d->num_sub].theora = 1; + ogg_d->subs[ogg_d->num_sub].keyframe_frequency_force = inf.keyframe_frequency_force; ogg_d->subs[ogg_d->num_sub].id = n_video; n_video++; mp_msg(MSGT_DEMUX,MSGL_INFO, @@ -1329,7 +1319,6 @@ static void demux_ogg_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_de int i,sp,first,precision=1,do_seek=1; vorbis_info* vi = NULL; int64_t gp = 0, old_gp; - void *context = NULL; off_t pos, old_pos; int np; int is_gp_valid; @@ -1340,16 +1329,10 @@ static void demux_ogg_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_de if(demuxer->video->id >= 0) { ds = demuxer->video; - /* demux_ogg_read_packet needs decoder context for Theora streams */ - if (((sh_video_t*)demuxer->video->sh)->format == FOURCC_THEORA) - context = ((sh_video_t*)demuxer->video->sh)->context; rate = ogg_d->subs[ds->id].samplerate; } else { ds = demuxer->audio; os = &ogg_d->subs[ds->id]; - /* demux_ogg_read_packet needs decoder context for Vorbis streams */ - if(((sh_audio_t*)demuxer->audio->sh)->format == FOURCC_VORBIS) - context = ((sh_audio_t*)demuxer->audio->sh)->context; vi = &(os->vi); rate = (float)vi->rate; samplesize = ((sh_audio_t*)ds->sh)->samplesize; @@ -1456,7 +1439,7 @@ static void demux_ogg_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_de } is_gp_valid = (op.granulepos >= 0); granulepos_orig=op.granulepos; - demux_ogg_read_packet(os,&op,context,&pts,&is_keyframe,samplesize); + demux_ogg_read_packet(os,&op,&pts,&is_keyframe,samplesize); if (precision && is_gp_valid) { precision--; if (abs(gp - op.granulepos) > rate && (op.granulepos != old_gp)) { @@ -1504,7 +1487,7 @@ static void demux_close_ogg(demuxer_t* demuxer) { if(!ogg_d) return; -#ifdef USE_ICONV +#ifdef CONFIG_ICONV subcp_close(); #endif diff --git a/libmpdemux/demux_rtp.cpp b/libmpdemux/demux_rtp.cpp index fc4967f911..7ec42db75a 100644 --- a/libmpdemux/demux_rtp.cpp +++ b/libmpdemux/demux_rtp.cpp @@ -501,7 +501,7 @@ static demux_packet_t* getBuffer(demuxer_t* demuxer, demux_stream_t* ds, if (dp == NULL) return NULL; } -#ifdef USE_LIBAVCODEC +#ifdef CONFIG_LIBAVCODEC extern AVCodecParserContext * h264parserctx; int consumed, poutbuf_size = 1; const uint8_t *poutbuf = NULL; @@ -532,7 +532,7 @@ static demux_packet_t* getBuffer(demuxer_t* demuxer, demux_stream_t* ds, if (headersize == 1) // amr dp->buffer[0] = ((AMRAudioSource*)bufferQueue->readSource())->lastFrameHeader(); -#ifdef USE_LIBAVCODEC +#ifdef CONFIG_LIBAVCODEC } else { bufferQueue->dp = dp = bufferQueue->nextpacket; bufferQueue->nextpacket = NULL; diff --git a/libmpdemux/demux_rtp_codec.cpp b/libmpdemux/demux_rtp_codec.cpp index 33b2dc41eb..4dd2a1908f 100644 --- a/libmpdemux/demux_rtp_codec.cpp +++ b/libmpdemux/demux_rtp_codec.cpp @@ -9,7 +9,7 @@ extern "C" { #include "libavutil/base64.h" } -#ifdef USE_LIBAVCODEC +#ifdef CONFIG_LIBAVCODEC AVCodecParserContext * h264parserctx; #endif @@ -116,7 +116,7 @@ void rtpCodecInitialize_video(demuxer_t* demuxer, = parseH264ConfigStr(subsession->fmtp_spropparametersets(), configLen); sh_video->bih = bih = insertVideoExtradata(bih, configData, configLen); delete[] configData; -#ifdef USE_LIBAVCODEC +#ifdef CONFIG_LIBAVCODEC avcodec_register_all(); h264parserctx = av_parser_init(CODEC_ID_H264); #endif diff --git a/libmpdemux/demux_rtp_internal.h b/libmpdemux/demux_rtp_internal.h index 89f6002f98..d504b49c7d 100644 --- a/libmpdemux/demux_rtp_internal.h +++ b/libmpdemux/demux_rtp_internal.h @@ -10,7 +10,7 @@ extern "C" { #ifndef DEMUXER_H #include "demuxer.h" #endif -#ifdef USE_LIBAVCODEC +#ifdef CONFIG_LIBAVCODEC #include "libavcodec/avcodec.h" #endif } diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index e7234b14af..6ca1f4aaa4 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -23,12 +23,12 @@ #include "libaf/af_format.h" -#ifdef USE_ASS +#ifdef CONFIG_ASS #include "libass/ass.h" #include "libass/ass_mp.h" #endif -#ifdef USE_LIBAVCODEC +#ifdef CONFIG_LIBAVCODEC #include "libavcodec/avcodec.h" #if MP_INPUT_BUFFER_PADDING_SIZE < FF_INPUT_BUFFER_PADDING_SIZE #error MP_INPUT_BUFFER_PADDING_SIZE is too small! @@ -89,11 +89,11 @@ extern const demuxer_desc_t demuxer_desc_nut; const demuxer_desc_t *const demuxer_list[] = { &demuxer_desc_rawaudio, &demuxer_desc_rawvideo, -#ifdef USE_TV +#ifdef CONFIG_TV &demuxer_desc_tv, #endif &demuxer_desc_mf, -#ifdef USE_LIBAVFORMAT +#ifdef CONFIG_LIBAVFORMAT &demuxer_desc_lavf_preferred, #endif &demuxer_desc_avi, @@ -117,7 +117,7 @@ const demuxer_desc_t *const demuxer_list[] = { #ifdef HAVE_OGGVORBIS &demuxer_desc_ogg, #endif -#ifdef USE_WIN32DLL +#ifdef CONFIG_WIN32DLL &demuxer_desc_avs, #endif &demuxer_desc_pva, @@ -137,7 +137,7 @@ const demuxer_desc_t *const demuxer_list[] = { #ifdef LIBNEMESI &demuxer_desc_rtp_nemesi, #endif -#ifdef USE_LIBAVFORMAT +#ifdef CONFIG_LIBAVFORMAT &demuxer_desc_lavf, #endif #ifdef MUSEPACK @@ -265,7 +265,7 @@ void free_sh_sub(sh_sub_t *sh) { mp_msg(MSGT_DEMUXER, MSGL_DBG2, "DEMUXER: freeing sh_sub at %p\n", sh); free(sh->extradata); -#ifdef USE_ASS +#ifdef CONFIG_ASS if (sh->ass_track) ass_free_track(sh->ass_track); #endif @@ -909,7 +909,7 @@ static demuxer_t *demux_open_stream(struct MPOpts *opts, stream_t *stream, sh_video->fps, sh_video->i_bps * 0.008f, sh_video->i_bps / 1024.0f); } -#ifdef USE_ASS +#ifdef CONFIG_ASS if (ass_enabled && ass_library) { for (i = 0; i < MAX_S_STREAMS; ++i) { sh_sub_t *sh = demuxer->s_streams[i]; @@ -1072,7 +1072,7 @@ int demux_seek(demuxer_t *demuxer, float rel_seek_secs, float audio_delay, if (!demuxer->seekable) { if (demuxer->file_format == DEMUXER_TYPE_AVI) mp_msg(MSGT_SEEK, MSGL_WARN, MSGTR_CantSeekRawAVI); -#ifdef USE_TV +#ifdef CONFIG_TV else if (demuxer->file_format == DEMUXER_TYPE_TV) mp_msg(MSGT_SEEK, MSGL_WARN, MSGTR_TVInputNotSeekable); #endif diff --git a/libmpdemux/extension.c b/libmpdemux/extension.c index 5db36b6f29..a1cd2a49d2 100644 --- a/libmpdemux/extension.c +++ b/libmpdemux/extension.c @@ -52,7 +52,7 @@ static struct { { "nsv", DEMUXER_TYPE_NSV }, { "nsa", DEMUXER_TYPE_NSV }, { "mpc", DEMUXER_TYPE_MPC }, -#ifdef USE_WIN32DLL +#ifdef CONFIG_WIN32DLL { "avs", DEMUXER_TYPE_AVS }, #endif { "302", DEMUXER_TYPE_LAVF }, diff --git a/libmpdemux/mp_taglists.c b/libmpdemux/mp_taglists.c index 39e8b76d92..d6e4f94de5 100644 --- a/libmpdemux/mp_taglists.c +++ b/libmpdemux/mp_taglists.c @@ -72,11 +72,13 @@ static const AVCodecTag mp_bmp_tags[] = { { CODEC_ID_IDCIN, MKTAG('I', 'D', 'C', 'I')}, { CODEC_ID_INTERPLAY_VIDEO, MKTAG('I', 'N', 'P', 'V')}, { CODEC_ID_MDEC, MKTAG('M', 'D', 'E', 'C')}, + { CODEC_ID_MOTIONPIXELS, MKTAG('M', 'V', 'I', '1')}, { CODEC_ID_RL2, MKTAG('R', 'L', '2', 'V')}, { CODEC_ID_ROQ, MKTAG('R', 'o', 'Q', 'V')}, { CODEC_ID_THP, MKTAG('T', 'H', 'P', 'V')}, { CODEC_ID_TIERTEXSEQVIDEO, MKTAG('T', 'S', 'E', 'Q')}, { CODEC_ID_TXD, MKTAG('T', 'X', 'D', 'V')}, + { CODEC_ID_VP6A, MKTAG('V', 'P', '6', 'A')}, { CODEC_ID_VMDVIDEO, MKTAG('V', 'M', 'D', 'V')}, { CODEC_ID_WS_VQA, MKTAG('V', 'Q', 'A', 'V')}, { CODEC_ID_XAN_WC3, MKTAG('W', 'C', '3', 'V')}, diff --git a/libmpdemux/muxer.c b/libmpdemux/muxer.c index 4c4e5a18cf..d7bda17a61 100644 --- a/libmpdemux/muxer.c +++ b/libmpdemux/muxer.c @@ -34,7 +34,7 @@ muxer_t *muxer_new_muxer(int type,stream_t *stream){ if(! muxer_init_muxer_rawaudio(muxer)) goto fail; break; -#ifdef USE_LIBAVFORMAT +#ifdef CONFIG_LIBAVFORMAT case MUXER_TYPE_LAVF: if(! muxer_init_muxer_lavf(muxer)) goto fail; diff --git a/libmpdemux/muxer_mpeg.c b/libmpdemux/muxer_mpeg.c index 2a659b7f00..d2f67e2a54 100644 --- a/libmpdemux/muxer_mpeg.c +++ b/libmpdemux/muxer_mpeg.c @@ -2101,7 +2101,7 @@ static int parse_audio(muxer_stream_t *s, int finalize, unsigned int *nf, double if(s->b_buffer[i] == 0x0B && s->b_buffer[i+1] == 0x77) { srate = 0; - #ifdef USE_LIBA52 + #ifdef CONFIG_LIBA52 len = a52_syncinfo(&(s->b_buffer[i]), &dummy, &srate, &dummy); #else len = mp_a52_framesize(&(s->b_buffer[i]), &srate); |