[MPlayer-cvslog] r32041 - in trunk: DOCS/man/en/mplayer.1 cfg-mplayer.h command.c edl.h mplayer.c
reynaldo
subversion at mplayerhq.hu
Sat Sep 4 01:49:35 CEST 2010
Author: reynaldo
Date: Sat Sep 4 01:49:35 2010
New Revision: 32041
Log:
Add -edl-start-pts option to Adjust positions in EDL records according
to file's start time. Patch by Vlad Seryakov, vseryakov at gmail.
Modified:
trunk/cfg-mplayer.h
trunk/command.c
trunk/edl.h
trunk/mplayer.c
Changes in other areas also in this revision:
Modified:
trunk/DOCS/man/en/mplayer.1
Modified: trunk/cfg-mplayer.h
==============================================================================
--- trunk/cfg-mplayer.h Fri Sep 3 20:50:03 2010 (r32040)
+++ trunk/cfg-mplayer.h Sat Sep 4 01:49:35 2010 (r32041)
@@ -103,6 +103,8 @@ const m_option_t mplayer_opts[]={
CONF_TYPE_PRINT, 0, 0, 0, NULL},
{"edlout", &edl_output_filename, CONF_TYPE_STRING, 0, 0, 0, NULL},
{"edl-backward-delay", &edl_backward_delay, CONF_TYPE_INT, CONF_MIN, 0, 0, NULL},
+ {"edl-start-pts", &edl_start_pts, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+ {"noedl-start-pts", &edl_start_pts, CONF_TYPE_FLAG, 0, 1, 0, NULL},
#ifdef CONFIG_X11
{"display", &mDisplayName, CONF_TYPE_STRING, 0, 0, 0, NULL},
Modified: trunk/command.c
==============================================================================
--- trunk/command.c Fri Sep 3 20:50:03 2010 (r32040)
+++ trunk/command.c Sat Sep 4 01:49:35 2010 (r32041)
@@ -66,6 +66,7 @@
#include "mp_core.h"
#include "mp_fifo.h"
#include "libavutil/avstring.h"
+#include "edl.h"
#define ROUND(x) ((int)((x)<0 ? (x)-0.5 : (x)+0.5))
@@ -2614,7 +2615,8 @@ int run_command(MPContext *mpctx, mp_cmd
if (mpctx->begin_skip > v)
mp_msg(MSGT_CPLAYER, MSGL_WARN, MSGTR_EdloutBadStop);
else {
- fprintf(edl_fd, "%f %f %d\n", mpctx->begin_skip, v, 0);
+ double pts = edl_start_pts ? start_pts : 0;
+ fprintf(edl_fd, "%f %f %d\n", mpctx->begin_skip - pts, v - pts, 0);
mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_EdloutEndSkip);
}
mpctx->begin_skip = MP_NOPTS_VALUE;
Modified: trunk/edl.h
==============================================================================
--- trunk/edl.h Fri Sep 3 20:50:03 2010 (r32040)
+++ trunk/edl.h Sat Sep 4 01:49:35 2010 (r32041)
@@ -40,6 +40,7 @@ typedef struct edl_record* edl_record_pt
extern char *edl_filename; // file to extract EDL entries from (-edl)
extern char *edl_output_filename; // file to put EDL entries in (-edlout)
+extern int edl_start_pts; // Start pts to be added/subtracted to EDL pos
void free_edl(edl_record_ptr next_edl_record); // free's entire EDL list.
edl_record_ptr edl_parse_file(void); // fills EDL stack
Modified: trunk/mplayer.c
==============================================================================
--- trunk/mplayer.c Fri Sep 3 20:50:03 2010 (r32040)
+++ trunk/mplayer.c Sat Sep 4 01:49:35 2010 (r32041)
@@ -142,7 +142,7 @@ int player_idle_mode=0;
int quiet=0;
int enable_mouse_movements=0;
float start_volume = -1;
-
+double start_pts = MP_NOPTS_VALUE;
char *heartbeat_cmd;
#define ROUND(x) ((int)((x)<0 ? (x)-0.5 : (x)+0.5))
@@ -339,6 +339,7 @@ FILE* edl_fd = NULL; ///< fd to write to
// (next seek, pause,...), otherwise after the seek it will
// enter the same scene again and skip forward immediately
float edl_backward_delay = 2;
+int edl_start_pts = 0; ///< Automatically add/sub this from EDL start/stop pos
int use_filedir_conf;
int use_filename_title;
@@ -555,7 +556,6 @@ char *get_metadata (metadata_t type) {
static void print_file_properties(const MPContext *mpctx, const char *filename)
{
- double start_pts = MP_NOPTS_VALUE;
double video_start_pts = MP_NOPTS_VALUE;
mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_FILENAME=%s\n",
filename_recode(filename));
@@ -3640,6 +3640,16 @@ if (select_subtitle(mpctx)) {
print_file_properties(mpctx, filename);
+ // Adjust EDL positions with start_pts
+ if (edl_start_pts && start_pts) {
+ edl_record_ptr edl = edl_records;
+ while (edl) {
+ edl->start_sec += start_pts;
+ edl->stop_sec += start_pts;
+ edl = edl->next;
+ }
+ }
+
if(!mpctx->sh_video) goto main; // audio-only
if(!reinit_video_chain()) {
More information about the MPlayer-cvslog
mailing list