mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-15 03:34:56 +00:00
simplify registration descriptor parsing with bytestream get functions
Originally committed as revision 18456 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
a4d2af9b96
commit
4f1db48e88
@ -21,6 +21,7 @@
|
||||
|
||||
#include "libavutil/crc.h"
|
||||
#include "libavutil/intreadwrite.h"
|
||||
#include "libavcodec/bytestream.h"
|
||||
#include "avformat.h"
|
||||
#include "mpegts.h"
|
||||
#include "internal.h"
|
||||
@ -491,6 +492,7 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
|
||||
char language[4] = {0}; /* initialize to kill warnings */
|
||||
int has_hdmv_descr = 0;
|
||||
int has_dirac_descr = 0;
|
||||
uint32_t reg_desc = 0; /* registration descriptor */
|
||||
|
||||
#ifdef DEBUG_SI
|
||||
av_log(ts->stream, AV_LOG_DEBUG, "PMT: len %i\n", section_len);
|
||||
@ -527,14 +529,9 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
|
||||
break;
|
||||
program_info_length -= len + 2;
|
||||
if(tag == REGISTRATION_DESCRIPTOR && len >= 4) {
|
||||
uint8_t bytes[4];
|
||||
bytes[0] = get8(&p, p_end);
|
||||
bytes[1] = get8(&p, p_end);
|
||||
bytes[2] = get8(&p, p_end);
|
||||
bytes[3] = get8(&p, p_end);
|
||||
reg_desc = bytestream_get_le32(&p);
|
||||
len -= 4;
|
||||
if(bytes[0] == 'H' && bytes[1] == 'D' &&
|
||||
bytes[2] == 'M' && bytes[3] == 'V')
|
||||
if(reg_desc == AV_RL32("HDMV"))
|
||||
has_hdmv_descr = 1;
|
||||
}
|
||||
p += len;
|
||||
@ -601,17 +598,10 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
|
||||
language[3] = 0;
|
||||
break;
|
||||
case REGISTRATION_DESCRIPTOR: /*MPEG-2 Registration descriptor */
|
||||
{
|
||||
uint8_t bytes[4];
|
||||
bytes[0] = get8(&p, desc_end);
|
||||
bytes[1] = get8(&p, desc_end);
|
||||
bytes[2] = get8(&p, desc_end);
|
||||
bytes[3] = get8(&p, desc_end);
|
||||
if(bytes[0] == 'd' && bytes[1] == 'r' &&
|
||||
bytes[2] == 'a' && bytes[3] == 'c')
|
||||
has_dirac_descr = 1;
|
||||
break;
|
||||
}
|
||||
reg_desc = bytestream_get_le32(&p);
|
||||
if(reg_desc == AV_RL32("drac"))
|
||||
has_dirac_descr = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user