summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-07-10 02:07:26 +0200
committerwm4 <wm4@nowhere>2013-07-10 02:07:26 +0200
commit186f6021b1aebd84dbb625d8747d5edaaf87dd38 (patch)
tree059932614b46a19dbc360d3d11b41b348dfe9fdc /demux
parent052d4ddbbbc91e95e9e4b380423ddb2f67437888 (diff)
downloadmpv-186f6021b1aebd84dbb625d8747d5edaaf87dd38.tar.bz2
mpv-186f6021b1aebd84dbb625d8747d5edaaf87dd38.tar.xz
core: move code from demux/video.c to mplayer.c
Although I don't like putting even more crap into mplayer.c, this is a bit better, especially with coming cleanups in mind.
Diffstat (limited to 'demux')
-rw-r--r--demux/stheader.h4
-rw-r--r--demux/video.c93
2 files changed, 0 insertions, 97 deletions
diff --git a/demux/stheader.h b/demux/stheader.h
index 0351a29ee7..8b584396ca 100644
--- a/demux/stheader.h
+++ b/demux/stheader.h
@@ -152,8 +152,4 @@ typedef struct sh_sub {
// demuxer.c:
struct sh_stream *new_sh_stream(struct demuxer *demuxer, enum stream_type type);
-// video.c:
-int video_read_frame(struct sh_video *sh_video, float *frame_time_ptr,
- unsigned char **start, int force_fps);
-
#endif /* MPLAYER_STHEADER_H */
diff --git a/demux/video.c b/demux/video.c
deleted file mode 100644
index 1a7db255bf..0000000000
--- a/demux/video.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * video frame reading
- *
- * 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 "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <libavutil/mem.h>
-
-#include "core/mp_msg.h"
-
-#include "stream/stream.h"
-#include "demux.h"
-#include "stheader.h"
-
-int video_read_frame(sh_video_t* sh_video,float* frame_time_ptr,unsigned char** start,int force_fps){
- demux_stream_t *d_video=sh_video->ds;
- demuxer_t *demuxer=d_video->demuxer;
- float frame_time=1;
- float pts1=d_video->pts;
- int in_size=0;
-
- *start=NULL;
-
- // frame-based file formats: (AVI,ASF,MOV)
- in_size=ds_get_packet(d_video,start);
- if(in_size<0) return -1; // EOF
-
-
-//------------------------ frame decoded. --------------------
-
- frame_time*=sh_video->frametime;
-
- // override frame_time for variable/unknown FPS formats:
- if(!force_fps) switch(demuxer->file_format){
- case DEMUXER_TYPE_MATROSKA:
- case DEMUXER_TYPE_MNG:
- if(d_video->pts>0 && pts1>0 && d_video->pts>pts1)
- frame_time=d_video->pts-pts1;
- break;
- case DEMUXER_TYPE_TV: {
- double next_pts = ds_get_next_pts(d_video);
- double d= (next_pts != MP_NOPTS_VALUE) ? next_pts - d_video->pts : d_video->pts-pts1;
- if(d>=0){
- if(d>0){
- if((int)sh_video->fps==1000)
- mp_msg(MSGT_CPLAYER,MSGL_V,"\navg. framerate: %d fps \n",(int)(1.0f/d));
- sh_video->frametime=d; // 1ms
- sh_video->fps=1.0f/d;
- }
- frame_time = d;
- } else {
- mp_msg(MSGT_CPLAYER,MSGL_WARN,"\nInvalid frame duration value (%5.3f/%5.3f => %5.3f). Defaulting to %5.3f sec.\n",d_video->pts,next_pts,d,frame_time);
- // frame_time = 1/25.0;
- }
- }
- break;
- case DEMUXER_TYPE_LAVF:
- if((int)sh_video->fps==1000 || (int)sh_video->fps<=1){
- double next_pts = ds_get_next_pts(d_video);
- double d= (next_pts != MP_NOPTS_VALUE) ? next_pts - d_video->pts : d_video->pts-pts1;
- if(d>=0){
- frame_time = d;
- }
- }
- break;
- }
-
- sh_video->pts=d_video->pts;
-
- if(frame_time_ptr) *frame_time_ptr=frame_time;
- return in_size;
-}