]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/adtsenc.c
avformat/rtpdec: use av_packet_alloc() to allocate packets
[ffmpeg] / libavformat / adtsenc.c
index 9e285752eb5b90978c1b5361b56ced66e348cc23..3595cb3bb23995e7921c3394283296de8a25b1bd 100644 (file)
@@ -40,6 +40,7 @@ typedef struct ADTSContext {
     int pce_size;
     int apetag;
     int id3v2tag;
+    int mpeg_id;
     uint8_t pce_data[MAX_PCE_SIZE];
 } ADTSContext;
 
@@ -136,7 +137,7 @@ static int adts_write_frame_header(ADTSContext *ctx,
 
     /* adts_fixed_header */
     put_bits(&pb, 12, 0xfff);   /* syncword */
-    put_bits(&pb, 1, 0);        /* ID */
+    put_bits(&pb, 1, ctx->mpeg_id); /* ID */
     put_bits(&pb, 2, 0);        /* layer */
     put_bits(&pb, 1, 1);        /* protection_absent */
     put_bits(&pb, 2, ctx->objecttype); /* profile_objecttype */
@@ -169,7 +170,8 @@ static int adts_write_packet(AVFormatContext *s, AVPacket *pkt)
         return 0;
     if (!par->extradata_size) {
         uint8_t *side_data;
-        int side_data_size, ret;
+        buffer_size_t side_data_size;
+        int ret;
 
         side_data = av_packet_get_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA,
                                             &side_data_size);
@@ -214,6 +216,7 @@ static int adts_write_trailer(AVFormatContext *s)
 static const AVOption options[] = {
     { "write_id3v2",  "Enable ID3v2 tag writing", OFFSET(id3v2tag), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, ENC},
     { "write_apetag", "Enable APE tag writing",   OFFSET(apetag),   AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, ENC},
+    { "write_mpeg2",  "Use MPE2 ID when writing", OFFSET(mpeg_id),  AV_OPT_TYPE_BOOL,  {.i64 = 0}, 0, 1, ENC, "mpeg_id"},
     { NULL },
 };