Mercurial > mplayer.hg
comparison libmpdemux/demux_ts.c @ 20467:67dd5d97176e
reformatted ts_parse() after previous commit
author | nicodvb |
---|---|
date | Sat, 28 Oct 2006 09:52:19 +0000 |
parents | 367513ea7b12 |
children | 0398b9cbd66d |
comparison
equal
deleted
inserted
replaced
20466:a5d299e877b2 | 20467:67dd5d97176e |
---|---|
2790 int asgn = 0; | 2790 int asgn = 0; |
2791 uint8_t *lang; | 2791 uint8_t *lang; |
2792 | 2792 |
2793 if(dvdsub_lang) | 2793 if(dvdsub_lang) |
2794 { | 2794 { |
2795 if(!strcmp(dvdsub_lang, "")) | 2795 if(!strcmp(dvdsub_lang, "")) |
2796 asgn = 1; | 2796 asgn = 1; |
2797 else | |
2798 { | |
2799 lang = pid_lang_from_pmt(priv, pid); | |
2800 if(lang != NULL) | |
2801 asgn = (strncmp(lang, dvdsub_lang, 3) == 0); | |
2802 else | 2797 else |
2803 asgn = 0; | 2798 { |
2804 } | 2799 lang = pid_lang_from_pmt(priv, pid); |
2800 if(lang != NULL) | |
2801 asgn = (strncmp(lang, dvdsub_lang, 3) == 0); | |
2802 else | |
2803 asgn = 0; | |
2804 } | |
2805 } | 2805 } |
2806 | 2806 |
2807 if(asgn) | 2807 if(asgn) |
2808 { | 2808 { |
2809 demuxer->sub->id = tss->pid; | 2809 demuxer->sub->id = tss->pid; |
2885 | 2885 |
2886 if(es->type == UNKNOWN) | 2886 if(es->type == UNKNOWN) |
2887 return 0; | 2887 return 0; |
2888 | 2888 |
2889 tss->payload_size = es->payload_size; | 2889 tss->payload_size = es->payload_size; |
2890 tss->type = es->type; | 2890 tss->type = es->type; |
2891 tss->subtype = es->subtype; | 2891 tss->subtype = es->subtype; |
2892 | 2892 |
2893 if(is_audio) | 2893 if(is_audio) |
2894 lang = pid_lang_from_pmt(priv, es->pid); | 2894 lang = pid_lang_from_pmt(priv, es->pid); |
2895 if(lang != NULL) | 2895 if(lang != NULL) |
2896 { | 2896 { |
2897 memcpy(es->lang, lang, 3); | 2897 memcpy(es->lang, lang, 3); |
2898 es->lang[3] = 0; | 2898 es->lang[3] = 0; |
2899 } | 2899 } |
2900 else | 2900 else |
2901 es->lang[0] = 0; | 2901 es->lang[0] = 0; |
2902 return 1; | 2902 return 1; |
2903 } | 2903 } |
2904 else | 2904 else |
2905 { | 2905 { |
2906 if(es->pts == 0.0f) | 2906 if(es->pts == 0.0f) |
2907 es->pts = tss->pts = tss->last_pts; | 2907 es->pts = tss->pts = tss->last_pts; |
2913 | 2913 |
2914 tss->payload_size = es->payload_size; | 2914 tss->payload_size = es->payload_size; |
2915 | 2915 |
2916 demuxer->filepos = stream_tell(demuxer->stream) - es->size; | 2916 demuxer->filepos = stream_tell(demuxer->stream) - es->size; |
2917 | 2917 |
2918 if(*dp_offset + es->size > *buffer_size) | 2918 if(*dp_offset + es->size > *buffer_size) |
2919 { | 2919 { |
2920 *buffer_size = *dp_offset + es->size + TS_FEC_PACKET_SIZE; | 2920 *buffer_size = *dp_offset + es->size + TS_FEC_PACKET_SIZE; |
2921 resize_demux_packet(*dp, *buffer_size); | 2921 resize_demux_packet(*dp, *buffer_size); |
2922 //we'll skip at least one RESIZE() in the next iteration of ts_parse() | 2922 //we'll skip at least one RESIZE() in the next iteration of ts_parse() |
2923 mp_msg(MSGT_DEMUX, MSGL_DBG2, "RESIZE DP TO %d\n", *buffer_size); | 2923 mp_msg(MSGT_DEMUX, MSGL_DBG2, "RESIZE DP TO %d\n", *buffer_size); |
2924 } | 2924 } |
2925 memcpy(&((*dp)->buffer[*dp_offset]), es->start, es->size); | 2925 memcpy(&((*dp)->buffer[*dp_offset]), es->start, es->size); |
2926 *dp_offset += es->size; | 2926 *dp_offset += es->size; |
2927 (*dp)->flags = 0; | 2927 (*dp)->flags = 0; |
2928 (*dp)->pos = stream_tell(demuxer->stream); | 2928 (*dp)->pos = stream_tell(demuxer->stream); |
2929 (*dp)->pts = es->pts; | 2929 (*dp)->pts = es->pts; |
2930 | 2930 |
2931 if(*dp_offset >= MAX_PACK_BYTES) | 2931 if(*dp_offset >= MAX_PACK_BYTES) |
2932 { | 2932 { |
2933 retv = fill_packet(demuxer, ds, dp, dp_offset, si); | 2933 retv = fill_packet(demuxer, ds, dp, dp_offset, si); |
2934 return 1; | 2934 return 1; |