Signed-off-by: vladimir <[email protected]>
---
 libavformat/asfenc.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c
index 6be285c..33f41e3 100644
--- a/libavformat/asfenc.c
+++ b/libavformat/asfenc.c
@@ -182,6 +182,8 @@
      1 -         /* Payload Flags */                      \
      2 * PAYLOAD_HEADER_SIZE_MULTIPLE_PAYLOADS)
 
+#define DATA_HEADER_SIZE 50
+
 typedef struct {
     uint32_t seqno;
     int is_streamed;
@@ -517,14 +519,14 @@ static int asf_write_header1(AVFormatContext *s, int64_t 
file_size,
     cur_pos     = avio_tell(pb);
     header_size = cur_pos - header_offset;
     if (asf->is_streamed) {
-        header_size += 8 + 30 + 50;
+        header_size += 8 + 30 + DATA_HEADER_SIZE;
 
         avio_seek(pb, header_offset - 10 - 30, SEEK_SET);
         avio_wl16(pb, header_size);
         avio_seek(pb, header_offset - 2 - 30, SEEK_SET);
         avio_wl16(pb, header_size);
 
-        header_size -= 8 + 30 + 50;
+        header_size -= 8 + 30 + DATA_HEADER_SIZE;
     }
     header_size += 24 + 6;
     avio_seek(pb, header_offset - 14, SEEK_SET);
@@ -533,6 +535,7 @@ static int asf_write_header1(AVFormatContext *s, int64_t 
file_size,
 
     /* movie chunk, followed by packets of packet_size */
     asf->data_offset = cur_pos;
+av_log(s, AV_LOG_ERROR, "data_offset: %d\r\n", asf->data_offset );
     put_guid(pb, &ff_asf_data_header);
     avio_wl64(pb, data_chunk_size);
     put_guid(pb, &ff_asf_my_guid);
@@ -555,10 +558,10 @@ static int asf_write_header(AVFormatContext *s)
     asf->nb_index_count        = 0;
     asf->maximum_packet        = 0;
 
-    /* the data-chunk-size has to be 50, which is data_size - asf->data_offset
-     *  at the moment this function is done. It is needed to use asf as
-     *  streamable format. */
-    if (asf_write_header1(s, 0, 50) < 0) {
+    /* the data-chunk-size has to be 50(DATA_HEADER_SIZE), which is
+     * data_size - asf->data_offset at the moment this function is done.
+     * It is needed to use asf as a streamable format. */
+    if (asf_write_header1(s, 0, DATA_HEADER_SIZE) < 0) {
         //av_free(asf);
         return -1;
     }
-- 
1.8.1.4

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to