timecode: add avpriv_timecode_to_string().
This commit is contained in:
		
							parent
							
								
									98aca4bbef
								
							
						
					
					
						commit
						ad5ade6615
					
				@ -79,6 +79,22 @@ static int check_timecode_rate(void *avcl, AVRational rate, int drop)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
char *avpriv_timecode_to_string(char *buf, const struct ff_timecode *tc, unsigned frame)
 | 
			
		||||
{
 | 
			
		||||
    int frame_num = tc->start + frame;
 | 
			
		||||
    int fps = (tc->rate.num + tc->rate.den/2) / tc->rate.den;
 | 
			
		||||
    int ff  = frame_num % fps;
 | 
			
		||||
    int ss  = frame_num / fps        % 60;
 | 
			
		||||
    int mm  = frame_num / (fps*60)   % 60;
 | 
			
		||||
    int hh  = frame_num / (fps*3600) % 24;
 | 
			
		||||
 | 
			
		||||
    if (tc->drop)
 | 
			
		||||
        frame_num = ff_framenum_to_drop_timecode(frame_num);
 | 
			
		||||
    snprintf(buf, sizeof("hh:mm:ss.ff"), "%02d:%02d:%02d%c%02d",
 | 
			
		||||
             hh, mm, ss, tc->drop ? ';' : ':', ff);
 | 
			
		||||
    return buf;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int ff_init_smtpe_timecode(void *avcl, struct ff_timecode *tc)
 | 
			
		||||
{
 | 
			
		||||
    int hh, mm, ss, ff, fps, ret;
 | 
			
		||||
 | 
			
		||||
@ -60,6 +60,17 @@ int ff_framenum_to_drop_timecode(int frame_num);
 | 
			
		||||
 */
 | 
			
		||||
uint32_t ff_framenum_to_smtpe_timecode(unsigned frame, int fps, int drop);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief       Load timecode string in buf
 | 
			
		||||
 * @param buf   Destination buffer
 | 
			
		||||
 * @param tc    Timecode struct pointer
 | 
			
		||||
 * @param frame Frame id (timecode frame is computed with tc->start+frame)
 | 
			
		||||
 * @return a pointer to the buf parameter
 | 
			
		||||
 * @note  buf must have enough space to store the timecode representation
 | 
			
		||||
 *        (sizeof("hh:mm:ss.ff"))
 | 
			
		||||
 */
 | 
			
		||||
char *avpriv_timecode_to_string(char *buf, const struct ff_timecode *tc, unsigned frame);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Parse SMTPE 12M time representation (hh:mm:ss[:;.]ff). str and rate fields
 | 
			
		||||
 * from tc struct must be set.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user