Changeset 30936


Ignore:
Timestamp:
11/11/14 21:39:31 (8 years ago)
Author:
obi
Message:

fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/player.h

    r30933 r30936  
    11931193
    11941194// eof workaround for some mp4 files.
    1195                 gint64 pts = 0;
     1195                gint64 pts = 0, len = 0, rest = 0;
     1196                gint64 nanos_pts = 0, nanos_len = 0;
     1197
     1198                len = playergetlength();
     1199                nanos_len = len * 1000000000;
     1200                if(nanos_len < 0) nanos_len = 0;
     1201
    11961202                pts = playergetpts();
    1197 
    1198                 if(status.pts != pts || pts == 0 || status.pause == 1 /*|| status.prefillbuffer == 1*/)
    1199                 {
    1200                         //debug(150, "status.pts=%llu / pts=%llu\n", status.pts, pts);
     1203                nanos_pts = pts * 11111;
     1204
     1205                rest = nanos_len - nanos_pts;
     1206//              printf("rest: %lld\n", nanos_len - nanos_pts);
     1207
     1208                debug(150, "status.pause=%d status.playspeed=%d status.slowspeed=%d status.prefillbuffer=%d rest=%lld", status.pause, status.playspeed, status.slowspeed, status.prefillbuffer, rest);
     1209                if(rest > 2000000000 || status.pts != pts || pts == 0 || status.pause == 1 || status.playspeed != 0 || status.slowspeed != 0 /*|| status.prefillbuffer == 1*/)
     1210                {
     1211//                      debug(150, "status.pts=%llu / pts=%llu\n", status.pts, pts);
    12011212                        status.pts = pts;
    12021213                }
    12031214                else
    12041215                {
    1205                         debug(150, "gst player eof - workaround");
     1216                        debug(150, "gst player eof - workaround (rest=%lld)", rest);
    12061217                        ret = 0;
    12071218                }
     
    14001411
    14011412                if(nanos_pts >= nanos_len)
    1402                         playerstop();
     1413                {
     1414                        debug(150, "gst skip seeking");
     1415//                      playerstop();
     1416                }
    14031417                else
    14041418                        gst_element_seek(pipeline, 1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH, GST_SEEK_TYPE_SET, nanos_pts, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE);
Note: See TracChangeset for help on using the changeset viewer.